CSRF - 跨站请求伪造

这篇具有很好参考价值的文章主要介绍了CSRF - 跨站请求伪造。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 1、什么是CSRF
  • 2、CSRF的攻击过程和原理
  • 3、CSRF的类型有哪些
  • 4、CSRF的防御
  • 5、CSRF与XSS有何不同
  • 6、没有防御的CSRF

1、什么是CSRF

跨站请求伪造(Cross-site request forgery),CSRF是指利用受害者尚未失效的身份认证信息(登录状态中的Cookie等),诱骗受害者点击恶意链接,或者访问包含攻击代码的页面,在受害者不知情的情况下以受害者的身份向服务器发送请求,从而完成非法操作。

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

CSRF - 跨站请求伪造

在服务器看来,所有请求都是合法正常的。


2、CSRF的攻击过程和原理

攻击过程大致如下:

  1. 用户打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A。

  2. 在用户信息通过验证后,网站A产生cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A。

  3. 用户未退出网站A之前,在同一浏览器中,打开一个另一个页面访问网站B。

  4. B网站收到用户请求后返回一些访问A网站的恶意代码。

  5. 浏览器在接收到这些恶意代码后,根据网站B的请求,在用户不知情的情况下携带用户的cookie信息,向网站A发出请求。

  6. 网站A并不知道该请求其实是由网站B发起的,所以会根据用户的cookie信息以用户的权限处理该请求,导致来自网站B的恶意代码被执行。

CSRF产生的条件:

  • 用户已经登录了网站A,并且在本地浏览器记录了cookie。

  • 用户在没有退出网站A的情况下(cookie生效的情况下)在同一浏览器又访问了攻击者提供的引诱网站B(攻击者构造访问网站A的URL)。

    需要精心构造操作网站A的数据包,可利用CSRFTester构造导出。

  • 网站A没有做任何的CSRF防御。

CSRF攻击是攻击者利用受害者的cookie骗取服务器的信任,攻击者并不能拿到cookie,也看不到cookie的内容。

攻击者所能做的只是给服务器发送请求,以执行请求中的命令,在服务器端直接改变数据的值,而非窃取服务器中的数据。

根本原因:Web的身份验证机制虽然可以保证某个请求是来自于某个用户的浏览器,但却无法保证该请求是用户知晓并允许发送的。


3、CSRF的类型有哪些

CSRF的利用必须要对操作产生的数据包完全了解,以便构造完全符合要求的数据包。

GET类型

诱使用户访问构造的GET请求的恶意URL。

正常转账URL:http://bank/transfer?amount=10000&for=bob
伪造的转账URL:http://bank/transfer?amount=10000&for=hacker

POST类型

诱导用户跳转到黑客网站,网站的HTML中有一个自动提交的隐藏表单,只要用户打开页面,就会发起转账请求。

<form action="http://bank/transfer" method=POST>
    <input type="hidden" name="account" value="user" />
    <input type="hidden" name="amount" value="10000" />
    <input type="hidden" name="for" value="hacker" />
</form>
<script> document.forms[0].submit(); </script> 

其他

在受害网站的评论区放置一个a标签,点击跳转时发起伪造请求。

<a href="http://bank/transfer?amount=10000&for=hacker" taget="_blank">大八卦<a/>

在受害网站的评论区发表伪装的图片,实际是一个恶意请求。

![诱人的图片](http://bank/transfer?amount=10000&for=hacker)

4、CSRF的防御

CSRF安全问题黑盒怎么判断:

  1. 看页面来源检查 HTTP Referer 字段

  2. 看看有无凭据是否存在 Token验证

  3. 看关键操作有无验证 验证码

防御措施:

1 验证 HTTP Referer 字段

在HTTP头中有一个字段 Referer,它记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站。(同源策略)

但是在某些情况下 Referer 字段是可以被修改的。

2 在请求地址中添加 token 并验证

在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。

抵御CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于 cookie 之中。

3 在 HTTP 头中自定义属性并验证

这种方法也是使用token并进行验证,和上一种方法不同的是,这里并不是把token以参数的形式置于HTTP请求之中,而是把它放到HTTP头中自定义的属性里。

csrf_token 的位置以及原理和绕过?

CSRF token 通常是一个随机生成的字符串,被包含在请求中,服务器会验证该 Token 的有效性,以确保请求来源合法。

1、在表单中,可以作为隐藏字段嵌入在表单中
2、在请求头中, 可以在请求头中通过自定义的 Header 字段发送
3、在URL参数中,也可以作为URL参数发送,不过这种方式相对不安全


5、CSRF与XSS有何不同

CSRF和XSS它们的主要区别在于攻击的方式和目标:

攻击方式:

  • CSRF 是通过利用用户当前已经通过身份验证的会话来执行未经授权的操作,攻击的范围有限,仅限于用户可以执行的操作。

  • XSS 是通过注入恶意脚本代码到目标网页中,然后这些代码会在用户浏览器中执行,攻击的影响范围更直接,它可以直接影响到网站的内容和用户的浏览器。

攻击目标:

  • CSRF 目标是利用受害者的身份来执行未经授权的操作,诱导受害者用户执行他们不打算执行的操作,例如更改密码、发送恶意请求等。

  • XSS 目标是在受害者的浏览器中执行任意js代码,从而窃取用户信息、篡改网页内容等。

通常XSS漏洞比CSRF漏洞的危害更加严重:

CSRF被认为是一种“单向”漏洞,即攻击者可以诱导受害者发出HTTP请求,但他们无法获取该请求的响应;而XSS是一种“双向的”,因为攻击者注入的脚本可以发出任意请求,读取响应,并将数据发送到攻击者指定的地址。


6、没有防御的CSRF

地址:All labs | Web Security Academy (portswigger.net)

CSRF vulnerability with no defenses

题目的目标是利用CSRF漏洞更改受害者的电子邮件地址。

首先登录到给定的受害者用户wiener:peter的更改邮箱界面。

CSRF - 跨站请求伪造

站在攻击者视角,我们需要做的就是以受害者的身份去更改他的邮箱,使用Burp拦截更改邮箱的请求。

CSRF - 跨站请求伪造

该请求依赖于会话cookie来识别帐户,接下来要做的就是构造一个可以提交更改邮箱的请求页面,发送给受害者。Burp有自动生成脚本的功能,右键Generate CSRF PoC,Burp会生成一个html表单,script部分会自动提交表单。

CSRF - 跨站请求伪造

去到 exploit server 复制生成的html到body,点击 View exploit 查看漏洞,最后 Deliver to victim,发送给受害者。

CSRF - 跨站请求伪造

站在受害者视角,浏览器会出现一闪而过的的html页面,这是因为这个页面是自动提交的。可以通过开发者工具看到这次的请求,请求地址为更改邮箱的地址。
由于当前受害者没有退出账户,所以请求携带的session是有效会的,绕过了身份验证,以受害者的身份发送请求。

CSRF - 跨站请求伪造

当受害者在看到这个伪造页面时就被攻击了,邮箱在受害者不知情的情况下被修改。

CSRF - 跨站请求伪造


若有错误,欢迎指正!o( ̄▽ ̄)ブ文章来源地址https://www.toymoban.com/news/detail-844382.html

到了这里,关于CSRF - 跨站请求伪造的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 跨站请求伪造(CSRF)

    CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的网络安全攻击,它利用用户在已经登录的网站上的身份验证信息来执行恶意操作。 攻击者通过诱使受害者在本地浏览器中打开一个恶意网站,这个网站会发送一个自动执行的请求到目标网站。由于受害者已经在目标网站上

    2024年02月17日
    浏览(54)
  • 跨站请求伪造(CSRF)

    1.1 基本概念 ​ 跨站请求伪造(Cross Site Request Forgery,CSRF)是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Wb应用程序上执行非本意操作的攻击,攻击的重点在于更改状态的请求,而不是盗取数据,因为攻击者无法查看伪造请求的响应。 ​ 借助于社工的一些帮

    2024年02月10日
    浏览(47)
  • CSRF(跨站请求伪造)

    CSRF(Cross Site Request Forgery, 跨站请求伪造 )。是一种对网站的恶意利用, 通过伪装来自受信任用户的请求来利用受信任的网站 。 原理 是攻击者构造网站后台某个功能接口的请求地址,诱导用户去点击或者用特殊方法让该请求地址自动加载。用户在登录状态下这个请求被服

    2024年01月16日
    浏览(56)
  • 漏洞篇(CSRF跨站请求伪造)

    目录 一、CSRF 原理 1、CSRF 漏洞的定义 2、XSS 与 CSRF 的区别 3、CSRF 的简单理解 二、基于 DVWA 的 low 级别演示 CSRF 攻击  1、查看源代码 2、构造 URL 链接 3、验证 CSRF 攻击  4、构造恶意链接 5、短连接介绍 三、基于 DVWA 的 Medium 级别演示 CSRF 攻击 1、查看源代码 2、直接修改密码和

    2024年02月01日
    浏览(52)
  • 浏览器安全之CSRF跨站请求伪造

    跨站请求伪造(Cross-site request forgery) 简称 CSRF ,尽管与跨站脚本漏洞名称相近,但它与跨站脚本漏洞不同。 XSS 利用站点内的信任用户,而 CSRF 则通过伪装来自受信任用户的请求来利用受信任的网站。 CSRF和反射型XSS的主要区别是: 反射型XSS 的目的是在客户端执行脚本,

    2024年02月02日
    浏览(46)
  • CSRF(跨站请求伪造)和SSRF(服务端请求伪造)漏洞复现:风险与防护方法

    这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。  环境准备 示例: 假设用户在银行网站A上登录并保持会话活动,同时他也在浏览其他网站。攻击者在一个不可信任的网站B上创建了一个恶意链接,当用户点击该链接时,会自动向银行网站A发送一个

    2024年02月10日
    浏览(58)
  • Web漏洞之CSRF(跨站请求伪造漏洞)详解

    我们知道了同源策略可以隔离各个站点之间的 DOM 交互、页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是也束缚了 Web。 这就需要在安全和自由之间找到一个平衡点,所以我们默认页面中可以引用任意第三方资源 ,然后又引入 CSP 策略来加以限制;默认 X

    2024年02月03日
    浏览(57)
  • 21 - form表单验证 和 csrf跨站请求伪造

             (1). 官网:               (2). 安装第三方库          (3). form类型和校验             (1). settings.py 设置随机字符串         (2). app.py  全局使用csrf保护         (1). 新建form.py 文件, 定义 form 表单数据         (2). view.py 调用表单对象 ,返回给前端      

    2024年02月10日
    浏览(48)
  • jenkins 关闭关闭CSRF Protection(跨站请求伪造保护)

    我的jenkins版本是:2.332.4 Jenkins版本自2.204.6以来的重大变更有:删除禁用 CSRF 保护的功能。 从较旧版本的 Jenkins 升级的实例将启用 CSRF 保护和设置默认的发行者,如果之前被禁用。 老版本Jenkins的CSRF保护功能只需要在 系统管理 全局安全配置 中便可进行打开或者关闭。让人头

    2024年02月15日
    浏览(60)
  • 网络安全进阶学习第三课——CSRF跨站请求伪造

    会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。 Cookie是一个保存在客户机中的简单的文本文件,当我们使用自己的电脑,通过浏览器进行访问网页的时候,服务器就会生成一个证书然后返回给浏览器并写入我们的本地电脑,这

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包