第16课:CSRF

第16课:CSRF 漏洞

CSRF(Cross-Site Request Forgery)跨站请求伪造,也被称为“One Click Attack”或者 Session Riding,通常缩写为 CSRF 或者 XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与 XSS 非常不同,XSS 利用站点内的信任用户,而 CSRF 则通过伪装来自受信任用户的请求来利用受信任的网站。与 XSS 攻击相比,CSRF 攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比 XSS 更具危险性。

有点像 XSS 漏洞,但利用的方法和 CSRF 是完全不同的,XSS 是利用的客户端去进行访问,但 CSRF 是“身份认证”,即使浏览器已经相信了你这个用户身份。

常见的 CSRF 应用场景:

  • 修改帐号密码
  • 发送伪造请求,在对方不知情的情况下
  • 自动发送信息(如微博 CSRF 蠕虫)

CSRF 最明显的特性就是在用户非自愿,在用户不知情的情况下提交了请求。

CSRF 的漏洞一般都会出现在业务逻辑里,一些服务端对关键的操作,比如转账、购买商品代付的时候,缺少二次验证机制。

比如,一个银行转账,A 要给 B 打一万元人民币,这个时候 B 发现了该转账页面存在 CSRF 漏洞,然后 B 伪造了一条转账的 HTTP 请求发给了 A。

A 点击后,自动就转账给 B 一万人民币,并且 A 并不知情。

这就是一个 CSRF 的案例,CSRF 扫描器一般是扫不出来的,这属于逻辑漏洞,需要人测。

当然前提是,A 已经登录了这个银行,会话身份没有过期,重新提交的请求不需要重新认证 A 的身份。

CSRF 的利用条件也需要很多,比如:

  • 用户必须身份未过期或者已经完成。
  • 新请求的提交不需要二次验证。
  • 攻击者的 Web 水平较高。

能够利用,也可以结合一些社工方法,比如帮我点一下、求赞之类的。

CSRF 漏洞演示

首先,打开 DVWA 靶机,找到右侧漏洞环境的 CSRF 漏洞,进去如图所示,是两个输入框,分别为修改密码。

在输入密码之后,进行拦截 HTTP 请求,查看流量。

enter image description here

可以从 GET 请求里直接看出存在 CSRF 漏洞,没有进行二次验证。

那么利用的方式有哪些呢?

第一种,你可以把请求给扒下来,然后在自己的网站上创建一个页面,点击即可提交,提交就执行这串请求,利用一些手法发给受害者,即可完成攻击。

另外一种方法就是利用 Burp:

enter image description here

在 Burp 的 tools 工具栏下,有 CSRF POC 点击即可生成。

enter image description here

上传到网页后,受害者进行点击访问后,就已经在不知情的情况下被修改了密码。

enter image description here

这就是低安全级别的 CSRF 漏洞,大家接下来可以自行去完成中、高级别的漏洞复现。

上一篇
下一篇
内容互动
写评论
加载更多
评论文章