dvwa通关教程

本文详细描述了在DVWA渗透测试中的各种挑战,包括使用爆破技术破解账户、抓包获取token、命令执行、跨站脚本攻击、存储型和CSRF漏洞利用,以及高级的安全防御机制如加密和重定向策略。
摘要由CSDN通过智能技术生成

一.DVWA
1
(1)low
简单的爆破用户名和密码,这里不再过多赘述
在这里插入图片描述
账号为admin,密码为password
(2)medium
同上依然可以使用爆破解决,就是时间有点长。。
(3)high
抓包,看到有token
在这里插入图片描述将token和password两项设置为变量 (因为已知用户名为admin,为了方便演示,不在破解用户名)攻击模式使用Pitchfork(音叉攻击)
选择options将线程数设置为1(递归查找,将上一个请求的相应token作为下一个请求的payload的token,所以就不并发。因为token是每次验证完后才会新生成token,所以不能使用多线程进行爆破)
继续下滑找到Grep-Extract
Grep-Extract模块进行相应设置,获取相应的token,截取相应token的前后标识,用于下次截取
回到有效载荷页面
设置第二个参数——token,有效载荷类型改为递归搜索,在第一个请求的初始有效负载部分把我们复制的token粘贴上去
再添加词典,开始爆破
(4)IMPOSSIBLE
他说无解,账户被锁了,不是很会。。。
2
(1)LOW
在这里插入图片描述他让输入一个ip,先试试127.0.0.1
在这里插入图片描述没什么反应,查看源码,发现是输出wondos命令,那就应该是windos的ping命令,然后源码里说我们可以执行ping命令,那么也有可能可以执行其他命令,使用命令链接符试试,得到结果
在这里插入图片描述(2)mediumm
查看源码,发现过滤了两个连接符,那么拿其他的绕过即可,得到结果
在这里插入图片描述(3)high
查看源码。发现全过滤了。。但是仔细看一下,发现|这个有个空格,好像是没完全过滤,那么试试用这个,在参数与连接符之间不要加空格,得到结果
在这里插入图片描述3.
(1)
查看源码
在这里插入图片描述他这个意思是说要改个密码在这个网站里,然后就会在url里注入东西
那就先改个密码试试,
出来这些
在这里插入图片描述抓个包试试
在这里插入图片描述我们可以看到抓出来得到的信息和请求的信息是一致的,
那是不是说明如果我能控制url栏里传入的参数,就能够不在网站内执行更改密码的操作呢?
改一下参数
在这里插入图片描述在这里插入图片描述成功
(2)medium
在传入密码和确认密码参数前先进行了一个if语句的判断,判断里面的内容主要是验证这个访问请求是否是从dwva网站本身发起的,若不是就不执行后面的操作
源码是通过referrer这个字段的参数进行判断的,通常情况下在增加referrer验证时就是网站本身当前页面的ip地址,我们通过抓包看看信息
在这里插入图片描述在这里插入图片描述自己写一个更改密码的url,网站的ip地址为:172.16.16.108,把设计的html页面名字改为网站的ip地址,里面的a标签就是更改密码的操作,把设计好的标签拖到dvwa的csrf里点击在这里插入图片描述再点击这个显示修改成攻
(3)high
查看源码
在这里插入图片描述在这里插入图片描述又是token的校验,每次登录都会校验token是否正确,若想要执行更改密码操作必须知道正常用户的token,获得用户token的方式有两种:
构造一个页面让用户点击,点击之后偷偷的读取用户登录网站的token,把token加到自己构造的更改密码的表单上做让用户点击完成攻击,但由于同源策略,一半无法获得token,也有解决方法,但那个更繁琐,这里不赘述了
如果用户网站上刚好有存储型漏洞,可以利用存储型漏洞与csrf漏洞配合,即通过存储型漏洞获得token再利用csrf漏洞结合拿到的token完成攻击
获取token后把token放到原来抓包的代码中攻击就行
4.
(1)low
在这里插入图片描述发现一个可变参数
读取一下文件
在这里插入图片描述在这里插入图片描述在这里插入图片描述找到隐藏文件
在这里插入图片描述

(2)medium
一样的。。在这里插入图片描述(3)high
也是一样,不知道有什么区别。。可能做错了
在这里插入图片描述5.
(1)
让上传东西,直接编写一个一句话木马上传即可
(2)限制了格式,抓包改包即可
(3)抓包改包也不行了,查看源码
在这里插入图片描述发现限制了文件大小以及分割了文件名,所以选择使用图片码上传,正好之前有一张直接穿了就行
6.
(1)
在这里插入图片描述查看源码
意思是将代码中的step改为2,抓包
在这里插入图片描述上面那个图是错的,不知道出啥问题了,后面试了一次过了
在这里插入图片描述(2)查看源码发现比low多了个post传参,添加上去即可
(3)抓包后出现新参数,修改useranget即可
7.
(1)输个id上去发现上面有个可变参数,尝试使用sql注入

在这里插入图片描述发现报错
说明存在注入点,这是一个字符型注入。当输入1‘ and 1=2 # 时,没有回显。找到注入点后,使用order by 查看回显位数。
在这里插入图片描述爆库
在这里插入图片描述爆表
在这里插入图片描述爆字段
在这里插入图片描述查询字段内容
在这里插入图片描述注入成功
(2)在这里插入图片描述选择不同的ID显示对应的name,并且没有在URL中传参,抓包试试
在这里插入图片描述在这里插入图片描述数字型注入
判断字段数
在这里插入图片描述在这里插入图片描述字段数为2
在这里插入图片描述判断回显点
在这里插入图片描述判断版本号
然后就是查表查字段爆密码
(3)

当访问页面时,发现通过一个链接才能修改对应的ID
点击链接,传参
之后就和之前一样了
8.
(1)
在这里插入图片描述
当输入user ID后显示用户ID存在,当输入id特别打的时候
在这里插入图片描述满足布尔盲注场景,使用SQLMap自动化注入
获取当前用户的cookie值,将当前的cookie信息用SQLmap跑包,指定布尔盲注类型,查询当前数据库,查询当前数据库下的表名,查询users表下的字段名,查询数据
(2)
选择不同的ID,返回的结果都为User ID exists in the database.,并且URL栏中没有相关传参,猜测可能使用了POST传参,对当前页面抓取数据包,页面发生了变化,满足布尔类型的盲注,使用sqlmap自动化注入,,将文本保存在sqlmap的根目录,将当前页面的数据包信息,复制到本地的txt文本里面,并在id=处标记*号,然后宝库爆表爆字段查询数据
(3)
前面都一样,就是使用sqlmap自动化跑包时由于这里输入时一个url,响应是另一个URL故使用参数–second-url= (设置二阶响应的结果显示页面的url),后面也一样
9.
(1)
在这里插入图片描述他说这个将会建立一个新的cookie,f12查看储存
每当我点击一下,这个cookie值就会加一。在这里插入图片描述
所以我们可以通过用户点击次数来获取用户的cookie。这就是弱cookie的生成。
(2)
cookie是点击时的时间戳
(3)cookie的值是点击次数的md5加密。
9.
(1)
在这里插入图片描述插入js代码
在这里插入图片描述成功
(2)
禁止js代码了,可以用img构造一个

检查元素发现输入的值在select里面,所以要加一个闭合标签

(3)
查看源码
在这里插入图片描述发现,这里必须要有白名单里的,所以闭合的时候 ,必须包含白名单里的任意一个内容。
English #><img src=2 οnerrοr=alert(/xss/) >
10.
(1)在这里插入图片描述直接用xss代码共计就行
在这里插入图片描述(2)
大小写绕过即可
(3)
因为对xss用了正则所以用事件型构造
<img src=1 οnerrοr=alert(1)>
11.(1)
在这里插入图片描述还是和之前一样,输入的可以直接显示出来,那么就继续使用xss命令攻击,但是name输入长度有限,所以只在下面那个地方输入就行
在这里插入图片描述(2)和low一样
(3)留言板不让攻击了,那就修改一下name最大长度的值就行
在这里插入图片描述13.(1)
查看源码
在这里插入图片描述head那可以看出以下外部资源网站可以被执行:
https://pastebin.com
hastebin.com
example.com
code.jquery.com
https://ssl.google-analytics.com
访问https://pastebin.com/
在这里插入图片描述创建连接
点击raw
复制出现的连接回去输进去即可
(2)
输入源码中的注释内容# ,发现可以直接弹窗
(3)
查看source/high.js源码:
在这里插入图片描述在点击网页的按钮使 js 生成一个 script 标签,src 指向 source/jsonp.php?callback=solveNum。
在这里插入图片描述使用HackBar发送post提交
14.
在这里插入图片描述输入success后提示需要token,这时只需要在前端调用generate_token()方法生成相应token就行
在这里插入图片描述
页面源代码中token的值由md5(rot13(phrase))决定的。
通过console控制台直接拿到token值。
使用bp抓包然后修改数据包中的token值即可。
(2)原理和Low一样,只是加密方法被更换了,那步骤应该就是:
1、将输入框的值改为success
2、在前端控制台执行一次do_elsesomething()方法,执行代码为:do_elsesomething(“XX”);
do_something(e)方法是将phrase变量的值逆序,也就是sseccus,生成的token值=XXsseccusXX
使用bp将输入框的值改为XXsseccusXX。
(3
查看源码
在这里插入图片描述查看high.js,但是这里的代码明显被加密混淆了。
可以使用在线解码工具:http://deobfuscatejavascript.com/#。
核心源码
在这里插入图片描述几个函数调用顺序及生成token的步骤如下:
首先将phrase 的值清空document.getElementById(“phrase”).value = “”;
然后执行token_part_1(a, b),取phrase值并进行字符串翻转(逆序)处理。
延迟300ms后执行token_part_2(e = “YY”),传入参数字符串’XX’和token值拼接并调用sha256()加密。
点击按钮时执行token_part_3(t, y = “ZZ”),将token值和字符串’ZZ’拼接并调用sha256()加密,从而得到最终的token。
在输入框输入 success 后,再到控制台输入token_part_1(“ABCD”, 44)和token_part_2(“XX”)这两个函数,最后点击按钮执行token_part_3()
成功获得正确 token。(这道不会,网上抄的)
15.
(1)
他这个是让你以非管理员的身份登录并且访问这个页面,那我们切到登录页面换一个非管理员的账号密码登录
在这里插入图片描述嗯,low好像非管理员也可以访问。。
(2)
这个就不行了
在这里插入图片描述那我们试试不访问数据而访问数据文件试试
在这里插入图片描述(3)不会
16.
(1)
在这里插入图片描述重定向页面没有限制,您可以重定向到您想要的任何地方。所以我们只需要使用redirect函数将其重定向到我们指定的网页即可
(2)
查看源码
这个难度是防止我们将url带离这个网站,所以我们用函数将其带到照顾个网站的其他部分就行了
(3)重定向页面试图锁定我们仅重定向到 info.php 页面,但通过检查 URL 是否包含“info.php”来实现。

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DVWA(Damn Vulnerable Web Application)是一个专门用于测试和学习Web应用安全的漏洞实验平台。CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的Web安全漏洞。下面是一个简单的DVWA CSRF通关教程: 1. 下载和安装DVWA:首先,你需要从DVWA官方网站下载DVWA实验平台,并将其部署到你的本地服务器或虚拟机中。 2. 启动DVWA:在你的服务器上启动DVWA,并确保它可以通过浏览器访问。 3. 注册并登录:使用你的浏览器访问DVWA,并注册一个新用户。然后,使用你的新用户登录到DVWA。 4. 寻找CSRF漏洞:在DVWA的主界面上,点击"CSRF"标签,进入CSRF页面。 5. 查看源代码:在CSRF页面上,查看页面的HTML源代码。寻找包含表单提交功能的表单。 6. 构造恶意请求:根据HTML源代码,构造一个恶意请求,该请求可能会执行一些不安全的操作,例如更改用户密码或删除帐户。 7. 利用CSRF漏洞:使用构造的恶意请求,通过其他方式引导用户访问你构建的恶意请求链接。当用户访问这个链接时,他们的操作将被执行,而他们可能并不知情。 8. 验证漏洞:通过在DVWA中检查相关操作是否被执行,来验证是否成功利用了CSRF漏洞。 请注意,在进行漏洞测试时,确保只在授权范围内操作,并遵循合法的道德规范。漏洞测试应该仅用于学习和安全研究目的,不应用于非法活动。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值