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
再用菜刀連接一下
已經成功連接