ThinkPHP框架特性引发的SQL注入漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

### 简要描述: ThinkPHP框架本身缺陷导致SQL注入漏洞,基本影响所有使用ThinkPHP开发的应用,包括thinksns、onethink等 ### 详细说明: 关键代码在`\ThinkPHP\Library\Think\Db\Driver.class.php`,683行。 ``` /** * order分析 * @access protected * @param mixed $order * @return string */ protected function parseOrder($order) { if(is_array($order)) { $array = array(); foreach ($order as $key=>$val){ if(is_numeric($key)) { $array[] = $this->parseKey($val); }else{ $array[] = $this->parseKey($key).' '.$val; } } $order = implode(',',$array); } return !empty($order)? ' ORDER BY '.$order:''; } ``` 当我们提交的$order不为数组时,那么直接返回 `' ORDER BY '.$order:'`。 当我们提交的$order为数组,程序也仅仅是对$key进行了处理。没有处理$val。 此漏洞与phith0n提交的漏洞有相似性。http://**.**.**.**/bugs/wooyun-2010-086737 在此附上一个常见的demo ``` <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $data = array(); $data['username'] = array('eq','admin'); $order = I('get.order'); $m = M('user')->where($data)->order($order)->find(); echo M('user')->getLastSql();...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息