iCMS的article.admincp.php和content.admincp.php模块存在SQL注入

该漏洞CNVD-ID: CNVD-2019-10031
漏洞提交CNVD后,待CNVD公示才发出本文。
测试环境:
CMS版本:v7.0.14
Windows + firefox + burpsuite + apache2 + PHP5.6.27(phpStudy集成环境)
iCMS官网:https://www.icmsdev.com/

一、漏洞分析

/app/article/article.admincp.php 模块的 function do_updateorder()函数 和 /app/content/content.admincp.php模块的function do_updateorder()函数同样的写法,存在同样的SQL注入。这里以article.admincp.php模块来说明。
函数中以POST方式获取sortnum数组变量,本程序有全局过滤,但只过滤参数值没有过滤参数名。
在这里插入图片描述在这里插入图片描述这里的操作把参数名也带入了SQL语句。虽然这里参数值进行了二次过滤,但仍然遗漏了参数名。
在这里插入图片描述在这里插入图片描述所以,可以通过数组的方式在参数名里插入SQL报错语句,实现SQL注入。

二、漏洞测试

这个漏洞需要登陆后台才能测试。
由于这里所有的POST请求都要检测CSRF-token 。找函数的入口点不好找,这里采取获取一个CSRF-token值,并修改HTTP请求包的方式来进入函数。
在这里插入图片描述获取一个CSRF-token值:
登陆后台后进入添加栏目。
在这里插入图片描述开启BurpSuite拦截。任写一个栏目名称后提交。
在这里插入图片描述Burpsuite拦截后修改HTTP包:
修改URI为:
/admincp.php?app=article&do=updateorder 加上拦截到的&frame和&CSRF_TOKEN
修改POST DATA为:

sortnum[3' and (extractvalue(1,concat(0x7e,(select database()),0x7e)))#]=1

然后发到Repeater。
在这里插入图片描述获取数据库名:
在这里插入图片描述获取用户名:
在这里插入图片描述获取数据库版本:
在这里插入图片描述/app/content/content.admincp.php 模块的 function do_updateorder()函数是同样的写法,存在同样的SQL注入。
修复方式都一样:将参数名带入查询前做一次addslashes过滤。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值