NewZhan_CMS_sql注入漏洞

# NewZhan CMS sql注入漏洞

=======================

一、漏洞简介
————

二、漏洞影响
————

NewZhan CMS 商业版 2.4.1

NewZhan CMS 个人版 2.6.3

三、复现过程
————

### 漏洞分析

数据库操作函数对传入的数组仅仅对value进行了转义处理,并没有把key考虑在内,前台控制器可以通过提交POST
控制key进行注入。 db\_mysql.class.php

public function update($key, $data) {

list($table, $keyarr, $keystr) = $this->key2arr($key);

$s = $this->arr2sql($data);

return $this->query(“UPDATE {$this->tablepre}$table SET $s WHERE $keystr LIMIT 1″, $this->wlink);

}

private function key2arr($key) {

$arr = explode(‘-‘, $key);

if(empty($arr[0])) {

throw new Exception(‘table name is empty.’);

}

$table = $arr[0];

$keyarr = array();

$keystr = ”;

$len = count($arr);

for($i = 1; $i < $len; $i = $i + 2) { if(isset($arr[$i + 1])) { $v = $arr[$i + 1]; $keyarr[$arr[$i]] = is_numeric($v) ? intval($v) : $v; // 因为 mongodb 区分数字和字符串 $keystr .= ($keystr ? ' AND ' : '').$arr[$i]."='".addslashes($v)."'"; } else { $keyarr[$arr[$i]] = NULL; } } if(empty($keystr)) { throw new Exception('keystr name is empty.'); } return array($table, $keyarr, $keystr); } 审计发现前台商品管理控制器有\$POST 数据传入update(\$data)可以触发SQL 注入 ![1.png](/static/qingy/NewZhan_CMS_sql注入漏洞/img/rId25.png) ### 漏洞复现 ![2.png](./resource/NewZhanCMSsql注入漏洞/media/rId27.png)![3.png](./resource/NewZhanCMSsql注入漏洞/media/rId28.png)![4.png](/static/qingy/NewZhan_CMS_sql注入漏洞/img/rId29.png)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容