象牙塔的案例和资讯已经很多年没有更新了,实在没有精力更新,需要最新案例请联系客服!
--- 我们没有销售只有技术,不善于也不需要宣传,服务好已有客户足以!---
【象牙塔验证】ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞
发布时间:2019年12月16日  |  编辑:象牙塔 技术部  |  点击率:6544次

ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model.class.php 文件

1145行:

protected function parseSql($sql,$parse) {

// 分析表达式

if(true === $parse) {

  $options = $this->_parseOptions();

  $sql =  $this->db->parseSql($sql,$options);

}elseif(is_array($parse)){ // SQL预处理

  $sql = vsprintf($sql,$parse);

}else{

  $sql  =  strtr($sql,array('__TABLE__'=>$this->getTableName(),'__PREFIX__'=>C('DB_PREFIX')));

}

$this->db->setModel($this->name);

return $sql;

}

改为:

protected function parseSql($sql,$parse) {

// 分析表达式

if(true === $parse) {

  $options = $this->_parseOptions();

  $sql =  $this->db->parseSql($sql,$options);

}elseif(is_array($parse)){ // SQL预处理

  $parse = array_map(array($this->db,'escapeString'),$parse);//此行为新增代码

  $sql = vsprintf($sql,$parse);

}else{

  $sql  =  strtr($sql,array('__TABLE__'=>$this->getTableName(),'__PREFIX__'=>C('DB_PREFIX')));

}

$this->db->setModel($this->name);

return $sql;

}

 

 

 


  •   上一篇: 快钱支付接口-[asp开发]
  •   下一篇: [百度站长平台]浅谈网页反作弊技术思路、