51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

解释CSRF攻击的原理,并说明如何利用SSRF漏洞获取内部资源(如文件读取、内网端口扫描),同时分析360浏览器在防范此类攻击的机制(如SameSite Cookie、CSP等)。

360助理安全研究实习生(漏洞挖掘与利用)——北京难度:中等

答案

1) 【一句话结论】

CSRF攻击利用用户已登录的会话伪造跨站请求,SSRF攻击利用服务器端对用户输入URL的解析能力伪造内部/外部请求以获取内部资源;360通过SameSite Cookie限制Cookie跨站发送、CSP限制内容加载,增强防护。

2) 【原理/概念讲解】

  • CSRF(跨站请求伪造):核心是利用用户已登录的会话状态,伪造跨站请求。当用户登录网站后,网站会为用户创建Session(如Session ID),攻击者构造恶意链接(含表单或隐藏字段),用户点击后,浏览器以用户身份发送请求,触发敏感操作(如修改订单、提交表单)。类比:你登录银行后,攻击者给你一个“自动转账”链接,点击后银行会按你的账户转账,因为你的会话还在。
  • SSRF(服务器端请求伪造):利用服务器端代码对用户输入的URL进行解析并请求的能力,伪造内部或外部请求。例如,服务器解析用户输入的URL并请求,可读取内部文件(如file://localhost/c:/windows/system32/drivers/etc/hosts)、扫描内网端口(如http://127.0.0.1:3306)。类比:服务器像一个人,用户输入URL,服务器主动去访问资源,相当于服务器“主动”发起请求,利用了服务器的网络请求能力。

3) 【对比与适用场景】

特性CSRF(跨站请求伪造)SSRF(服务器端请求伪造)
定义利用用户已登录的会话,伪造跨站请求(通常是POST/GET请求)利用服务器解析URL的能力,伪造内部/外部请求(服务器主动发起请求)
关键特性依赖用户已登录状态,请求通常是合法的(浏览器会按用户身份发送)服务器主动发起请求,可绕过网络限制(如内网访问)
使用场景登录后修改订单、提交表单(如修改密码、提交订单)文件读取(泄露敏感文件)、内网端口扫描(发现内网服务)、访问内部API(绕过网络限制)
注意点需用户点击链接或按钮,伪造请求的URL需与目标网站一致需服务器解析URL(如存在URL参数),且服务器有读取/网络请求权限

4) 【示例】

  • CSRF示例:用户登录后,攻击者构造HTML链接:

    <a href="https://target.com/submit?order_id=123&amount=1000">点击转账</a>
    

    用户点击后,浏览器以用户身份发送POST请求到target.com/submit,提交订单。

  • SSRF示例:服务器代码(Python):

    import requests
    url = input("输入URL:")
    response = requests.get(url)
    print(response.text)
    

    用户输入file://localhost/c:/windows/system32/drivers/etc/hosts,服务器读取文件内容,导致文件泄露。

5) 【面试口播版答案】

CSRF攻击是跨站请求伪造,核心是利用用户已登录的会话,伪造跨站请求。比如用户登录后,攻击者构造一个包含表单或隐藏字段的链接,用户点击后,浏览器以用户身份发送请求,导致敏感操作(如修改订单、提交表单)。SSRF是服务器端请求伪造,利用服务器对用户输入的URL解析能力,伪造内部或外部请求。比如服务器解析用户输入的URL并请求,可读取内部文件(如hosts文件)、扫描内网端口(如http://127.0.0.1:3306)。360的防护机制包括SameSite Cookie(限制Cookie跨站发送,比如SameSite=Lax或Strict,防止CSRF)和CSP(内容安全策略,限制资源加载,防止SSRF导致加载恶意内容或泄露内部资源)。具体来说,SameSite Cookie通过设置Cookie的SameSite属性,让浏览器仅在第一方上下文发送Cookie,避免跨站伪造请求;CSP通过default-src 'self'等指令,限制服务器加载外部资源,防止SSRF利用服务器请求能力访问内部或敏感资源。

6) 【追问清单】

  1. 如何防范CSRF?
    回答:使用CSRF Token(在表单中添加随机Token,验证请求是否合法)、SameSite Cookie(限制Cookie跨站发送)、Referer检查(但需注意Referer可能伪造)。

  2. SSRF如何绕过CSP?
    回答:CSP限制的是资源加载,SSRF是服务器主动发起请求,CSP无法阻止服务器发起请求,但可通过限制URL参数或输入验证。

  3. 360的CSP具体如何配置?
    回答:假设360的CSP配置为script-src 'self'; img-src https://example.com; default-src 'self',限制脚本和图片来源,防止SSRF加载恶意内容或泄露内部资源。

  4. CSRF和XSS的区别?
    回答:CSRF是伪造请求,XSS是注入恶意脚本,CSRF需要用户点击链接,XSS需要用户访问恶意页面。

  5. SSRF如何获取内网端口?
    回答:服务器解析用户输入的URL,请求内网地址(如http://10.0.0.1:3306),通过响应内容判断端口是否开放。

7) 【常见坑/雷区】

  1. CSRF与XSS混淆:CSRF是伪造请求,XSS是注入脚本,需明确区别。
  2. SSRF的利用条件:需要服务器解析URL,且存在用户输入的URL参数,否则无法利用。
  3. SameSite Cookie的作用:误解为防止XSS,实际是防止CSRF。
  4. CSP对SSRF的防护:认为CSP能阻止SSRF,但实际上CSP限制的是资源加载,SSRF是服务器主动请求,需结合其他防护措施。
  5. 内部资源获取:SSRF可能读取文件或扫描端口,但需注意权限,比如文件读取需要服务器有读取权限,端口扫描需要服务器有网络权限。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1