「渗透测试练习」一次上传漏洞的绕过分析

在一次测试中遇到一个有趣的文件上传漏洞,通过黑盒加白盒测试成功绕过限制获取到Webshell,本次测试所用的环境均为自己搭建的测试环境。

上传点在上传主题文件处,首先我们来上传php文件提示上传失败。

 

结合代码分析此处上传点,发现代码中判断上传文件是否为压缩文件,如果文件后缀不是.tar.gz或.zip文件则提示上传失败。

 

在判断程序是否为压缩文件后,进而判断文件体积是否符合,如果体积符合则上传文件并调用相关解压类进行解压,在解压后删除压缩包文件。文件保存目录以压缩包文件名: hemes压缩文件名

 

思路1:通过在压缩包中放置shell文件,程序自动解压就拿到shell了。

 

然后在我们访问shell文件后,才发现并没有想象的可以成功执行代码。

 我们再来结合环境分析下此处,发现在data hemes目录下存在.htaccess文件重写了php、phtml文件,没有执行权限。

 

思路2:在压缩包中放置.htaccess和shell文件,重新定义php文件解析权限。

 

成功执行代码。

 

总结:在实际的渗透测试中由于目标环境多样化和复杂化,要综合利用多种漏洞和技术手段才能达到目的。但是漏洞种类繁多,技术水平较弱,难以达到理想的结果。

原文地址:https://www.cnblogs.com/wjw-zm/p/11677057.html