请选择 进入手机版 | 继续访问电脑版
查看: 1852|回复: 0

关于CMSMS中SQL注入漏洞的复现与分析与利用

[复制链接]
  • TA的每日心情

    2019-8-23 23:52
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2019-7-8 02:04:55 | 显示全部楼层 |阅读模式
    本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

    漏洞URL如下:“http://server-ip/cmsms/moduleinterface.php?mact=News,m1_,default,0&m1_idlist=

    当参数m1_idlist赋值为1时,页面显示6月19日的新闻,cmsms页面如下:

    当参数m1_idlist赋值为2时,页面显示6月24日的新闻,cmsms页面如下:

    由此可见,当给参数m1_idlist赋予不同的值时,主页会显示不同的新闻内容,即m1_idlist对应的是新闻的ID。

    2. sqlmap扫描

    2.1 获取cookie

    设置Mozilla Firefox浏览器代理为127.0.0.1:8080,用于指向BurpSuite,然后在浏览器中访问漏洞URL,再通过BurpSuite中的HTTP history找到Cookie的详细信息,如下图所示:

    2.2 结合步骤2.1中获取到的cookie,使用sqlmap对漏洞URL中的参数m1_idlist进行扫描测试,sqlmap扫描命令如下:

    sqlmap -u "http://192.168.188.140/cmsms/moduleinterface.php?mact=News,m1_,default,0&m1_idlist=1" -p "m1_idlist" --cookie="CMSSESSID6ae120628fa8=v9rtmai3jn0bc4usje1o83c174" --dbms="MySQL" --level 3 --risk 3

    2.3 漫长的等待提示没用漏洞 WTF?

    3. 构造语句测试

    由于神器sqlmap失准,我们直接手动构造语句来确认漏洞。

    构造如下语句,拼接到参数m1_idlist之后:

    0,1))and(case+when+(select+sleep(1)+from+cms_users+limit+1)+then+1+else+2+end)+--+

    首先设置sleep的参数为1s,运行结果如下图所示,可以看到服务器的响应时间为1141ms(即1.141s):再次设置sleep的参数为5s,运行结果如下图所示,可以看到服务器的响应时间为5163ms(即5.163s):

    当设置sleep的参数为10s时,服务器的响应时间为10184ms(即10.184s)。不断增大sleep的参数值,响应时间也在逐步增加。由此可以确定,在参数m1_idlist中存在基于时间的SQL盲注漏洞。

    本人投稿52BUG 转载请保留文章出处


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表