跨站请求伪造 CSRF 漏洞原理以及修复方法

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

漏洞名称:跨站请求伪造(CSRF)

漏洞描述

跨站请求伪造攻击,Cross-Site Request Forgery(CSRF),攻击者在用户浏览网页时,利用页面元素(例如img的src),强迫受害者的浏览器向Web应用服务器发送一个改变用户信息的HTTP请求。CSRF攻击可以从站外和站内发起。从站内发起CSRF攻击,需要利用网站本身的业务,比如‚自定义头像‛功能,恶意用户指定自己的头像URL是一个修改用户信息的链接,当其他已登录用户浏览恶意用户头像时,会自动向这个链接发送修改信息请求。从站外发送请求,则需要恶意用户在自己的服务器上,放一个自动提交修改个人信息的htm页面,并把页面地址发给受害者用户,受害者用户打开时,会发起一个请求。

威胁描述:攻击者使用CSRF攻击能够强迫用户向服务器发送请求,导致用户信息被迫修改,甚至可引发蠕虫攻击。如果恶意用户能够知道网站管理后台某项功能的URL,就可以直接攻击管理员,强迫管理员执行恶意用户定义的操作。

检测条件

1、 Web业务运行正常
2、 存在数据提交的所有功能点。

检测方法

一、 检测方式多种多样:工具常常会扫描得到CSRF的漏洞,但是一般常常为误报,重点
还是依靠手工来进行检测,以下来举例说明其中一种检测以及攻击方案:

1、 设置页面test.htm中,页面中有一个表单,和一段脚本,脚本的作用是,当页面加载时,浏览器会自动提交请求。页面代码如下:

<form id="modify" action="http://www.test.com/servlet/modify"
method="POST">
<input name="email">
<input name="tel">
<input name="realname">
<input name="userid">
<input type="submit">
</form>
<script>
document.getElementById("modify").submit();
</script>

2、 诱使用户在登录目标系统后执行URL链接http://xx.x.xx.xxx /test.htm
3、 用户打开test.htm后,会自动提交表单,发送给www.test.com下的那个存在CSRF漏洞的web应用,用户信息被篡改。
4、 在整个攻击过程中,受害者用户仅仅看到了一个空白页面(可以伪造成其他无关页面),并且一直不知道自己的信息已经被修改了。

修复方案:

1、 通过referer判断页面来源进行CSRF防护,该方式无法防止站内CSRF攻击及referer字段伪造。
2、 重要功能点使用动态验证码进行CSRF防护。
3、 通过token方式进行CSRF防护:

3.1、 在Session中绑定token。如果不能保存到服务器端Session中,则可以替代为保存到Cookie里。
3.2、 在 form 表 单 中 自 动 填 入 token 字 段 , 比 如 <input type=hidden
name="anti_csrf_token" value="$token" />。
3.3、 在HTTP请求中自动添加token。在服务器端对比POST提交参数的token与Session中绑定的token是否一致.

4、 为每个session创建唯一的随机字符串,并在受理请求时验证:文章来源地址https://www.toymoban.com/news/detail-829863.html

<form action="/transfer.do" method="post">
<input type="hidden" name="randomStr"
value=<%=request.getSession().getAttribute("randomStr")%>>
</form>
//判断客户端提交的随机字符串是否正确
String randomStr = (String)request.getParameter("randomStr");
if(randomStr == null) randomStr="";
if(randomStr.equals(request.getSession().getAttribute("randomStr")))
{//处理请求}
else{
//跨站请求攻击,注销会话
}

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

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

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

相关文章

  • CSRF(跨站请求伪造)原理

    (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式

    2023年04月08日
    浏览(36)
  • 跨站请求伪造(CSRF)

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

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

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

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

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

    2024年01月16日
    浏览(29)
  • CSRF - 跨站请求伪造

    目录 1、什么是CSRF 2、CSRF的攻击过程和原理 3、CSRF的类型有哪些 4、CSRF的防御 5、CSRF与XSS有何不同 6、没有防御的CSRF 跨站请求伪造(Cross-site request forgery),CSRF是指利用受害者尚未失效的身份认证信息(登录状态中的Cookie等),诱骗受害者点击恶意链接,或者访问包含攻击代

    2024年04月08日
    浏览(32)
  • 浏览器安全之CSRF跨站请求伪造

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

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

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

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

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

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

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

    2024年02月12日
    浏览(33)
  • 彻底理解前端安全面试题(2)—— CSRF 攻击,跨站请求伪造攻击详解,建议收藏(含源码)

    前端关于网络安全看似高深莫测,其实来来回回就那么点东西,我总结一下就是 3 + 1  = 4,3个用字母描述的【分别是 XSS、CSRF、CORS】 + 一个中间人攻击。当然 CORS 同源策略是为了防止攻击的安全策略,其他的都是网络攻击。除了这 4 个前端相关的面试题,其他的都是一些不常

    2024年02月03日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包