不懂就问: csrf 攻击的疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
shermie
V2EX    程序员

不懂就问: csrf 攻击的疑问

  •  
  •   shermie 2023 年 8 月 31 日 3226 次点击
    这是一个创建于 895 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题

    首先,我是菜鸡,怀着学习的心态提问

    xss 攻击者可以利用脚本读取浏览器的 cookie 信息发送到自己的服务器,然后加以利用,这一过程都是在用户登录的网站完成的,可以理解。

    但是 csrf 攻击,是诱导已登录的用户点击钓鱼网站,这个过程已经不是同源的了,域名都不一样了,浏览器不会携带网站 A 的 cookie 信息到钓鱼网站 B ,那好像这也并不能构成信心泄漏,大佬解答一下

    19 条回复    2023-09-01 10:58:58 +08:00
    thinkershare
        1
    thinkershare  
       2023 年 8 月 31 日
    我可以诱导你去访问我的网站,然后在我的网站发送一个请求你的网站的一个 GET&POST 请求,这个请求携带的是请求 URL 所在 origin 的 Cookie, 这个过程就是请求伪造。用户被欺骗用他自己的真实身份做了他不知道的事情。
    lrwlf
        2
    lrwlf  
       2023 年 8 月 31 日
    钓鱼网站 B 可以直接跳转到 A 网站的某个接口地址,或者通过 iframe 加载 A 网站的接口,这样构造的 GET 请求可以携带 cookie
    SilentRhythm
        3
    SilentRhythm  
       2023 年 8 月 31 日
    银行 A 网站,骗子 B 网站,浏览器有 A 网站的 cookie
    SilentRhythm
        4
    SilentRhythm  
       2023 年 8 月 31 日
    SilentRhythm
        5
    SilentRhythm  
       2023 年 8 月 31 日
    点错了,续上
    在 B 网站的页面上发起了对 A 网站的请求,如果 A 网站没有校验,是能通过的
    8355
        6
    8355  
       2023 年 8 月 31 日
    是由钓鱼网站 B 带有恶意代码跳转回 A 网站的指定路径通过参数传递+浏览器自动获取本地 cookie 完成鉴权达成目的。
    wonderfulcxm
        7
    wonderfulcxm  
       2023 年 8 月 31 日 via iPhone
    它最终目标 URL 还是 A ,比如从 B 提交一个表单到 A 的 URL ,如果没有限制,就会带上 A 的 cookie 。因为访问 A 网站就会带上 A 的 cookie 。
    wangxiaoaer
        8
    wangxiaoaer  
       2023 年 8 月 31 日
    csrf 不是偷 cookie ,目标不是钓鱼网站,而是用户已经登陆的网站,用来偷偷模拟操作,这个操作可能很危险。
    GeruzoniAnsasu
        9
    GeruzoniAnsasu  
       2023 年 8 月 31 日
    哪有那么抽象,早年微博和贴吧的漏洞见过没,点进一个不正常的「病毒帖」后你会自动地在所有已关注的贴吧里都发一份一样的病毒帖子。


    这个就是 CSRF. 只是伪造的用户行为是发帖。如果伪造上传下载文件或者修改什么私有资源的权限之类的行为,那破坏力能大得多。
    wudiiiii
        10
    wudiiiii  
       2023 年 8 月 31 日
    关于浏览器安全,只要记着:
    1. 本网站存储的信息恶意网站不能读写。(同源策略)
    2. 恶意网站能够构造和发送任意参数的请求,而且 cookie 会自动携带。

    CORS 策略只限制了跨域请求不能接收响应,但是请求还是可以发出去。
    lybcyd
        11
    lybcyd  
       2023 年 8 月 31 日
    例如 B 网站的一个伪造表单:
    <form action="http://www.a.com/deleteAccount" method="post></form>

    这个表单本身不违反同源策略,可以在用户不知道的情况下,通过用户已有的 cookie 进行一些很危险的操作。

    为了防止类似的提交,通常的做法就是加上一个额外的隐藏 token 并进行校验,伪造的表单是无法获取到隐藏 token 的。像 Spring Security 这种框架一般都默认实现了 csrf token 。
    xiaoxiaoming01
        12
    xiaoxiaoming01  
       2023 年 8 月 31 日 via Android
    在站点 B 调用站点 A 的同源接口时,
    它默认不会带站点 B 的 cookie ,
    但是会带站点 A 的 cookie 。
    xiaoxiaoming01
        13
    xiaoxiaoming01  
       2023 年 8 月 31 日 via Android
    假设有站点 C ,它使用的接口 d 与它不同源,
    那么在站点 C 调用 d 接口时默认不带 cookie ,

    如果你后来又部署了一个站点 D ,站点 D 与接口 d 同源,
    那么,此时在站点 C 调用接口 d 时,它会默认带 D 站点的 cookie 。
    mdn
        14
    mdn  
       2023 年 8 月 31 日
    xss 是 盗用 用户 cookie
    csrf 是 冒用 用户 cookie
    xhr 和 fetch 不能随意跨站请求资源,需要通过 CORS 策略来支持其跨域,但是 页面中可以引用任意第三方资源,比如
    1. <img src="https://www.example.com/deleteAccount"> ,
    2. <form action="https://www.example.com/deleteAccount" method=POST>
    <input type="hidden" name="account" value="admin" />
    <input type="submit" value="抢红包" />
    </form>
    3. <a href="https://www.example.com/deleteAccount" taget="_blank">抢红包<a/>

    用户只要登录过 example.com 网站,在第三方网站触发上面任意一种,都会被恶意删除账号
    lalalaqwer
        15
    lalalaqwer  
       2023 年 8 月 31 日
    @wudiiiii
    CORS 只是简单请求能发不一定能接收,非简单请求是浏览器直接拦截发不出去的
    ksc010
        16
    ksc010  
       2023 年 8 月 31 日
    你应该是 CSRF XSS 闹混了
    flyqie
        17
    flyqie  
       2023 年 9 月 1 日 via Android
    csrf 攻击造成数据泄露一般不是 csrf 自身造成的,或者说 csrf 攻击本身造不成数据泄露。


    不要拿 xss 攻击套 csrf 攻击,他俩效果不一样,csrf 攻击本身是啥情况前几楼举的例子已经很清楚了。
    shermie
        18
    shermie  
    OP
       2023 年 9 月 1 日
    谢谢大佬们 现在是明白了
    euronx
        19
    euronx  
       2023 年 9 月 1 日
    另外现在有 same site cookie 限制了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1700 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 16:13 PVG 00:13 LAX 08:13 JFK 11:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86