原因
php腳本部分源碼:
復制代碼 代碼如下:
$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
php腳本中的 fsockopen 函數,對外部地址,通過UDP發送大量的數據包,攻擊對方。
應對
可通過 php.ini ,禁用 fsockopen 函數,及使用Windows 2003的 安全策略 屏蔽本機的UDP端口。
禁用函數
查找到 disable_functions ,添加需禁用的函數名,如下例:
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
重啟IIS後生效。
屏蔽UDP端口
將以下著色文本復制到記事本,另存為 banudp.bat 或任意名,雙擊運行即可。
REM 添加安全策略,名稱
netsh ipsec static add policy name=我的安全策略
REM 添加 IP篩選器列表
netsh ipsec static add filterlist name=允許列表
netsh ipsec static add filterlist name=拒絕列表
REM 添加篩選器到IP篩選器列表(允許上網)
netsh ipsec static add filter filterlist=允許列表 srcaddr=me dstaddr=any description=dns訪問 protocol=udp mirrored=yes dstport=53
REM 添加篩選器到IP篩選器列表(不讓別人訪問)
netsh ipsec static add filter filterlist=拒絕列表 srcaddr=any dstaddr=me description=別人到我任何訪問 protocol=udp mirrored=yes
REM 添加篩選器操作
netsh ipsec static add filteraction name=可以 action=permit
netsh ipsec static add filteraction name=不可以 action=block
REM 創建一個鏈接指定 IPSec 策略、篩選器列表和篩選器操作的規則(加入規則到我的安全策略)
netsh ipsec static add rule name=允許規則 policy=我的安全策略 filterlist=允許列表 filteraction=可以
netsh ipsec static add rule name=拒絕規則 policy=我的安全策略 filterlist=拒絕列表 filteraction=不可以
REM 激活我的安全策略
netsh ipsec static set policy name=我的安全策略 assign=y