
1) 【一句话结论】通过伪造针对360浏览器Cookie管理功能的跨域请求,利用浏览器自动提交有效Cookie的特性,绕过权限验证(如普通用户无法执行导入操作的限制),执行用户未授权的敏感操作(如导入恶意Cookie、修改账户信息)。
2) 【原理/概念讲解】首先解释Cookie管理功能的权限层次:假设360的Cookie管理功能分为普通用户操作(如查看、导出)和管理员操作(如导入、跨域设置)。普通用户通常无法执行导入Cookie等敏感操作,而管理员可以。CSRF攻击的核心是利用用户已登录状态,伪造针对管理员权限接口的请求。当用户登录360后,浏览器会保存包含用户身份标识(如会话ID、用户ID)的Cookie。如果360的Cookie导入接口(如https://browser.360.cn/api/cookie/import)未严格验证请求的Referer头(如要求Referer来自360的合法域名)或未使用CSRF Token,攻击者可构造一个伪造的POST请求,该请求包含用户的Cookie。当用户浏览器访问该伪造请求时,会自动发送Cookie,触发360的Cookie导入功能,将攻击者提供的恶意Cookie数据导入用户账户,从而获取用户权限(如访问用户账户、执行敏感操作)。类比:就像你拿着一张“带身份的卡”(Cookie),去一个需要管理员权限的柜台(导入Cookie功能),但中间的请求是别人伪造的,你却自动提交了卡,导致别人用你的身份执行管理员操作。
3) 【对比与适用场景】
| 特性 | CSRF | XSS |
|---|---|---|
| 定义 | 跨站请求伪造,利用用户已登录状态,伪造HTTP请求 | 跨站脚本注入,注入恶意脚本执行 |
| 攻击原理 | 浏览器自动提交Cookie | 注入恶意脚本,用户点击后执行 |
| 关键依赖 | 用户已登录,Cookie有效 | 用户点击恶意链接/内容 |
| 防御重点 | 验证Referer/Origin头,SameSite属性,CSRF Token | 输入验证,输出编码,Content-Security-Policy |
| 适用场景 | Cookie管理、登录后敏感操作、表单提交 | 注入页面内容、窃取数据 |
| 注意点 | 需用户登录,依赖Cookie未设置SameSite=Strict或未验证Referer | 需用户交互(点击),依赖浏览器执行脚本 |
适用场景:当360浏览器的Cookie导入接口存在未验证的跨域请求(如允许任意域名提交请求,或未检查Referer头),且普通用户无法执行导入操作(需管理员权限),攻击者可通过CSRF利用用户已登录状态,绕过权限验证,执行管理员权限的敏感操作(如导入恶意Cookie、修改账户信息)。
4) 【示例】假设360浏览器的“Cookie导入”功能(管理员权限)的接口为https://browser.360.cn/api/cookie/import,该接口要求POST请求携带cookie_data字段(JSON格式),且未验证Referer头或CSRF Token。攻击者构造恶意请求如下:
JSESSIONID=abc123; user_id=12345"malicious_cookie=attacker_session; user_id=attacker_id"伪造的POST请求示例(使用curl):
curl -X POST "https://browser.360.cn/api/cookie/import" \
-H "Content-Type: application/json" \
-d '{"cookie_data":"malicious_cookie=attacker_session; user_id=attacker_id"}' \
-b "JSESSIONID=abc123; user_id=12345"
当用户登录360后访问该伪造请求时,浏览器会自动发送Cookie(JSESSIONID=abc123和user_id=12345),触发360的Cookie导入功能,将攻击者提供的恶意Cookie数据导入用户账户,从而获取用户权限(如访问用户账户、执行敏感操作)。
5) 【面试口播版答案】(约90秒)
“面试官您好,针对360浏览器的Cookie管理机制,我设计的CSRF利用流程核心是利用浏览器自动提交Cookie的特性,绕过权限验证执行敏感操作。首先,360的Cookie管理功能存在权限层次:普通用户无法执行导入Cookie等敏感操作,而管理员可以。当用户登录360后,浏览器会保存包含用户身份标识(如会话ID、用户ID)的Cookie。如果360的Cookie导入接口(如https://browser.360.cn/api/cookie/import)未严格验证Referer头(如允许任意域名提交)或未使用CSRF Token,攻击者可构造一个伪造的POST请求,该请求包含用户的Cookie。当用户浏览器访问该伪造请求时,会自动发送Cookie,触发360的Cookie导入功能,将攻击者提供的恶意Cookie数据导入用户账户,从而获取用户权限(如访问用户账户、执行敏感操作)。比如,假设该接口允许跨域提交且未验证Referer,攻击者构造一个POST请求,携带用户的Cookie,用户登录后访问该请求就会触发导入,将恶意Cookie导入用户账户。总结来说,通过伪造针对Cookie管理功能的CSRF请求,利用用户已登录状态,绕过权限验证,执行敏感操作。”
6) 【追问清单】
Access-Control-Allow-Origin是否为*或允许特定域名),或使用Postman测试不同域名的跨域请求,验证Cookie是否被正确提交。7) 【常见坑/雷区】