DVWA上传漏洞实践(不同级别)
Low级别
先上传一个php文件试试
发现直接就上传成功了 应该是没有对文件格式做任何过滤吧
打开源码看一下
<?php
if( isset(
$_POST
[
'Upload'
] ) ) {
// Where are we going to be writing to?
$target_path
=
DVWA_WEB_PAGE_TO_ROOT
.
"hackable/uploads/"
;
$target_path
.=
basename
(
$_FILES
[
'uploaded'
][
'name'
] );
// Can we move the file to the upload folder?
if( !
move_uploaded_file
(
$_FILES
[
'uploaded'
][
'tmp_name'
],
$target_path
) ) {
// No
echo
'<pre>Your image was not uploaded.</pre>'
;
}
else {
// Yes!
echo
"<pre>
{
$target_path
}
succesfully uploaded!</pre>"
;
}
}
?>
果真,并没有任何过滤 那么中国菜刀就可以直接连接了
打开中国菜刀
发现一下子就绑定成功了
Medium File Upload Source
再上传php文件时发现已经不行了 只要上传JPEG和png格式的文件 我们抓包试试
我们把文件类型改成images/jpeg试试
发现并不行 想的太简单了 用一下00截断或者%00试试
%00
%00不行
发现依旧不行 是我哪里出问题了?想了一下
先上传一个图片试试 看一下格式
发现是自己傻了 把格式写错了image/png 写成了images/png
同时也发现并没有对内容做验证 我们再上传php文件试试
上传成功 没有对内容和后缀做验证 只是简单地mime验证
High级别
发现这个时候把MIME验证那一块文件格式改成image/png的时候已经不行了
试一下%00
依旧不行
试一下00截断
依旧失败 应该是也做了对文件大小做了限制或者是文件过滤是从前过滤从后过滤都有可能
那就上图片木马吧
用菜刀绑定下试试
并不能连上
进行重命名
先把等级调成低级别的 然后用命令注入127.0.0.1 | rename ..\..\hackable\uploads\222.png 2.php
再用菜刀连接一下
已经成功连接