Php对外攻击是:由于PHP新的BUG被大规模利用,目前很多客户机器都被植入了PHP-DDoS攻击脚本调用fsockopen()函数,访问触发后会进行攻击他人服务器的行为。fsockopen()函数的作用是可以用来打开一个socket连接,另一个函数pfsockopen()也有相似的功能,只不过后者是一个“持续”的fsockopen()函数,它在脚本运行完之后并不立即断开。
PHP脚本DDOS攻击的原因及php脚本部分源码:
php脚本中的 fsockopen 函数,对外部地址,通过UDP发送大量的数据包,攻击对方。
1 常见的几种PHP对外攻击页面:
(1)
(2)
(3)
2 网站程序下如何查找出哪些是对外攻击的页面呢?
对外攻击调用fsockopen()函数,利用软件直接搜索fsockopen关键词,再根据上面常见的几种对外攻击页面判断查找到的文件是否为对外攻击页面,然后直接删除即可。
例如:
3 远程攻击者利用了PHP中的fsockopen函数(打开网络的 Socket 链接)来达成php对外攻击,因此可通过 php.ini ,禁用 fsockopen 这个函数。
下面是两种常用的禁用fsockopen的方法。
修改php.ini,将 disable_functions = 后加入 fsockopen
修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off
保存后重启IIS后马上生效
许多空间商会禁用fsockopen函数,禁用fsockopen函数后,一些网站会收影响或者一些论坛不能正确的被安装。下面是如何解决fsockopen函数被禁用的方法:
(1)如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen。具体操作:搜索程序中的字符串 fsockopen( 替换为 pfsockopen(。
(2)如果服务器同时禁用了pfsockopen,那么用其他函数代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的参数不同。具体操作:搜索程序中的字符串 fsockopen( 替换为 stream_socket_client(,然后,将原fsockopen函数中的端口参数“80”删掉,并加到$host。
(3) 如果PHP版本低于5.0,fsockopen被禁用,又没有stream_socket_client()怎么办呢?自己写一个函数实现fsockopen的功能。
最后,使用CMS类网站程序的用户,如织梦CMS,phpwind,帝国,泓天等程序,将程序升级到最新的版本并及时更新安全漏洞补丁,不能仅仅删除掉被插入的攻击页面。