CSRF攻击者是如何向网站注入欺诈链接的?
我明白CSRF的运作过程,但想不出来攻击者是如何在目标网站注入欺诈链接来骗用户点击的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我明白CSRF的运作过程,但想不出来攻击者是如何在目标网站注入欺诈链接来骗用户点击的?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
比如这个 看似人畜无害的链接,就可以把人从思否诱导到一条不归之路[手动狗头],这里利用的原理是只要构造出合适的 URL 就可以发起百度搜索,仅此而已,但是你跳过去之后,浏览器会把本地的
Cookie
给你带上,百度后台就会认为是你本人在搜这种奇怪的东西,换成字节搜索的话,没准明天你的抖音就会刷到震撼的短视频了。这个例子只是一个不怀好意的诱导,还算不上攻击,因为百度搜索的这个特点不算什么漏洞。但是如果某个银行的转账接口也是在 URL 里拼参数的话,那可就危险了:如果用户恰好登过这个银行的网页,
Cookie
还在,那么只要构造一条转账的URL
,找机会让用户去点,就能神不知鬼不觉地把用户的钱拿到手。那么,我有没有在百度的网站注入任何东西?没有。所以对于要攻击的目标网站,我们是不需要注入任何东西的,只要找到他的 CSRF 漏洞就行。
接下来有请小明出场~~
小明的悲惨遭遇
这一天,小明同学百无聊赖地刷着
Gmail
邮件。大部分都是没营养的通知、验证码、聊天记录之类。但有一封邮件引起了小明的注意:甩卖比特币,一个只要998!!
聪明的小明当然知道这种肯定是骗子,但还是抱着好奇的态度点了进去(请勿模仿)。果然,这只是一个什么都没有的空白页面,小明失望的关闭了页面。一切似乎什么都没有发生……
在这平静的外表之下,黑客的攻击已然得手。小明的
Gmail
中,被偷偷设置了一个过滤规则,这个规则使得所有的邮件都会被自动转发到hacker@hackermail.com
。小明还在继续刷着邮件,殊不知他的邮件正在一封封地,如脱缰的野马一般地,持续不断地向着黑客的邮箱转发而去。不久之后的一天,小明发现自己的域名已经被转让了。懵懂的小明以为是域名到期自己忘了续费,直到有一天,对方开出了
$650
的赎回价码,小明才开始觉得不太对劲。小明仔细查了下域名的转让,对方是拥有自己的验证码的,而域名的验证码只存在于自己的邮箱里面。小明回想起那天奇怪的链接,打开后重新查看了“空白页”的源码:
这个页面只要打开,就会向Gmail发送一个post请求。请求中,执行了“Create Filter”命令,将所有的邮件,转发到“hacker@hackermail.com”。
小明由于刚刚就登陆了Gmail,所以这个请求发送时,携带着小明的登录凭证(Cookie),Gmail的后台接收到请求,验证了确实有小明的登录凭证,于是成功给小明配置了过滤器。
黑客可以查看小明的所有邮件,包括邮件里的域名验证码等隐私信息。拿到验证码之后,黑客就可以要求域名服务商把域名重置给自己。
小明很快打开Gmail,找到了那条过滤器,将其删除。然而,已经泄露的邮件,已经被转让的域名,再也无法挽回了……
以上就是小明的悲惨遭遇。而“点开一个黑客的链接,所有邮件都被窃取”这种事情并不是杜撰的,此事件原型是2007年Gmail的CSRF漏洞
这个案例就是站内信的方式诱导
这么问的话,说明你还没理解 CSRF,CSRF 的发起方可以是任意网站。
比如 站点 A 有关注作者的功能,是调用一个 GET 请求的接口,同时你现在在 A 站点登录了,并没有退出,我现在随便创建一个站点,弄一个 img 标签,地址就是这个 GET 的地址,现在你一访问我这个站,你就关注了我,这就是跨站点请求伪造(CSRF)
即使是 POST 请求,我也可以构建一个表单,在页面 onload 的时候执行,submit 事件。
在这期间,我没有做任何鉴权操作,但是因为浏览器 Cookie 的原因,会自动把 A 站点域的 Cookie 带上,所以从这里绕过了鉴权。比如一些社会化点赞组件,就可以利用这个缺陷来实现。
你能分清楚 xss 和 csrf 嘛?xss 才是注入内容。csrf 是伪造请求。
其他的楼上大佬们都说的差不多了。重点就是服务端判断你权限是通过什么方式,如果只是 cookie 的话,那么你新打开一个网页,和被迫()打开一个,服务端区分不出来。同理换成一些支付之类的操作就有风险了。
至于为什么说 cookie 只有风险,是因为 cookie 会自动携带嘛。如果是 request headers 那么就没问题,因为不会自动携带。
如何骗?我怀疑你在钓鱼啊。
根本就不需要欺骗用户点击
前端的基本操作, 隐藏iframe加载就行了
比如我 入侵|控制|负责 了 a.com, 这个网站看起来正常
但是这个页面注入了一个隐藏iframe, 会访问了 segmentfault.com 某个具有csrf漏洞的 api, 作用是给我这个回答点赞
此时任何访问了 a.com 的用户, 并且他曾经登录过 segmentfault.com, 在他根本感知不到的情况下, 就给我点赞了
利用网站的发布功能来发布含有网站B地址的超链接
比如帖子的回复处,直接输入
<a href="网站b">阿卡丽神秘商店</a>
这样展现出来就是
阿卡丽神秘商店
也可以利用img标签的特性自动触发,这种不需要用户点击
<img src="网站b" />
总的来说都需要有一个能输入内容的地方,这样才能把恶意代码渲染在网页上,攻击到用户