DVWA靶场全解析(新手向)

DVWA靶场全解析

1.Brute Force

1.1low

我们直接在输入栏内随便填写数据,之后使用bp进行抓包

抓到包后发送到instruder模块进行爆破,由于需要同时爆破用户名和密码两个字段,所以我们选择集束炸弹模式

设置好字典后开始爆破,最后根据响应头的不同得到用户名和密码

1.2medium

这个级别与low基本一致,直接爆破即可得到用户名和密码

要注意的是降低进程数,防止检测频繁无法爆破

1.3high

在这里插入图片描述

查看这一关的源代码,可以知道比上两关多了token验证
在这里插入图片描述

我们先正常抓包,可以看到附带了token

对于这个的破解方法是选择集束炸弹模式进行破解,第二个字段选择token,将我们刚才得到的直接复制就好

最后得到密码

2.Command Injection

命令注入就是在需要输入数据的地方输入了恶意代码,而且系统并没有对其进行过滤或者其他处理导致恶意代码也被执行,最终导致数据泄露或者正常数据被破坏

常用到的连接符:

A&B(简单的拼接,AB之间无制约关系),A&&B(A执行成功才会执行B),A|B(A的输出作为B的输入),A||B(A执行失败,然后才会执行B)

2.1low

打开题目后随便输入一个指令来查看回显

得到了一些乱码

我们此时去靶场文件中找到dvwaPage.inc.php文件,选择在记事本中进行编辑,将所有的utf-8编码替换为gb2312编码
在这里插入图片描述

替换完成后选择保存重启小皮后,发现乱码已经可以正常显示了
在这里插入图片描述

接下来我们使用&&连接127.0.0.1和想要执行的命令发现可以正常显示和执行了

2.2medium

在这里插入图片描述

打开题目源码发现,代码过滤掉了&&和;两个符号

我们可以选择使用&来连接命令绕过也可以选择&;&绕过

2.3high

依旧是查看源代码
在这里插入图片描述

我们可以发现这次是过滤掉了绝大数的连接符号,但是观察后我们可以发现仍然有很多的连接符未被过滤如: |(前面加空格); || (前后加空格)等等,依照对应的逻辑,依旧可以注入

3.CSRF

3.1low

打开网站后是一个修改密码的页面
在这里插入图片描述

当我们输入密码进行修改后,提示修改成功后,我们会发现这是一个get型提交,所以我们可以直接再url中进行修改,提交后即修改完成
在这里插入图片描述

3.2medium

我们再次使用url修改发现失败
在这里插入图片描述

使用bp进行抓包,发现该等级多了对referer的验证
在这里插入图片描述

将正常输入的前置网站链接复制改包,即可修改完成

4.File Inclusion

4.1low

打开网站后发现我们可以查看目录下的三个文件
在这里插入图片描述

并且查看对应文件的提交方式也是直接在url后使用get方式进行提交

所以我们可以尝试直接修改url值来查看我们需要的文件

4.2medium

在这里插入图片描述

查看源代码发现这个等级对http和https进行了过滤
在这里插入图片描述

我们使用hthttp双写即可轻松绕过

4.3high

首先查看源代码
在这里插入图片描述

我们发现代码的要求是传入的page要以file开头,所以我们使用php伪协议中的file://进行文件读取
在这里插入图片描述

5.File Upload

5.1low

第一个等级允许任何格式的文件进行上传,我们直接编写一个一句话木马进行上传,即可过关
在这里插入图片描述

5.2medium

在这里插入图片描述

直接继续尝试上传木马,发现上传失败对文件的格式有了限制
在这里插入图片描述

我们首先将一句话木马的后缀改为.jpg进行上传,再使用bp进行抓包,在bp中将后缀改回php即可上传成功了
在这里插入图片描述

5.3high

这一等级我们还是直接上传木马并在bp中修改后缀,但仍然失败

查看源代码:
在这里插入图片描述

发现源码检查了文件大小,content-type,以及分割了文件名,所以我们采取构造图片马的方式进行上传

首先任取一张图片与我们的一句话木马放在同一文件夹下
在这里插入图片描述

以管理员的身份打开命令行面板,并进入图片所在文件夹
在这里插入图片描述

最后输入命令copy 123123.jpg /b + 123.php /a 888.jpg,我们的图片马就制作完成了
在这里插入图片描述

最后将图片马上传即可完成

6.Insecure CAPTCHA

6.1low

在这里插入图片描述

分析源码可得,在step=2时,才会进行更改密码操作
在这里插入图片描述

所以我们输入两次相同密码后直接使用bp抓包,然后将step改为2
在这里插入图片描述

显示更改成功

6.2medium

在这里插入图片描述

分析源代码可知,该等级比low多了passed_captcha验证

我们只需要再次抓包,并在修改step=2的同时在末尾增加“&passed_captcha=true” 即可

更改成功

6.3high

在这里插入图片描述

继续查看源代码可知,该等级的验证是 resp是 false,并且参数 g-recaptcha-response 不等于 hidd3n_valu3 或 http 报头的 User-Agent 参数等于 reCAPTCHA 时认为已经通过了验证码的检查

由于参数 g-recaptcha-response 和 User-Agent 头都是可控的,抓包修改后放包即可绕过

7.SQL Injection

7.1low

输入1,回显正常,确认存在sql注入
在这里插入图片描述
分别输入1’ order by 2#和1’ order by 3#找字段数
在这里插入图片描述
确定字段为2,开始确定回显位置
在这里插入图片描述
确定回显位置为第二个,开始爆库
在这里插入图片描述
爆库后开始爆表
在这里插入图片描述
爆表后开始爆字段
在这里插入图片描述
爆出字段后查询需要的信息
在这里插入图片描述

7.2medium

打开后发现不再是输入框传输数据
在这里插入图片描述
url地址中也没有看到参数,所以猜测使用了post传参,使用bp抓包看一下
在这里插入图片描述
在这里插入图片描述
发现将id为1 and 1=2#的时候页面不正常,那么可以判断页面为数字型注入
接下来发现输入1 order by 3#判断回显不正常,字段数为2
在这里插入图片描述
接下来判断回显位置
在这里插入图片描述
确定回显位置为2后开始爆库
在这里插入图片描述
爆库成功后爆表,注意引号被过滤
在这里插入图片描述
接下来利用十六进制绕过引号过滤爆列名,最后得出账户密码

8.SQL Injection (Blind)

我真的不会盲注

9.Weak Session IDs

9.1low

在这里插入图片描述

进入题目后我们可以看到题目中写每次单击按钮都会得到一个名为dvwaSession的cookie
在这里插入图片描述

多次点击后我们得到规律,每点击一次cookie值就会加一,所以我们可以通过用户点击次数来获取用户的cookie

9.2medium

在这里插入图片描述

依旧是多次点击寻找规律,我们发现这个cookie是一个10位数并且每次点击只会有最后几位发生变化,所以猜测可能是时间戳
在这里插入图片描述
将获取到的一个值放入时间戳转换网站,发现猜测正确

9.3high

在这里插入图片描述

这次点击后出现的cookie是一串加密过的字符串,所以我将该字符串放在解码网站中进行尝试
在这里插入图片描述

测试结果为md5加密,解码后为2,所以再点击一次继续解码,结果为3,说明cookie的值是点击次数的md5加密

10.DOM Based Cross Site Scripting (XSS)

DOM 型的 XSS 注入是在前端 JavaScript 调用 DOM 元素时可能产生的漏洞,可能触发 DOM 型 XSS 的 JavaScript 代码,攻击流程大概为:

document.referer 返回跳转或打开到当前页面的页面的URI
window.name 可设置或返回存放窗口的名称的一个字符串
location 可以设置窗口跳转或者返回当前窗口的地址
innerHTML 内嵌HTML代码
documen.write 页面内写入字符

10.1low

在这里插入图片描述

我们选择English后会发现url末尾新增了一个参数,我们尝试修改该参数,直接传入js代码
在这里插入图片描述

经过实验,传入成功

10.2medium

我们选择后English后同样尝试直接修改,发现攻击失效,查看源代码
在这里插入图片描述

发现攻击失效的原因是禁用了scrpit标签,所以我们选择通过一个单标签来构造闭合结构来执行我们的语句,选取<img>这个单标签,我们将要执行的语句放在其中,即可成功执行:

></option></select><img src=1 οnerrοr=alert(/xss)>

在这里插入图片描述

10.3high

直接查看源代码,发现采用了白名单过滤,我们在闭合的时候 必须包含白名单里的任意一个内容

所以我们构造的语句为:

English #></select><img src=2 οnerrοr=alert(/xss/) >

11.Reflected Cross Site Scripting (XSS)

非持久化,且需要使用钓鱼等手段欺骗用户点击恶意链接才能触发恶意代码。一般反射型 XSS 会出现在搜索页面,且大多数是用来获取用户的 cookie 信息的

11.1low

在这里插入图片描述

在输入框输入字符后发现有回显,尝试向其中输入代码:

<script>alert(/gfsys66/)</script>

在这里插入图片描述

攻击成功

11.2medium

查看源代码,发现<script>标签被过滤,尝试使用大小写绕过:

<ScRipt>alert(/gfsys66/)</ScRipt>

在这里插入图片描述

11.3high

在这里插入图片描述

继续查看源代码,发现了更严格的过滤,此时script标签已经没法再用了,那么我们使用别的标签也可以达到我们的目的:

<img src=1 οnerrοr=alert(/gfsys66/)>

在这里插入图片描述

成功注入

12.Stored Cross Site Scripting (XSS)

存储型的 XSS,最大的特点是可持久化,因为在过滤条件差的情况下,存储型的 XSS 的恶意代码会直接被保存在服务器端的数据库中。而这个恶意代码被服务器读出输出到用户端的Web页面时,恶意代码会执行,从而达到攻击的目的

12.1low

打开后发现题目给了文本框,直接将代码输入文本框尝试直接攻击
在这里插入图片描述

攻击成功

12.2medium

继续尝试普通攻击,再一次成功
在这里插入图片描述

查看源代码后发现对输入的长度进行了过滤,由于范围仍然足够大,所以没有起到预期的效果
在这里插入图片描述

12.3high

继续尝试普通攻击,攻击失效,查看下方的回显发现script标签再一次被过滤
在这里插入图片描述

尝试大写绕过,成功
在这里插入图片描述

13.Content Security Policy (CSP) Bypass

13.1low

首先查看网站的源代码
在这里插入图片描述

在源代码中可以发现受信任的网站有:

https://pastebin.com/raw/R570EE00
https://www.toptal.com/developers/hastebin/raw/cezaruzeka

首先打开pastebin.com,输入“alert(/gfsys66/);”,然后点击“Create New Paste”就可以得到受信任的url
在这里插入图片描述

点击“raw”,复制得到的链接,然后将这个链接输入DVWA,就成功了
在这里插入图片描述

13.2medium

在这里插入图片描述

查看网站源代码可知,HTTP 头信息中的 script-src 的合法来源发生了变化。script-src 还可以设置一些特殊值,unsafe-inline 允许执行页面内嵌的 <script> 标签和事件监听函数,nonce 值会在每次 HTTP 回应给出一个授权 token

所以我们直接通过内联 JavaScript 代码,注入时直接令 nonce 为设定好的值即可:

<script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=" > alert'xss')</script>

14.JavaScript Attacks

14.1low

题目要求提交success即可成功
在这里插入图片描述

直接提交后显示需要token

查看源代码后发现需要rot13加密和md5加密
在这里插入图片描述

那么直接给success进行rot13加密,而后md5加密,再给hidden传值
在这里插入图片描述

最后输入success成功

14.2medium

直接提交后还是显示需要token
在这里插入图片描述

这个仔细观察只是把changeme到着写,而后在开头和最后加上了xx,所以再给hidden传入XXsseccusXX
在这里插入图片描述

最后输入success成功

14.3high

在这里插入图片描述

查看页面源码发现token还是乱码,所以选择继续查看php源码
在这里插入图片描述

查看后找到了一个js文件
在这里插入图片描述

打开后发现仍然是乱码,将其进行js解码,获得代码
在这里插入图片描述

分析代码后得知,想要提交success字符串的话,应该这样操作:

  • 将输入框的值改为success

  • 在前端控制台依次执行1、token_part_1(“ABCD”, 44);

    ​ 2、token_part_2(“XX”);

  • 提交

15.Authorisation Bypass

16.Open HTTP Redirect

16.1low

打开题目后出现了两个按钮
在这里插入图片描述

选择quote 1,发现了url中使用id传递参数,可以构造:

?redirect=跳转网页URL

完成注入

16.2medium

在这里插入图片描述

查看源代码,发现相较于low,该等级防止了绝对 URL 的重定向

所以我们可以尝试使用其他方法或工具来实现重定向效果,例如使用 JavaScript 进行重定向或者使用服务器端的重定向规则,以下是一个示例 JavaScript 代码:

<script type="text/javascript">
    var redirectURL = "http://www.example.com"; 
    window.location.href = redirectURL; 
</script>

16.3high

在这里插入图片描述

查看源代码可知,输入的参数必须要包含字符串info.php:

?redirect=https//www.baidu.com/?已定义参数=info.php
  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值