在一次测试中遇到一个有趣的文件上传漏洞,通过黑盒加白盒测试成功绕过限制获取到Webshell,本次测试所用的环境均为自己搭建的测试环境。
上传点在上传主题文件处,首先我们来上传php文件提示上传失败。
结合代码分析此处上传点,发现代码中判断上传文件是否为压缩文件,如果文件后缀不是.tar.gz或.zip文件则提示上传失败。
在判断程序是否为压缩文件后,进而判断文件体积是否符合,如果体积符合则上传文件并调用相关解压类进行解压,在解压后删除压缩包文件。文件保存目录以压缩包文件名:\themes\压缩文件名\
思路1:通过在压缩包中放置shell文件,程序自动解压就拿到shell了。
然后在我们访问shell文件后,才发现并没有想象的可以成功执行代码。
思路2:在压缩包中放置.htaccess和shell文件,重新定义php文件解析权限。
成功执行代码。
总结:在实际的渗透测试中由于目标环境多样化和复杂化,要综合利用多种漏洞和技术手段才能达到目的。但是漏洞种类繁多,技术水平较弱,难以达到理想的结果。