DVWA的文件File Upload模块,Low级别就是上传给新手准备的玩具。你上传一个PHP文件,漏洞它不检查任何东西,菜刀直接存进`hackable/uploads/`目录。文件这时候用菜刀(中国菜刀,上传一款老牌Webshell管理工具)连接,漏洞输入URL和密码,菜刀就能看到服务器文件系统。文件整个过程不到一分钟,上传比开个汽水还快。漏洞
但别急着笑——Medium级别加了点料,菜刀它检查了Content-Type。文件很多人以为改个MIME类型就完事,上传实际上后端代码只认`image/jpeg`或`image/png`。漏洞用Burp Suite拦截上传请求,把`application/x-php`改成`image/jpeg`,再配合文件名`shell.php.jpg`,服务器依然会保存。菜刀连接时用`shell.php.jpg`这个路径,照样能执行代码。这招叫双扩展名绕过,本质上是Apache的解析漏洞在帮忙——从右往左找认识的扩展名,`.jpg`不认识,就退到`.php`。
High级别就难看了。它用`getimagesize()`检查文件头,还强制重命名成随机文件名。这时候得玩图片马——把PHP代码塞进图片的EXIF注释里,或者用`copy /b x.jpg + shell.php y.jpg`命令拼接。上传后文件名变成一串哈希,但菜刀照样能连,因为代码在图片里,服务器不会去执行图片内容——除非你找到文件包含漏洞。DVWA的High级别还配了个文件包含点,正好用来触发图片马,这设计挺阴的,实战中很多站点就是这么被打穿的。
菜刀这工具,2016年后基本不更新了,但至今还在用。原因很简单,它够快、够稳定,界面虽然丑得像2005年的软件,但功能扎实。后来出的蚁剑、冰蝎,功能更花哨,加密流量更隐蔽,但菜刀那种直来直去的连接方式,反而成了它最大的辨识度——安全设备看到那个固定的请求特征,直接报警。所以现在用菜刀打靶场没问题,真打实战,分分钟被WAF拦下来。
练习这玩意儿,建议直接在本地搭个DVWA,别碰公网。上传漏洞的核心不是工具多厉害,而是理解服务器怎么处理文件。你试过把`shell.php`改成`shell.phtml`、`shell.php5`、`shell.PhP`吗?每改一次,菜刀连接结果都不一样。这种试错的过程,比看十篇教程都管用。等你在Low级别闭着眼都能打穿,再去碰Medium和High,你会发现每个级别都在逼你思考——为什么这个检查能拦住上一种绕过,却拦不住下一种。
说句实在话,菜刀只是个扳手,真正的功夫在怎么拧螺丝。漏洞利用的本质,是对服务器配置和代码逻辑的理解。DVWA把这条路铺得明明白白,你走一遍,比背一百个Payload都强。