### 简要描述: 参数未过滤 ### 详细说明: 在project_control.php ``` function sort_f() { $sort = $_GET["sort"]; if(!$sort || !is_array($sort)) { json_exit("更新排序失败"); } foreach($sort AS $key=>$value) { $this->model('project')->update_taxis($key,$value); } json_exit("更新排序成功",true); } ``` 可以看到系统没有通过自写函数get() 而是直接用$_GET接收变量 所以注入产生 [<img src="https://images.seebug.org/upload/201410/05233504e2d90aaf86da30c651a446b119f2224b.jpg" alt="H_DWL_6T9$QCDL52Q}_]_DM.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/05233504e2d90aaf86da30c651a446b119f2224b.jpg) 能够引入单引号 虽然出在后台,但是由于没有token各种 csrf威力还是比较大的 ### 漏洞证明: [<img src="https://images.seebug.org/upload/201410/0523420900ca05f1b3179180f24ac685c0534306.jpg" alt="JP%O3KN)UBFP)X631O9R32R.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/0523420900ca05f1b3179180f24ac685c0534306.jpg) web端的执行时间不好表示出来 只能在shell下用图来表示了 例如在这个sql payload 只要这个个字母不是a{ascii为97}就会拖延14s左右
### 简要描述: 参数未过滤 ### 详细说明: 在project_control.php ``` function sort_f() { $sort = $_GET["sort"]; if(!$sort || !is_array($sort)) { json_exit("更新排序失败"); } foreach($sort AS $key=>$value) { $this->model('project')->update_taxis($key,$value); } json_exit("更新排序成功",true); } ``` 可以看到系统没有通过自写函数get() 而是直接用$_GET接收变量 所以注入产生 [<img src="https://images.seebug.org/upload/201410/05233504e2d90aaf86da30c651a446b119f2224b.jpg" alt="H_DWL_6T9$QCDL52Q}_]_DM.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/05233504e2d90aaf86da30c651a446b119f2224b.jpg) 能够引入单引号 虽然出在后台,但是由于没有token各种 csrf威力还是比较大的 ### 漏洞证明: [<img src="https://images.seebug.org/upload/201410/0523420900ca05f1b3179180f24ac685c0534306.jpg" alt="JP%O3KN)UBFP)X631O9R32R.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/0523420900ca05f1b3179180f24ac685c0534306.jpg) web端的执行时间不好表示出来 只能在shell下用图来表示了 例如在这个sql payload 只要这个个字母不是a{ascii为97}就会拖延14s左右