漏洞文件:
\module\user.module.class.php
第11行代码:
$userInfo=Common::getMemberInfo($this->db,is_numeric($userId) ? 'uid' : 'nickname', $userId);
这一行代码进行了数据库查询,关键之处在$userId这个变量上
向上回溯到第10行代码:
$userId=(isset($_GET['id']) && trim($_GET['id']) != '') ? $_GET['id'] : $this->loginInfo['uid'];
当$_GET[‘id’]被赋值的时候这个参数就能控制了,而且没有进行过滤。
再到数据库执行的地方查看一下
```
public static function getMemberInfo($DB, $key, $value)
{
$memberArray = array(
"uid" => 0,
"nickname" => "",
"email" => "",
"password" => "",
"regtime" => "",
"qqid" => "",
"groupid" => 0
);
$DBArray = $DB->selectOneArray("SELECT * FROM `" . PRE . "user` WHERE `" . $key . "`='" . $value . "'");
```
传进去是第三个参数Value在没有开GPC的情况下可以引入污点数据,进行注入。
验证一下
首先需要注册一个用户
登陆后访问
http://192.168.45.131/rocboss/?m=user&w=index&id=1
存在注入的参数就是id
可以进行union 和盲注注入
![](https://images.seebug.org/contribute/c26d0768-8ded-428b-aa4b-6848033a053b-2222222.png)
暂无评论