前言
其实dvwa这个靶机在刚开始接触web安全的时候就已经玩过了,当时的版本应该是1.0.7,现在最新版本已经到1.9了。新增了PHPIDS像类似WAF的功能,刚开始打DVWA只是为了完成通关目标而打,现在回过头来拾起它,更觉得它是一个不错的渗透靶机。学习漏洞利用的同时,要明白该漏洞产生的原因是什么?如果给你一套php源码的话,你想测文件上传漏洞该从哪里切入?如果存在该漏洞怎么去修复?这些都是我接下来要思考和学习,也是我重新拿去dvwa的原因。
DVWA下载与安装:
https://blog.csdn.net/qq_41832837/article/details/109968353
Upload/文件上传
难度:Low
直接选择php格式的木马,直接上传。
没有任何过滤,成功上传。可以用菜刀等工具去连接你上传的webshell。
分析一下漏洞产生的源代码吧:
<?php
if (isset($_POST['Upload'])) {
#设置上传文件存放的路径
$target_path = DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
#获取上传文件的名字
$target_path = $target_path . basename( $_FILES['uploaded']['name']);
#移动上传文件到存放位置
if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
$html .= '<pre>';
$html .= 'Your image was not uploaded.';
$html .= '</pre>';
} else {
$html .= '<pre>';
$html .= $target_path . ' succesfully uploaded!';
$html .= '</pre>';
}
}
?>
可以看到,从上传文件的获取到文件的移动过程没有进行任何过略,直接就存放到指定目录。因此导致攻击者可以直接上传木马获得webshell。