### 简要描述:
CSCMS V3.5 最新补丁后 又一个SQL注射(源码详析)
之前的注射已经修补了,但是还有几处注射点没有注意到
### 详细说明:
在addslash + 引号保护 的情况下 要格外注意数字型变量的处理
/app/controllers/home.php line:1020
```
public function gbookdel()
{
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
if(@!eregi($_SERVER['SERVER_NAME'],$_SERVER['HTTP_REFERER'])){exit('QQ:848769359');}
//测试时注意上一句,需要referer和host同名
//吐槽一下那个QQ是神马意思 - -
@header("Content-type: text/html;charset=utf-8");
$id = $this->security->xss_clean($this->input->get_post('id', TRUE)); //ID
//id经过安全过滤后addslashes了,当然也过滤XSS了
$users=$this->session->userdata('cs_name');
if(empty($id)){
exit("10000");//参数错误
}
if(!$this->CsdjUser->User_Login(1)){
exit("10001");//没有登入
}
$sql="SELECT * FROM ".CS_SqlPrefix."gbook where cs_id=".$id."";
//其实加上引号它也是数字,但是为什么不加呢?或者intval也可以呀
//和以下无关,不需要走到delete中去,因为已经select查询完了,之后只要让row为false终止就好了
$row=$this->CsdjDB->get_all($sql);
if($row){
if($row[0]->CS_Usera!=$users){
exit("10002");//没有权限
}
$this->db->query("delete from ".CS_SqlPrefix."gbook where CS_ID=".$id." or cs_fid=".$id."");
exit('10004');
}else{
exit("10003");//参数错误
}
}
```
漏洞位置:
/index.php/home/gbookdel/?id=6&random=你当时的random
[<img src="https://images.seebug.org/upload/201402/1413450568bc3e40aa379922d03dfe1756ce00d0.png" alt="address.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/1413450568bc3e40aa379922d03dfe1756ce00d0.png)
是个人空间留言的删除链接
抓包后注意以下三点:
1.抓到后就放在那里,不要消耗掉random,注射后再放走
2.记住referer
3.记住cookie
好了,sqlmap
注意:cookie、referer、random 一个不能少,id一定要取不存在的值(不然random会被消耗)
[<img src="https://images.seebug.org/upload/201402/141348477f57ad8037aef34fd4bd86d4ff84c159.png" alt="sqlmap1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/141348477f57ad8037aef34fd4bd86d4ff84c159.png)
[<img src="https://images.seebug.org/upload/201402/14135009e8ce2125729451f89986a634dab5fd8d.png" alt="sqlmap2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/14135009e8ce2125729451f89986a634dab5fd8d.png)
以上是在本机上测试的,官网上自己个人空间留言居然需要等待网站管理审核…………难道不应该是用户审核么
### 漏洞证明:
sqlmap
注意:cookie、referer、random 一个不能少,id一定要取不存在的值(不然random会被消耗)
[<img src="https://images.seebug.org/upload/201402/141348477f57ad8037aef34fd4bd86d4ff84c159.png" alt="sqlmap1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/141348477f57ad8037aef34fd4bd86d4ff84c159.png)
[<img src="https://images.seebug.org/upload/201402/14135009e8ce2125729451f89986a634dab5fd8d.png" alt="sqlmap2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201402/14135009e8ce2125729451f89986a634dab5fd8d.png)
暂无评论