DVWA通关攻略(适合新手)

目录

前言

一、暴力破解

二、ping命令注入

 三、CSRF

四、文件包含

五、文件上传

六、CAPTCHA

七、SQL注入

九、SQL注入(盲注)

十、会话劫持

十一、DOM性xss注入

十二、反弹性xss注入

十三、存储性xss注入

十四、CSP

十五、javascript攻击

总结


前言

Dvwa是一个适合新手的靶场,他综合了多个注入web的方法。非常值得我们学习

一、暴力破解

Vulnerability: Brute Force:

Low:

DVWA通关攻略(适合新手)_第1张图片

 DVWA通关攻略(适合新手)_第2张图片

 由图2,得出结论。这里可以尝试sql注入。于是我使用了admin’ and 1=1#。成功注入。

Medium:

这里的源码加上了过滤。避免了sql注入的问题。于是我打算使用密码枚举爆破。

DVWA通关攻略(适合新手)_第3张图片

DVWA通关攻略(适合新手)_第4张图片

DVWA通关攻略(适合新手)_第5张图片

 最后根据长度大小来判断,结果密码是password,成功登录。

High:

同样抓包。

发现这里多了一个token,面对这种情况。可以使用草叉模式,把这个token带上去爆破。

 DVWA通关攻略(适合新手)_第6张图片

 DVWA通关攻略(适合新手)_第7张图片

 这里设置初始值。

 DVWA通关攻略(适合新手)_第8张图片

 爆破成功,密码为password

二、ping命令注入

Vulnerability: Command Injection

Low:

从题目中看出,给一个IP并调用ping命令。那么我就可以在输入的时候带上一些字符,被带进终端中,从而被执行

DVWA通关攻略(适合新手)_第9张图片

 成功,被终端执行。

Medium:

DVWA通关攻略(适合新手)_第10张图片

 这里同样使用 & 。查看源码发现他把 ;   && 这两个过滤了。

 High:

DVWA通关攻略(适合新手)_第11张图片

从这里可以看出,我们的&给过滤了。

查看源码:

 DVWA通关攻略(适合新手)_第12张图片

 仔细观察 可以发现 | 这个东西没有被过滤。

DVWA通关攻略(适合新手)_第13张图片

 三、CSRF

Vulnerability: Cross Site Request Forgery (CSRF)

这个是跨网站伪请求。

Low:

抓包发现,客户端给服务的发现了这样的请求:

那么我就使用这个做一个按钮或者网页欺骗用户去点击。

DVWA通关攻略(适合新手)_第14张图片

当用户去点击的时候,便会自动把密码该为password。

 DVWA通关攻略(适合新手)_第15张图片

Medium:

同样点击发送请求。

DVWA通关攻略(适合新手)_第16张图片

 

 这里他会检查你的请求前的网站,就是referer。

DVWA通关攻略(适合新手)_第17张图片

 请求成功!

High:

DVWA通关攻略(适合新手)_第18张图片

这里没有反应。

查看源码:

DVWA通关攻略(适合新手)_第19张图片

 有token,使用bp抓包查看。

这样的话,我就需要配合xss跨网站攻击了尝试获取token。

构造一个xss代码:


// 这个代码会出现一个窗口。远程窗口,而后我们在这个窗口里,获取里面的element(元素),得到token。从而完成一此crsf攻击。

DVWA通关攻略(适合新手)_第20张图片

 DVWA通关攻略(适合新手)_第21张图片

password修改成功!

四、文件包含

Vulnerability: File Inclusion

Low:

DVWA通关攻略(适合新手)_第22张图片

 发现一个可控参数。尝试读取其他文件。

DVWA通关攻略(适合新手)_第23张图片

成功读取了file4.php

我也可以读取其他文件比如说php.ini,报错是有绝对路径的。

 

 DVWA通关攻略(适合新手)_第24张图片

Mediun:
这里查看源码发现:

DVWA通关攻略(适合新手)_第25张图片

他把http过滤了。

这样我们可以使用一下php伪协议。

High:

同样的方法,发现有过滤

查看源码:
DVWA通关攻略(适合新手)_第26张图片

 这里需要file 开头。那么我就可以使用file://协议了。

访问成功

当然,失败的时候,会自动爆出绝对路径。

五、文件上传

Vulnerability: File Upload

Low:

DVWA通关攻略(适合新手)_第27张图片

没有过滤,直接上传木马。

使用蚁剑连接。

DVWA通关攻略(适合新手)_第28张图片

Medium:

直接上传木马,发现,他对content-type好像有检查。

DVWA通关攻略(适合新手)_第29张图片

 尝试使用Bp抓包修改。

DVWA通关攻略(适合新手)_第30张图片

 成功上传。

 最后交给蚁剑。

DVWA通关攻略(适合新手)_第31张图片

High:

同样直接上传木马:

DVWA通关攻略(适合新手)_第32张图片

这次同样修该content-type,但是没有成功。

DVWA通关攻略(适合新手)_第33张图片

查看源码:

DVWA通关攻略(适合新手)_第34张图片

发现,这里检查了大小,content-type。还有就是他分割了文件名。这看来我这样无脑上传效果是不明显的了,所以我打算上传图片马。并配合文件包含漏洞来激活木马。最后蚁剑连接。

DVWA通关攻略(适合新手)_第35张图片

六、CAPTCHA

Vulnerability: Insecure CAPTCHA

Low:

不安全的验证码,查看源码发现

DVWA通关攻略(适合新手)_第36张图片

当step==2的时候,他才会进行到第二部分,就是更改密码。使用bp抓包,修改step参数为2

DVWA通关攻略(适合新手)_第37张图片

成功通过验证。

Medium:

直接修改step为2,发包

DVWA通关攻略(适合新手)_第38张图片

出现了以上问题,说我不是captcha。猜测是User-Agent问题,尝试修改User-Agent为CAPTCHA。

无效。查看源码:

这里有一个Post传参,passed_captcha,但是下面没有,添加上去。

修改成功。

High:

同样,直接修改参数,但是修改密码失败了。

查看源码:

DVWA通关攻略(适合新手)_第39张图片

这里出现了一个新的参数,而后他还要修改user-agent。

DVWA通关攻略(适合新手)_第40张图片

修改成功

七、SQL注入

Vulnerability: SQL Injection

Low:

这里有一个可控参数id,我尝试在这里注入。

报错,说明存在注入点

DVWA通关攻略(适合新手)_第41张图片

这是一个字符型注入。当输入1‘ and 1=2 # 时,没有回显。

找到注入点后,使用order by 查看回显位数。

1‘ order by 3# //查看回显位。

DVWA通关攻略(适合新手)_第42张图片

最多会显示3段数据,也就是3个回显位。

1’ and 1=1 union select database(),user()# // 使用联合查询,查看当前用户和当前使用的数据库。

DVWA通关攻略(适合新手)_第43张图片

1’ and 1=1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #

// 查询当前数据库里的所有表。

DVWA通关攻略(适合新手)_第44张图片

1’ and 1=1 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=’users’ #

// 查询users表里的所有字段。

DVWA通关攻略(适合新手)_第45张图片

1’ and 1=1 union select group_concat(user),group_concat(password) from users #

// 查询users表的password和user 字段内容。

SQL注入完成。

Medium:

这里的ID也是可以控制的。这里的话,可以修改网页源码。

DVWA通关攻略(适合新手)_第46张图片

直接在value 修改。

可以看出,这个是数字型注入。

1 order by 3#

DVWA通关攻略(适合新手)_第47张图片

1 and 1=1 union select version(),database() #

1 and 1=1 union select group_concat(table_name),2 from information_schema.tables where table_schema=database() #

1’ and 1=1 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=’users’ #

1’ and 1=1 union select group_concat(user),group_concat(password) from users #

注入完成。

High:
这里可以直接注入,字符类型

DVWA通关攻略(适合新手)_第48张图片

这里有一个limit,就是限制回显条数。这里是只能回显一条消息。我可以给一个不存在的id,从而让他回显我想的数据。注入方法和low相同。

九、SQL注入(盲注)

Vulnerability: SQL Injection (Blind)

Low:

这里输入ID,他不会回显信息。

DVWA通关攻略(适合新手)_第49张图片

那么这可以初步判断,这是一个SQL盲注。需要我,猜测字符。

使用ascii()函数,substr()函数,去猜测。

代码:

1’ and ascii(substr(database(),0,1))>89 # //猜测数据库第一个字符的ascii值

1’ and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),0,1))>89 # //猜测表的字符的acii值

1’ and ascii(substr((select group_concat(colunm_name) from information_schema.columns where table_schema=database()),0,1))>89# //猜测字段的值

1’ and ascii(substr((select group_concat(password) from users),0,1))>89# //猜测password内容的ascii值

Medium:

DVWA通关攻略(适合新手)_第50张图片

这里同样直接修改网页源码。注入方式同low一样。

注入类型是整数型

1 and 1=1 #

 同样使用上面的代码

High:

注入方式不变,同样使用bool类型盲注。

使用字符型注入

1’ and 1=1 #

  同样使用上面的代码

十、会话劫持

Vulnerability: Weak Session IDs

Low:DVWA通关攻略(适合新手)_第51张图片

每当我点击一下,这个cookie值就会加一。所以我们可以通过用户点击次数来获取用户的cookie。这就是弱cookie的生成。

Medium:

DVWA通关攻略(适合新手)_第52张图片

这个cookie值很像时间戳,于是我找了一个在线的时间戳转换网站。

是的没错这cookie值就是点击时候的时间戳

High:

DVWA通关攻略(适合新手)_第53张图片

看的第一眼猜测这是md5值。拿去md5在线解密查看。DVWA通关攻略(适合新手)_第54张图片

解密出来是一,那么我在点击一下,在解密发现

DVWA通关攻略(适合新手)_第55张图片

这说明,这cookie的值是点击次数的md5加密。

十一、DOM性xss注入

Vulnerability: DOM Based Cross Site Scripting (XSS)

Low:

DVWA通关攻略(适合新手)_第56张图片

尝试在url中修改参数,传入js代码。

DVWA通关攻略(适合新手)_第57张图片

成功攻击。

Medium:

同样尝试攻击,失败。

查看源码:

DVWA通关攻略(适合新手)_第58张图片

DVWA通关攻略(适合新手)_第59张图片

代码:

>

// 前面都是闭合标签,而img,则是主要代码,利用img构造出事件触发js代码。弹出/xss/

High:

查看源码:

DVWA通关攻略(适合新手)_第60张图片

发现,这里必须要有白名单里的,所以闭合的时候 ,必须包含白名单里的任意一个内容。

English #>

DVWA通关攻略(适合新手)_第61张图片

成功攻击。

十二、反弹性xss注入

Vulnerability: Reflected Cross Site Scripting (XSS)

Low:

DVWA通关攻略(适合新手)_第62张图片

发现可控参数。

输入xss代码,开始跨网站攻击。

DVWA通关攻略(适合新手)_第63张图片

攻击成功!

Medium:

直接攻击:

DVWA通关攻略(适合新手)_第64张图片

攻击失败。猜测,这里过滤了

成功攻击。

High:

查看题目:

他说有个页面加载了一些代码,可以修改,从而执行我们自己的代码。

从这里可以看出,他只信任他自己的网页。而上面有有一个/source/jsonp.php。那么我就可以构造一个js代码,给他,他在src里发现有自己的网站就执行这串代码。

DVWA通关攻略(适合新手)_第73张图片

这里又发现一个post参数,那么我就可以使用bp抓包,而后发送我构造的js代码。

Include=

你可能感兴趣的:(网络安全,网络安全,javascript,php,网络)