2025年渗透测试面试题总结-匿名[校招]安全研究员(SAST方向)(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
匿名[校招]安全研究员(SAST方向)
一面问题回答框架
1. 自我介绍
2. 简历深挖(漏洞挖掘)
3-4. SAST与IAST对比
5. 污点分析(Taint Analysis)
6-7. DevSecOps vs SDL
8. 学习方向规划
9-10. 技术栈与工具偏好
11. 白盒审计思路
12. 自动化工具开发
二面问题深度回答
1. Java反序列化漏洞
2. 白盒审计工具原理
3. 域控攻击方式
4. MS14-068(CVE-2014-6324)
5. 黄金票据 vs 白银票据
6-7. IAST与污点跟踪的结合
8. 语言栈(Java/Go)
匿名[校招]安全研究员(SAST方向)
### 一面问题1. 自我介绍 2. 根据简历问(主要是挖洞方面) 3. 对SAST的理解 4. 对IAST的理解 5. 污点分析 6. 对DevSecOps的理解 7. 对SDL的理解 8. 后面的发展规划(学习方向) 9. 目前掌握的语言栈怎么样?愿意去学习新的语言吗? 10. 对SAST和IAST中哪个更感兴趣 11. 讲讲白盒审计的思路 12. 有写过相关的自动挖掘工具吗### 二面问题1. Java反序列化 2. 了解哪些白盒审计的工具,知道原理吗 3. 域控的攻击方式 4. MS14-068的原理 5. 黄金和白银票据的利用及其效果,原理层面 6. IAST 7. 污点跟踪 8. 候选人的语言栈:java和go
一面问题回答框架
1. 自我介绍
- 核心逻辑:技术背景 + 安全领域深耕方向 + 成果亮点
示例:
“我是XX,主攻应用安全方向,有X年漏洞挖掘和代码审计经验,主导过XX系统SDL落地,发现过XX高危漏洞(如Fastjson反序列化、Shiro权限绕过等)。擅长SAST/IAST工具集成,熟悉污点分析技术,曾用Python/Go开发自动化审计工具提升漏洞检出率30%。”
2. 简历深挖(漏洞挖掘)
- 回答策略:漏洞类型 + 技术链 + 影响 + 修复建议
示例:
- 漏洞案例:某系统未授权访问漏洞(技术细节:JWT令牌未校验签名,通过Burp篡改权限字段实现越权)。
- 方法论:黑盒测试结合流量抓包,白盒审计定位到鉴权模块代码缺陷。
- 延伸:总结同类漏洞模式(如接口路径
/api/admin*
未鉴权),推动开发规范整改。
3-4. SAST与IAST对比
维度 SAST IAST 原理 静态代码扫描,基于规则匹配 运行时插桩,动态追踪数据流 优点 早期介入,覆盖全代码 低误报,精准定位漏洞触发点 缺点 误报率高,无法检测环境依赖问题 依赖测试覆盖率,需部署代理/Agent 工具举例 Fortify, Checkmarx Contrast, 洞态IAST
5. 污点分析(Taint Analysis)
- 流程四步法:
- 污染源定义:用户输入(如
HttpServletRequest.getParameter()
)。- 传播跟踪:函数调用链(如参数传递、字符串拼接)。
- 净化点识别:过滤函数(如
ESAPI.encoder().encodeForSQL()
)。- 漏洞判定:未净化的污染数据到达敏感函数(如
executeQuery()
)。- 进阶难点:上下文敏感分析(如循环、条件分支)、误报优化。
6-7. DevSecOps vs SDL
维度 DevSecOps SDL 核心思想 安全左移,自动化流水线集成 全生命周期阶段性安全管控 实施重点 CI/CD中嵌入SAST/IAST/DAST工具链 需求阶段威胁建模,设计阶段安全评审 文化差异 开发/运维/安全团队协同 安全团队主导,流程强管控
8. 学习方向规划
- 短期:云原生安全(K8s RBAC、Service Mesh策略)、IAST工具原理深度研究。
- 长期:AI辅助漏洞挖掘(如CodeQL结合图神经网络)、ATT&CK攻击模拟技术。
9-10. 技术栈与工具偏好
- 语言栈:Java(代码审计/漏洞复现)、Python(PoC编写)、Go(工具开发)。
- SAST/IAST倾向:IAST(理由:更贴合DevSecOps实时检测需求,误报率低,适合云原生环境)。
11. 白盒审计思路
- 五步法:
- 架构分析:梳理组件交互(如Spring MVC控制器 -> Service层 -> DAO)。
- 入口定位:HTTP API、文件解析、RPC接口。
- 敏感函数回溯:如
ObjectInputStream.readObject()
(反序列化)、Runtime.exec()
(命令执行)。- 数据流验证:结合污点分析,确认用户输入是否直达漏洞点。
- 历史漏洞模式匹配:比对已知漏洞(如Log4j2 JNDI注入)。
12. 自动化工具开发
- 示例项目:基于AST的Java反序列化Gadget扫描工具。
- 技术点:ASM字节码解析、调用图(Call Graph)构建、Gadget链模式识别。
- 效果:自动化识别
InvokerTransformer
等危险调用,辅助人工审计效率提升50%。
二面问题深度回答
1. Java反序列化漏洞
- 原理:不可信数据触发
readObject()
,利用反射调用Gadget链(如TemplatesImpl.getOutputProperties()
加载恶意字节码)。- 关键点:
- Gadget构造:Apache Commons Collections的
TransformedMap
链。- 绕过防御:JRMP绕过CC链黑名单。
- 防护:反序列化白名单(如Hessian的
AllowClass
)、JEP 290机制。
2. 白盒审计工具原理
- Fortify:基于词法分析(Lexer)和语义规则(如“未加密的HTTP通信”)。
- Checkmarx:生成抽象语法树(AST),数据流追踪。
- Semgrep:模式匹配(如正则表达式
\$.*?\{.*?\}
检测模板注入)。
3. 域控攻击方式
- 黄金票据:利用KRBTGT的NTLM Hash伪造TGT,访问任意服务。
- 白银票据:利用服务账户Hash伪造ST,仅访问特定服务(如LDAP)。
- DCSync:模拟域控制器,通过DRSUAPI协议拉取用户Hash。
4. MS14-068(CVE-2014-6324)
- 漏洞点:Kerberos PAC校验逻辑缺陷,允许普通用户构造包含管理员权限的PAC。
- 利用链:
kekeo
工具生成高权限TGT -> 提权至域管理员。
5. 黄金票据 vs 白银票据
维度 黄金票据 白银票据 依赖信息 KRBTGT的NTLM Hash 服务账户的NTLM Hash 权限范围 全域权限 仅特定服务(如CIFS、LDAP) 检测难度 高(需监控KRBTGT变更) 低(服务日志可发现异常访问)
6-7. IAST与污点跟踪的结合
- 插桩技术:Java Agent修改字节码,在关键函数(如
String.concat()
)插入探针。- 动态污点:标记用户输入为污染源,在数据库操作/命令执行时检查污染状态。
- 挑战:性能优化(如采样降低开销)、多线程环境数据隔离。
8. 语言栈(Java/Go)
- Java:代码审计(Spring/Struts2漏洞)、RASP工具开发(如基于Java Agent的防护)。
- Go:云安全工具开发(如K8s准入控制器)、高并发扫描器(协程池优化)。