CSRF(跨站请求伪造)

一、CSRF原理

1、概念

用网站对用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作

2、受害者的两个操作

要完成一次CSRF攻击,受害者必须依次完成两个:

  • 登录受信任网站A,并在本地生成Cookie。
  • 在不登出A的情况下,访问危险网站B。 两者缺一不可

3、攻击三个部分

漏洞风险存在

  • 需要目标站点或系统存在一个可以进行数据修改或者新增操作,且此操作被提交到后台的过程中,其未提供任何身份识别或校验的参数。后台只要收到请求,就立即下发数据修改或新增的操作
  • 常见场景:用户密码的修改、购物地址的修改或后台管理账户的新增等等操作过程中

伪装数据操作请求的恶意链接或者页面

  • CSRF漏洞风险存在了,如果需要真正的被利用,还需要对"修改或新增"数据操作请求的伪装,此时恶意攻击者只要将伪装好的"数据修改或新增"的请求发送给被攻击者,或者通过社工的方式诱使被攻击者在其cookie还生效的情况下点击了此请求链接,即可触发CSRF漏洞,成功修改或新增当前用户的数据信息。

诱使用户主动访问或登录恶意链接,触发非法操作

  • 当前用户在不知情的情况下,访问了黑客恶意构造的页面或在链接,即在非本意的情况下完成黑客想完成的"非法操作",实现了对当前用户个人信息的恶意操作。

二、CSRF的类型

get类型

get类型的CSRF是CSRF中最常见,危害最大,但也是最简单的一种类型了,只要一个http请求就可以了,这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,从地址栏我们可以明确看到修改密码时向服务器传递的参数列表

post类型

post是希望服务器做某项写操作,不幂等的。因为是设计成有影响的操作,所以它不能被缓存。 post请求一般都是表单提交,可以在body里面携带数据。

三、CSRF靶场练习(DVWA)

1、CRSF-low

step1:查看源码

发现只对 <math xmlns="http://www.w3.org/1998/Math/MathML"> p a s s n e w 和 pass_new和 </math>passnew和pass_conf进行了判断

step2:创建html文件

创建html文件,对应网址与修改密码的网址相同 使得用户在触发标签后,跳转到修改密码的界面,这个时候已经按照我们设定的密码进行了修改

step3:点击恶意链接后验证

输入之前修改的密码显示错误

输入正确的密码后,成功登录

2、CRSF-medium

step1:查看源码

查看源码可以发现,相较于low级,medium级对referer进行了判断

step2:burp抓包

而如果用户点击了攻击者的恶意地址,所提交的数据包的 Referer 字段与正常修改密码的字段内容不一样,因此会被服务器拦截,导致修改密码失败

step3:针对referer有以下解决方案

方法一、在恶意文件 中设置好正确的 Referer 字段

原本没有referer字段,在后面添加,然后放包

方法二、绕过referer

将其复制到以IP地址为名的html文件中

在浏览器中打开 注意打开时域名为http://127.0.0.1/html文件名

step3:点击恶意链接后验证

使用原来的密码无法登录,使用恶意代码中的代码就可以登录

3、CRSF-high

step1:查看源码

  • 查看源码后发现,在之前的情况下增加了token的验证
  • Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。

step2:使用burp抓包

step3:进行暴力破解

step4:验证

使用原来的密码无法登录,使用恶意代码中的代码就可以登录

四、CSRF防御

1、 尽量使用POST,限制GET

GET接口太容易被拿来做CSRF攻击,接口最好限制为POST使用,GET则无效,降低攻击风险。

2、加验证码(二次确认)

验证码,强制用户必须与应用进行交互,才能完成最终请求。在通常情况下,验证码能很好遏制CSRF攻击。但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。

3、Referer Check(请求来源检查)

检查HTTP请求头部的Referer字段,该字段标明请求来源URL。直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer 字段的,因为这是一个"凭空产生"的http请求,并不是从一个地方链接过去的。

4、 Anti CSRF Token

五、以上内容仅供学习,违者后果自负!

相关推荐
newxtc28 分钟前
【国内中间件厂商排名及四大中间件对比分析】
安全·web安全·网络安全·中间件·行为验证·国产中间件
weixin_442643422 小时前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
星尘安全2 小时前
安全工程师入侵加密货币交易所获罪
安全·区块链·漏洞·加密货币
newxtc4 小时前
【支付行业-支付系统架构及总结】
安全·支付宝·第三方支付·风控系统·财付通
newxtc5 小时前
【旷视科技-注册/登录安全分析报告】
人工智能·科技·安全·ddddocr
成都古河云5 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
Gworg5 小时前
您与此网站之间建立的连接不安全解决方法
安全
ac-er88886 小时前
MySQL如何实现PHP输入安全
mysql·安全·php
jjyangyou9 小时前
物联网核心安全系列——物联网安全需求
物联网·算法·安全·嵌入式·产品经理·硬件·产品设计
AltmanChan9 小时前
大语言模型安全威胁
人工智能·安全·语言模型