CSRF漏洞的相关知识

CSRF漏洞

1.概念

CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式

2.攻击原理

	攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,
但是却完成了攻击者所期望的一个操作。

3.流程图

在这里插入图片描述
Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。
1 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
(网站B对网站A发出一个请求的同时,浏览器也会把网站A产生Cookie信息带上)–相当于浏览器访问网站A
5 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

4.分类:CSRF漏洞一般分为站外和站内两种类型。

1.CSRF站外类型的漏洞本质上就是传统意义上的外部提交数据问题。
通常程序员会考虑给一些留言或者评论的表单加上水印以防止SPAM问题(这里,SPAM可以简
单的理解为垃圾留言、垃圾评论,或者是带有站外链接的恶意回复),但是有时为了提高用户
的体验性,可能没有对一些操作做任何限制,所以攻击者可以事先预测并设置请求的参数,在
站外的Web页面里编写脚本伪造文件请求,或者和自动提交的表单一起使用来实现GETPOST
请求,当用户在会话状态下点击链接访问站外Web页面,客户端就被强迫发起请求。
2.CSRF站内类型的漏洞在一定程度上是由于程序员滥用类变量造成的。
在一些敏感的操作中(如修改密码、添加用户等),本来要求用户从表单提交发起请求传递参数
给程序,但是由于使用了REQUEST类变量造成的。在一些敏感的操作中(如修改密码、添加用
户等),本来要求用户从表单提交发起POST请求传递参数给程序,但是由于使用了_REQUEST
等变量,程序除支持接收POST请求传递的参数外也支持接收GET请求传递的参数,这样就会为
攻击者使用CSRF攻击创造条件。一般攻击者只要把预测的请求参数放在站内一个贴子或者留言
的图片链接里,受害者浏览了这样的页面就会被强迫发起这些请求。

5.攻击流程

  1. 攻击者构造恶意网页。在实施攻击前,攻击者需要构造一个与正常添加管理员用户基本一样的网页,在该恶意网页中对必要的参数项进行赋值,并将该网页的action指向正常添加管理员用户时访问的URL
  2. 攻击者利用社会工程学诱使Axous系统管理员访问其构造的恶意网页;
  3. 执行恶意代码。当系统管理员访问恶意网页时,恶意代码在管理员不知情的情况下以系统管理员的合法权限被执行,攻击者伪造的管理员账户添加成功。

案例
完成DVWA的三个等级实验
Low:删除referfer
①打开DVWA,修改密码
在这里插入图片描述
②使用burp抓包,去掉referer的字段,正常跳转
在这里插入图片描述
在这里插入图片描述
③使用bp自带的csrf poc进行攻击
在这里插入图片描述
④在csrf poc里面操作,修改密码为qwer,复制浏览器代码
在这里插入图片描述
在这里插入图片描述
⑤打开链接,利用新密码登录
在这里插入图片描述
在这里插入图片描述
Medium:绕过referer
①修改密码为1234
在这里插入图片描述
②使用burp抓包,修改referer参数为本机地址,绕过,修改成功。
在这里插入图片描述
③使用burp的csrf poc工具,修改密码为1234qwer,复制html代码到新创建的txt文件中。
在这里插入图片描述
④生成一个127.0.0.1.html的文件,将复制的代码保存进去。
在这里插入图片描述
⑤使用一下网址在浏览器内访问,访问显示密码修改为”1234qwer”成功
在这里插入图片描述
在这里插入图片描述
⑥重新登录,用户名:admin;密码1234qwer,登录成功
在这里插入图片描述
在这里插入图片描述
High:
①经过抓包发现,这里的验证多了一个user_tokend
在这里插入图片描述
②下载插件CSRF Token Tracker
在这里插入图片描述
在这里插入图片描述
③使用我们的csrf token tracer 工具
在这里插入图片描述
④先放包,再在重发器里URL的地方修改密码,然后发送,显示changed就是发送失败
在这里插入图片描述
⑤更改成功后,使用新密码“1234qwer”登录
在这里插入图片描述
在这里插入图片描述

6.漏洞防御(服务端的防御、用户端的防御和安全设备的防御)

验证HTTP Referer字段
在请求地址中添加token并验证
在HTTP头中自定义属性并验证
用户端的防御
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值