DVWA靶场通关-CSRF(跨站请求伪造)

发布时间 2023-09-17 19:07:22作者: TinKode

Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、         File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、       SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(DOM)(基于DOM树)、       XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)

 

  1. 用户输入账号信息请求登录A网站。
  2. A网站验证用户信息,通过验证后返回给用户一个cookie
  3. 在未退出网站A之前,在同一浏览器中请求了黑客构造的恶意网站B
  4. B网站收到用户请求后返回攻击性代码,构造访问A网站的语句
  5. 浏览器收到攻击性代码后,在用户不知情的情况下携带cookie信息请求了A网站。此时A网站不知道这是由B发起的。那么这时黑客就可以进行一下骚操作了!

两个条件:a 用户访问站点A并产生了cookie

b 用户没有退出A同时访问了B

  1. 抓取一个正常请求的数据包,如果没有Referer字段和token,那么极有可能存在CSRF漏洞
  2. 如果有Referer字段,但是去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。
  3. 利用工具进行CSRF检测。如:CSRFTESTER,CSRF REQUEST BUILDER等

使用burpsuite快速生成CSRF poc

 点击复制html ,然后保存在本地,存为HTML文件

双击打开,当受害者点击就执行了我们的CSRF代码

等级low

burp抓包,发现是GET传参

 http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#    输入后url变成这样

http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=12345&password_conf=12345&Change=Change#      可以直接在url中修改密码

等级Medium

源码是通过referrer这个字段的参数进行判断的

burp抓包

Referer: http://127.0.0.1/dvwa/vulnerabilities/csrf/

构造一个HTML文件,a标签语句

<a href="http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=12345&password_conf=12345&Change=Change#">更改密码</a>

D:\phpstudy_pro\WWW\DVWA\vulnerabilities\csrf                   文件名自己的ip

 http://127.0.0.1/dvwa/vulnerabilities/csrf/172.23.40.145.html              打开文件,点击文字burp抓包

等级high

burp抓包,发现&user_token=bcf813fea8513bd6483a7a620273e517

这里真实环境必须通过xss存储型漏洞获得了token不然玩不了

获得token利用上一题的方法,让用户访问HTML文件,然后抓包拼接token

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