当前位置: 首页 > 技术干货 > 你的钱为什么会被转走,这篇文章告诉你答案

你的钱为什么会被转走,这篇文章告诉你答案

发表于:2020-10-21 13:58 作者: 蚁景网安实验室 阅读数(1437人)

本篇文章内容,主要是关于CSRF。

01 什么是CSRF?
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。
CSRF攻击原理如下:
■ 用户打开浏览器,访问登陆受信任的A网站
■ 在用户信息通过验证后,服务器会返回一个cookie给浏览器,用户登陆网站A成功,可以正常发送请求到网站A
■ 用户未退出网站A,在同一浏览器中,打开一个危险网站B
■ 网站B收到用户请求后,返回一些恶意代码,并发出请求要求访问网站A
■浏览器收到这些恶意代码以后,在用户不知情的情况下,利用cookie信息,向网站A发送恶意请求,网站A会根据cookie信息以用户的权限去处理该请求,导致来自网站B的恶意代码被执行。这样太过于官方,简单来说就是通过构造URL造成攻击的就是CSRF,用目标的cookie来执行我们的攻击。
02 你的钱为什么会被转走?
现在有张三和李四进行转账。
1、张三给李四100块,执行的操作是:
xxx/transfer.php?from=张三&money=100&to=李四
注意此时的张三没有把页面关闭掉。
2、黑客想把钱转给自己,执行的操作是:
xxx/transfer.php?from=张三&money=100&to=黑客
很明显会失败,这是因为张三在登录系统的时候会通过cookie,把自己的session传递给后台服务器。此时系统检查当前的session中的身份,发现不正确就拒绝了。
3、黑客继续想办法,使用不良网站诱导:
网站的连接很有颜色感,让张三欲罢不能,于是点击了诱导链接A。此时返回给黑客的信息就是:


1.jpg

如果此时张三刚刚给李四转完钱,并且页面还没关闭,就点击了这个链接,那么就会执行上面的操作。这是因为此时的黑客身份就是张三的信息,银行不知道以为是张三,于是接受了请求。
03 如何挖掘CSRF漏洞
CSRF用于越权操作,漏洞在有权限控制的地方,其构造URL或者get提交,都可以测一测。
黑盒
打开非静态操作的页面,抓包查看是否存在token,如果没有token,直接请求这个页面,不带referer,如果返回的数据是一样的话,那说明很有可能有CSRF漏洞了。
白盒
读代码的时候看看核心文件里有没有验证token和referer相关的代码。可以直接搜索token关键字。
使用工具——半自动检测CSRF
使用CSRFTester教程
https://www.sogou.com/link?url=DSOYnZeCC_p8qT7bQ6Ez_IrwkGJvRRLdYQYE4_vHjb03UFOatHCO_d9GQw9zhM_U
下载地址:http://www.mediafire.com/file/3j9kbyd3rtardq5/CSRFTester-1.0-src.zip/file