专栏首页小白帽学习之路实战 | 从零学习CSRF漏洞并配合实战挖掘CSRF漏洞

实战 | 从零学习CSRF漏洞并配合实战挖掘CSRF漏洞

什么是跨站请求伪造?

跨站请求伪造(英语:Cross-siterequest forgery),也被称为one-clickattack或者session riding,通常缩写为CSRF或者XSRF,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

攻击的细节

跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

例子

假如一家银行用以运行转账操作的URL地址如下:

http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName

那么,一个恶意攻击者可以在另一个网站上放置如下代码:

<img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">

如果有账户名为Alice的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失1000资金。

这种恶意的网址可以有很多种形式,藏身于网页中的许多地方。此外,攻击者也不需要控制放置恶意网址的网站。例如他可以将这种地址藏在论坛,博客等任何用户生成内容的网站中。这意味着如果服务端没有合适的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。

透过例子能够看出,攻击者并不能通过CSRF攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义运行操作。

CSRF的常见特性

依靠用户标识危害网站

利用网站对用户标识的信任

欺骗用户的浏览器发送HTTP请求给目标站点

另外可以通过IMG标签会触发一个GET请求,可以利用它来实现CSRF攻击。

影响因素

CSRF攻击依赖下面的假定:

攻击者了解受害者所在的站点

攻击者的目标站点具有持久化授权cookie或者受害者具有当前会话cookie

目标站点没有对用户在网站行为的第二授权

实战CSRF漏洞挖掘

下面分享一波基础式的CSRF漏洞挖掘,图文虽然并茂,但是字里行间,描述什么的相对简陋,莫见怪。

这次挖的是一个买化妆品的商城,一般这类商城都可以尝试一下CSRF。

进入正题,

首先我们要创建两个账户,进入个人中心,点击我的账户,修改个人资料信息,完成后点击保存信息,此时进行抓包:

成功抓包以后,我们将数据包发送到Repeater模块下:

右键点击Engagement tools进行Generate CSRF POC的制作:

制作好的POC保存为html格式,然后我们登陆第二个账户,查看他原本的信息:

接下来测试是否存在CSRF,打开本地保存的CSRF POC:

点击submit request后,

进行页面刷新,发现成功修改信息,

目标存在CSRF,并成功越权修改个人账户信息。

备注:

a账户登录受信任网站,并在本地生成Cookie。

然后b账户在成功登陆的情况下再去访问poc。

提交漏洞,心里美滋滋,正义感久久不能散去……

一个基础小例子,希望能让你能学到点什么。


防御措施

检查Referer字段

HTTP头中有一个Referer字段,这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时,通常来说,Referer字段应和请求的地址位于同一域名下。以上文银行操作为例,Referer字段地址通常应该是转账按钮所在的网页地址,应该也位于www.examplebank.com之下。而如果是CSRF攻击传来的请求,Referer字段会是包含恶意网址的地址,不会位于www.examplebank.com之下,这时候服务器就能识别出恶意的访问。

这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的Referer字段。虽然http协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其Referer字段的可能。

添加校验token

由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击。这种数据通常是窗体中的一个数据项。服务器将其生成并附加在窗体中,其内容是一个伪随机数。当客户端通过窗体提交请求时,这个伪随机数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过CSRF传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验token的值为空或者错误,拒绝这个可疑请求。

参考链接:

https://zh.wikipedia.org/zh/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0
如果上述功能有不能用的地方,可使用下面破解版的Burp,破解版Burp Suite:

链接:
https://pan.baidu.com/s/1uiQSakadkg86cMydzNdsLw
提取码:3odw
文章分享自微信公众号:
小白帽学习之路

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:蜡笔
原始发表时间:2019-05-21
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 【公益分享】炼石计划企业级JavaWeb漏洞挖掘实战之第二期基于SpringBoot架构的办公OA系统漏洞挖掘

    简单来说就是带着大家一起针对企业级JavaWeb系统、网站进行黑盒测试和白盒测试,也就是渗透测试和代码审计的漏洞挖掘。

    用户1631416
  • 小白必学篇:CSRF漏洞总结

    跨站请求伪造,也称XSRF,本质是攻击者盗用了我的身份去发送恶意请求。这里区分一下XSS,以免概念混淆。CSRF是借助用户的权限完成攻击,攻击者从头到尾没有拿到...

    7089bAt@PowerLi
  • 跨站请求伪造(CSRF)挖掘技巧及实战案例全汇总

    Cross-Site Request Forgery跨站请求伪造漏洞,简称CSRF或XSRF,强制最终用户在当前对其进行身份验证的Web应用程序上执行不需要的操...

    Jayway
  • [红日安全]Web安全Day3 - CSRF实战攻防

    大家好,我们是红日安全-Web安全攻防小组。此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字叫 Web安全实战 ...

    红日安全
  • CSRF 原理与防御案例分析

    CSRF,也称 XSRF,即跨站请求伪造攻击,与 XSS 相似,但与 XSS 相比更难防范,是一种广泛存在于网站中的安全漏洞,经常与 XSS 一起配合攻击。

    信安之路
  • web安全漫谈

    不夸张的说,网络安全行业里,web安全方向的人相对来说决定占大头,而web安全工程师又是其中不可缺少,想要成为一名成功的web安全工程师,首先要知道绝对的职位要...

    C4rpeDime
  • 文件上传漏洞另类绕过技巧及挖掘案例全汇总

    文件上传漏洞作为获取服务器权限最快的方式,虽然相关资料很多,但很多人对上传校验方式、如何针对性绕过检测、哪种上传和解析的场景会产生危害等还是比较模糊。本文作一...

    Jayway
  • 炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

    oasys是一个OA办公自动化系统,使用Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引...

    用户1631416
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群:很多朋友们接触安全都是通过书籍;网上流传的PDF;亦或是通过论坛里的文章,但可能经过了这样一段时间的学习,了解了一些常见漏洞的原理之后,对于漏洞挖...

    HACK学习
  • CSRF攻击与防御,Web安全的第一防线(源码,实战,5分钟科普文)

    跨站请求伪造,也被称为“OneClick Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

    HACK学习
  • 实战 | 记一次实战中SelfXSS+CSRF+越权漏洞的组合拳

    在渗透测试中,经常能够遇到这样一种XSS漏洞,它通常存在于比较隐私的个人信息配置等等功能中,有一个非常鲜明的特点就是“只有自己可见,别人不可见”,XSS漏洞只能...

    HACK学习
  • CTF实战33 综合实战和讲解三(讲解部分)

    该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

    用户1631416
  • 网站代码漏洞查找技术是如何学习到的

    常常许多人问过那样一个难题,网络黑客是确实那么强大吗?就现阶段来讲,在黑客游戏或影视剧中,网络黑客所展现的工作能力与实际是相差无异的(黑客帝国此类种类以外)。唯...

    网站安全专家
  • 网站代码审计 网站漏洞查找服务技术是如何锻炼学习的

    常常许多人问过那样一个难题,网络黑客是确实那么强大吗?就现阶段来讲,在黑客游戏或影视剧中,网络黑客所展现的工作能力与实际是相差无异的(黑客帝国此类种类以外)。唯...

    技术分享达人
  • 这可能是最适合萌新入门Web安全的路线规划

    最近在后台经常收到粉丝问,Web安全有没有什么路线。确实,Web安全的范围实在太大,哪些先学,哪些后学,如果没有系统的路线会降低大家效率,对于刚入门的同学们来说...

    贝塔安全实验室
  • 2022网络安全技术自学路线图及职业选择方向

    每天都有新闻报道描述着新技术对人们的生活和工作方式带来的巨大乃至压倒性影响。与此同时有关网络攻击和数据泄露的头条新闻也是日益频繁。

    技术zhai
  • 账户接管(Account Takeover)漏洞挖掘及实战案例全汇总

    身份验证(Authentication):验证某人是特定用户,是否正确提供其安全凭据(密码,安全问题答案,指纹扫描等)。

    Jayway
  • 浅谈如何在渗透测试中快速搞定webshell

    最近在代码审计某项目的时候发现了一个文件上传漏洞,但是在生产环境测试的过程中,各种各样的“狗”和“盾”都给拦截了,徒有漏洞,没法儿利用,所以整理整理,杀狗破盾,...

    小东同学

扫码关注腾讯云开发者

领取腾讯云代金券