Security Interview

0x62 传音控股上海 安全开发

来源:vvmdx/Sec-Interview-4-2023,已转换为博客静态页面。

0x62 传音控股上海 安全开发

来源:https://github.com/vvmdx/Sec-Interview-4-2023
说明:本文件按原面经问题整理答题要点,答案为面试复习口径。

一面

1. 自我介绍

参考完整回答(自我介绍):

可以按“背景、方向、项目、工具、优势、求职动机”来讲。示例:我主要学习网络安全方向,熟悉 Web 漏洞、渗透测试、Linux 安全、日志分析和代码审计;项目中做过资产收集、漏洞验证、权限控制或应急处置,常用 Burp、Nmap、sqlmap、Wireshark、Linux 等工具。最后强调自己能从漏洞原理、利用条件和修复方案三个层面分析问题。

2. 说一下扫描器的流程

参考完整回答(安全工具开发):

安全工具开发我会先明确工具目标:是资产发现、漏洞扫描、代码审计、日志分析还是告警处置。以漏洞扫描器为例,核心模块包括任务调度、资产输入、指纹识别、PoC 模板、请求限速、结果去重、误报复核、报告输出和权限控制。PoC 设计上要尽量无害验证,避免写文件、删数据或执行破坏性命令。

工程上还要考虑稳定性和可维护性:超时重试、并发控制、代理支持、失败日志、模板版本管理、资产标签和历史结果对比。安全工具本身也要做鉴权和审计,避免变成新的攻击入口。

3. 说一下渗透测试的流程

参考完整回答(渗透测试流程):

我会先说明渗透测试一定要在授权范围内进行,然后按完整链路展开:第一步确认测试范围、目标资产、时间窗口和禁止事项;第二步做信息收集,包括域名、子域名、IP、端口、服务指纹、历史解析、证书、GitHub 泄露和供应链资产;第三步做漏洞发现和验证,比如弱口令、Web 漏洞、中间件漏洞、配置错误和组件 CVE;第四步在不影响业务的前提下验证漏洞影响,必要时获取低风险证明,比如读取无敏感的标识文件或证明权限边界;第五步如果授权包含内网测试,再做权限提升、凭证收集、内网探测和横向移动验证;最后输出报告,写清楚漏洞位置、复现步骤、影响范围、风险等级、修复建议和复测结果。

面试时我会补一句:真正项目里我不会只追求“打进去”,而是会控制测试强度,保留证据链,避免破坏数据,并且把问题闭环到修复和复测。这样回答能体现流程意识、风险意识和落地能力。

4. 刚才提到了SQL注入,说一下为什么会产生SQL注入,以及如何防御

参考完整回答(SQL注入绕过):

SQL 注入绕过通常是因为防护用了黑名单,比如只过滤空格、逗号、select、union 这类关键字。攻击者可以用大小写混淆、注释符、URL 编码、宽字节、换行、括号、函数等价替代、布尔盲注、时间盲注、二次注入等方式绕过。例如过滤空格时可能用 /**/、换行或括号替代;过滤逗号时,MySQL 某些场景可以用 join、from for 或子查询改写。

但我在面试中会强调:绕过技巧说明黑名单不可靠,修复不能继续堆规则。正确做法还是参数化查询、白名单映射、最小权限和统一 ORM/DAO 层封装。安全设备如 WAF 可以作为辅助,但不能代替代码层修复。

5. SQL注入如何GETSHELL

参考完整回答(SQL注入绕过):

SQL 注入绕过通常是因为防护用了黑名单,比如只过滤空格、逗号、select、union 这类关键字。攻击者可以用大小写混淆、注释符、URL 编码、宽字节、换行、括号、函数等价替代、布尔盲注、时间盲注、二次注入等方式绕过。例如过滤空格时可能用 /**/、换行或括号替代;过滤逗号时,MySQL 某些场景可以用 join、from for 或子查询改写。

但我在面试中会强调:绕过技巧说明黑名单不可靠,修复不能继续堆规则。正确做法还是参数化查询、白名单映射、最小权限和统一 ORM/DAO 层封装。安全设备如 WAF 可以作为辅助,但不能代替代码层修复。

6. 你有过代码审计的经验吗,平时是怎么审计代码的

参考完整回答(Java代码审计):

Java 审计我会从路由和鉴权开始,看 Controller、Filter、Interceptor、Spring Security/Shiro 配置和权限注解是否覆盖所有接口。数据访问层重点看 MyBatis 的 ${} 拼接、JPA 原生 SQL、排序字段拼接和多租户条件缺失。危险能力方面看反序列化、Fastjson/Jackson、SpEL/OGNL、模板引擎、文件上传下载、SSRF、XXE 和第三方依赖 CVE。

举例来说,审 SQL 注入时我会搜索 MyBatis XML 里的 ${},确认参数是否来自请求;如果是 order by,我会要求白名单字段映射。审越权时会看接口是否从 token 中取用户身份,并校验资源 owner,而不是直接使用请求里的 userId。

7. 说一下OWASP TOP 10

参考完整回答(OWASP Top10):

OWASP Top 10 是 Web 应用常见高风险的总结。面试时我不会只背条目,而是选熟悉的讲。例如访问控制失效对应越权,修复是服务端统一鉴权和资源归属校验;注入对应 SQL/命令/模板注入,修复是参数化、白名单和安全 API;安全配置错误包括调试模式、默认口令、目录列表和敏感服务暴露。

如果面试官让我展开,我会用“漏洞原理、常见场景、验证方法、修复方式、项目经验”五步讲,这样比单纯背 OWASP 名单更有说服力。

8. 说一下XXE和SSRF的区别

参考完整回答(SSRF):

SSRF 是服务端请求伪造,攻击者控制 URL 参数,让服务器代替攻击者去访问目标。因为请求从服务端发出,所以可以访问攻击者本来访问不到的内网服务,比如 127.0.0.1、Redis、Consul、Kubernetes API、云厂商元数据地址 169.254.169.254 等。常见入口是图片抓取、URL 预览、文件下载、Webhook、PDF 生成和远程资源导入。

修复时我会做“解析后校验”而不是简单字符串判断。首先限制协议,只允许 http/https;其次使用白名单域名或固定资源代理;再次 DNS 解析后校验 IP,禁止私有地址、回环地址、链路本地地址、IPv6 本地地址和保留地址;还要处理重定向,每次跳转后重新校验;最后限制端口、超时时间、响应大小,并通过网络层让业务容器无法直连内网敏感服务和云元数据。

9. SSRF和XXE怎么防御

参考完整回答(SSRF):

SSRF 是服务端请求伪造,攻击者控制 URL 参数,让服务器代替攻击者去访问目标。因为请求从服务端发出,所以可以访问攻击者本来访问不到的内网服务,比如 127.0.0.1、Redis、Consul、Kubernetes API、云厂商元数据地址 169.254.169.254 等。常见入口是图片抓取、URL 预览、文件下载、Webhook、PDF 生成和远程资源导入。

修复时我会做“解析后校验”而不是简单字符串判断。首先限制协议,只允许 http/https;其次使用白名单域名或固定资源代理;再次 DNS 解析后校验 IP,禁止私有地址、回环地址、链路本地地址、IPv6 本地地址和保留地址;还要处理重定向,每次跳转后重新校验;最后限制端口、超时时间、响应大小,并通过网络层让业务容器无法直连内网敏感服务和云元数据。

10. 说一下nmap原理

参考完整回答(端口扫描):

端口扫描是向目标端口发送探测包,根据响应判断端口状态。TCP connect 扫描会完成三次握手,SYN 扫描收到 SYN/ACK 说明开放,收到 RST 说明关闭,超时或 ICMP 不可达可能是 filtered;UDP 扫描因为无连接,判断更依赖 ICMP 和应用响应。版本探测会进一步读取 banner 或发送探测包识别服务。

安全角度看,扫描是发现攻击面的基础。防护不是简单禁止所有扫描,而是减少暴露端口、只开放必要服务、使用安全组和防火墙限制来源、监控短时间多端口访问和异常连接失败率。

11. 说一下TCP三次握手

参考完整回答(说一下tcp三次握手):

这题我会这样完整回答:针对“说一下TCP三次握手”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。

12. DOS和DDOS是什么

参考完整回答(DDoS):

DDoS 是分布式拒绝服务攻击,攻击者利用大量主机或反射放大流量消耗目标带宽、连接数、CPU、线程池或业务资源。网络层包括 UDP Flood、ICMP Flood、反射放大;传输层包括 SYN Flood、ACK Flood;应用层包括 HTTP Flood、CC、慢速请求。

防护要分层:网络层接高防、CDN 和流量清洗;传输层做 SYN Cookie、连接数限制和黑白名单;应用层做限速、缓存、验证码、人机识别、接口熔断和弹性扩容。应急时先判断攻击类型和瓶颈,再决定封禁、牵引清洗或业务降级。

13. 说一下你做过红蓝队的经历

参考完整回答(项目/实习经历):

项目经历我会用 STAR 讲完整,而不是只列技术名词。先说项目背景:这是一个什么系统、业务价值是什么、我负责哪块安全工作;再说任务:比如接口鉴权、代码审计、漏洞验证、应急处置或安全工具开发;然后讲行动:我如何定位入口、使用了哪些工具、验证了哪些风险、如何推动修复;最后讲结果:修复了什么漏洞、减少了什么暴露面、沉淀了什么规则或文档。

如果面试官深挖,我会准备一个具体案例。例如“我在某系统审计中发现订单详情接口只校验登录态,没有校验订单 owner,导致水平越权。我用两个普通账号互换订单 ID 复现,确认能读取他人数据。修复方案是在服务端统一鉴权中间件里加入用户、租户和资源归属校验,并补充异常访问日志。复测时原越权请求返回 403,正常用户访问不受影响。”

14. 看到你有写POC的经历,简单说一下(这里简单说了一下log4j2的检测POC流程)

参考完整回答(项目/实习经历):

项目经历我会用 STAR 讲完整,而不是只列技术名词。先说项目背景:这是一个什么系统、业务价值是什么、我负责哪块安全工作;再说任务:比如接口鉴权、代码审计、漏洞验证、应急处置或安全工具开发;然后讲行动:我如何定位入口、使用了哪些工具、验证了哪些风险、如何推动修复;最后讲结果:修复了什么漏洞、减少了什么暴露面、沉淀了什么规则或文档。

如果面试官深挖,我会准备一个具体案例。例如“我在某系统审计中发现订单详情接口只校验登录态,没有校验订单 owner,导致水平越权。我用两个普通账号互换订单 ID 复现,确认能读取他人数据。修复方案是在服务端统一鉴权中间件里加入用户、租户和资源归属校验,并补充异常访问日志。复测时原越权请求返回 403,正常用户访问不受影响。”

15. 平时做过APP的渗透吗

参考完整回答(APP安全测试):

APP 安全测试我会从客户端、通信、服务端接口和本地存储四块看。客户端侧做 APK 反编译,查看敏感信息硬编码、加固情况、调试开关、WebView 配置和组件暴露;通信侧抓包看 HTTPS、证书校验、是否可中间人、参数签名和重放;接口侧测试越权、注入、弱鉴权、验证码绕过;本地侧看 SharedPreferences、SQLite、日志和缓存中是否存敏感数据。

常用工具包括 jadx、apktool、MobSF、Frida、Objection、Burp、Charles。遇到证书绑定可以用 Frida hook 或测试包关闭校验,但要在授权环境中进行。

16. 你所期望的工作是什么样子的

参考完整回答(你所期望的工作是什么样子的):

这题我会这样完整回答:针对“你所期望的工作是什么样子的”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。

17. 是因为考研失利还是因为拿了几个offer,才考虑来传音的

参考完整回答(HR问题):

这类 HR 问题要回答得稳定、真诚、不过度暴露弱点。期望薪资可以说“我会结合岗位职责、城市和公司薪酬体系,希望在贵司对应校招/实习生范围内匹配,我更看重团队方向和成长空间”;工作地点可以说明优先级和可接受范围;多久到岗要给明确时间;职业规划可以说短期打牢安全基础并在业务中独立承担任务,中长期希望在漏洞研究/安全工程/攻防方向形成专长。

遇到个人生活类问题,保持简洁,不展开隐私,把回答拉回工作稳定性和投入度即可。

18. 你觉得自己相对于同龄人的优势在哪里

参考完整回答(你觉得自己相对于同龄人的优势在哪里):

这题我会这样完整回答:针对“你觉得自己相对于同龄人的优势在哪里”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。

19. 你觉得自己的缺点在哪里

参考完整回答(你觉得自己的缺点在哪里):

这题我会这样完整回答:针对“你觉得自己的缺点在哪里”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。

20. 老家哪里的

参考完整回答(老家哪里的):

这题我会这样完整回答:针对“老家哪里的”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。

21. 反问

参考完整回答(反问):

反问可以围绕岗位职责、团队方向、技术栈、培养机制、实习生预期、日常工作比例和后续流程。不要只问薪资和作息,可以问“这个岗位更偏漏洞研究、工程建设还是应急响应?”来体现目标感。

22. 传音控股安全部门的规模

参考完整回答(传音控股安全部门的规模):

这题我会这样完整回答:针对“传音控股安全部门的规模”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。

23. 安全部门开发主要使用的语言

参考完整回答(安全工具开发):

安全工具开发我会先明确工具目标:是资产发现、漏洞扫描、代码审计、日志分析还是告警处置。以漏洞扫描器为例,核心模块包括任务调度、资产输入、指纹识别、PoC 模板、请求限速、结果去重、误报复核、报告输出和权限控制。PoC 设计上要尽量无害验证,避免写文件、删数据或执行破坏性命令。

工程上还要考虑稳定性和可维护性:超时重试、并发控制、代理支持、失败日志、模板版本管理、资产标签和历史结果对比。安全工具本身也要做鉴权和审计,避免变成新的攻击入口。

24. 如果我来了主要会做哪方面的工作

参考完整回答(如果我来了主要会做哪方面的工作):

这题我会这样完整回答:针对“如果我来了主要会做哪方面的工作”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。

返回安全面经目录