一、前言
19年初,网上公开了2个Thinkphp5的RCE漏洞,漏洞非常好用,导致有很多攻击者用扫描器进行全网扫描。我们通过ips设备持续观察到大量利用这几个漏洞进行批量getshell的攻击流量,本文主要从流量角度简要分析和利用thinkphp进行攻击的全网扫描和getshell流量痕迹。
二、Thinkphp RCE漏洞和扫描流量
2.1漏洞原理回顾
2.1.15.0.x版本漏洞
原理在于Thinkphp处理请求的关键类为Request(thinkphp/library/think/Request.php),该类可以实现对HTTP请求的一些设置
Thinkphp支持配置“表单伪装变量”,默认情况下该变量值为_method,因此在method()中,可以通过“表单伪装变量”进行变量覆盖实现对该类任意函数的调用,并且$_POST作为函数的参数传入。可以构造请求来实现对Request类属性值的覆盖,例如覆盖filter属性(filter属性保存了用于全局过滤的函数),从而实现代码执行。
2.1.25.1.x-5.2.x版本漏洞
与5.0.x版本漏洞相似,漏洞点都存在于Request(thinkphp/library/think/Request.php)类中,其中: