Security Interview

0x64 成都360 安全研究

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

0x64 成都360 安全研究

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

一面

1. 自我介绍

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

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

2. 看到你有打CTF的经历,说一下你印象比较深刻的比赛

参考完整回答(CTF复盘):

CTF 题复盘要讲清题型、关键突破点、踩坑和沉淀。比如 Web 题可以按信息泄露、源码审计、参数污染、反序列化、SSTI、SQL 注入等链路讲;Pwn 题讲保护机制、溢出点、泄露地址、ROP 或堆利用;Crypto 题讲算法弱点和数学条件。

关键是不要只说“做出来了”,而要说明自己如何定位问题、如何验证假设、失败过哪些思路、最后沉淀了什么工具或知识点。

3. SQL注入的绕过会吗,过滤了逗号怎么绕过

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

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

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

4. 说一下你的扫描器

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

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

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

5. 项目的并发是怎么处理的

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

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

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

6. 看到你有写flask,说一下flask可能存在的漏洞吧

参考完整回答(看到你有写flask说一下flask可能存在的漏洞吧):

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

7. 那就再说一下flask是怎么防御这些漏洞吧

参考完整回答(那就再说一下flask是怎么防御这些漏洞吧):

这类修复题我会按代码层、配置层和监控层回答。代码层首先找到用户输入进入危险操作的位置,优先用安全 API 或参数化方式替代拼接;如果涉及 URL、文件路径、SQL 字段、命令参数等不能直接参数化的位置,就使用白名单映射和规范化校验。配置层要关闭危险功能、降低运行权限、收敛网络访问和补丁升级。监控层要补日志和告警,记录异常参数、失败请求和高危操作。最后一定要复测:用原来的 payload 验证不能再触发,同时确认正常业务不受影响。

8. 说一下POC检测相关的

参考完整回答(说一下poc检测相关的):

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

9. 代码审计做过吗,你平时是怎么进行代码审计的

参考完整回答(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。

10. 看到你有用过codeql,说一下它是怎么进行漏洞检测的

参考完整回答(看到你有用过codeql说一下它是怎么进行漏洞检测的):

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

11. 用codeql进行过实战漏洞挖掘吗,怎么挖的

参考完整回答(用codeql进行过实战漏洞挖掘吗怎么挖的):

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

12. 说一下java代码审计里面你印象比较深刻的漏洞

参考完整回答(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。

13. 看到你有审计过TP,说一下它的安全处理

参考完整回答(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。

14. 说一下TP3的I方法

参考完整回答(说一下tp的i方法):

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

15. 说一下XXE漏洞

参考完整回答(XXE):

XXE 是 XML 外部实体注入。服务端解析用户上传或提交的 XML 时,如果允许 DTD 和外部实体,攻击者就可以定义实体读取本地文件,或者让服务器请求内网地址形成 SSRF。典型场景包括 SOAP、Office 文档解析、SAML、接口 XML 入参和文件导入。

修复必须在 XML 解析器层关闭 DTD、外部实体、XInclude 和外部 schema 加载。不同语言配置不同,但原则一致:不解析外部实体,不允许访问外部资源。还要限制错误回显,避免文件内容通过报错带出。

16. 多久能来实习

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

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

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

17. 反问:

参考完整回答(反问):

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

18. 团队规模

参考完整回答(团队规模):

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

19. 平时做的事情

参考完整回答(平时做的事情):

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

20. ...

参考完整回答(其他):

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

二面

21. 自我介绍

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

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

22. 说一下AWD攻防竞赛平台里面你印象比较深刻的点

参考完整回答(说一下awd攻防竞赛平台里面你印象比较深刻的点):

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

23. 参赛选手页面的刷新是用的AJAX还是后端定时推送

参考完整回答(参赛选手页面的刷新是用的ajax还是后端定时推送):

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

24. Docker有没有限制目录权限

参考完整回答(容器安全):

容器安全要从镜像、运行时、编排和宿主机四层看。镜像层要避免使用高危基础镜像、硬编码密钥和 root 用户;运行时要限制特权容器、hostPath、hostNetwork、SYS_ADMIN 等危险能力;Kubernetes 层要控制 RBAC、ServiceAccount token、API Server 暴露、etcd 访问和网络策略;宿主机层要及时更新内核和容器运行时。

容器逃逸通常依赖特权配置、危险挂载、内核漏洞、Docker socket 暴露或 K8s 权限过大。防护是最小权限、只读文件系统、seccomp/AppArmor、禁止特权容器、镜像扫描、网络隔离和审计异常容器行为。

25. DockerFile的编写有没有什么心得

参考完整回答(容器安全):

容器安全要从镜像、运行时、编排和宿主机四层看。镜像层要避免使用高危基础镜像、硬编码密钥和 root 用户;运行时要限制特权容器、hostPath、hostNetwork、SYS_ADMIN 等危险能力;Kubernetes 层要控制 RBAC、ServiceAccount token、API Server 暴露、etcd 访问和网络策略;宿主机层要及时更新内核和容器运行时。

容器逃逸通常依赖特权配置、危险挂载、内核漏洞、Docker socket 暴露或 K8s 权限过大。防护是最小权限、只读文件系统、seccomp/AppArmor、禁止特权容器、镜像扫描、网络隔离和审计异常容器行为。

26. Docker逃逸的问题

参考完整回答(容器安全):

容器安全要从镜像、运行时、编排和宿主机四层看。镜像层要避免使用高危基础镜像、硬编码密钥和 root 用户;运行时要限制特权容器、hostPath、hostNetwork、SYS_ADMIN 等危险能力;Kubernetes 层要控制 RBAC、ServiceAccount token、API Server 暴露、etcd 访问和网络策略;宿主机层要及时更新内核和容器运行时。

容器逃逸通常依赖特权配置、危险挂载、内核漏洞、Docker socket 暴露或 K8s 权限过大。防护是最小权限、只读文件系统、seccomp/AppArmor、禁止特权容器、镜像扫描、网络隔离和审计异常容器行为。

27. 刚才说到了没有使用目录挂载,那flag的刷新是怎么实现的

参考完整回答(刚才说到了没有使用目录挂载那flag的刷新是怎么实现的):

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

28. 多个Docker的调度问题

参考完整回答(容器安全):

容器安全要从镜像、运行时、编排和宿主机四层看。镜像层要避免使用高危基础镜像、硬编码密钥和 root 用户;运行时要限制特权容器、hostPath、hostNetwork、SYS_ADMIN 等危险能力;Kubernetes 层要控制 RBAC、ServiceAccount token、API Server 暴露、etcd 访问和网络策略;宿主机层要及时更新内核和容器运行时。

容器逃逸通常依赖特权配置、危险挂载、内核漏洞、Docker socket 暴露或 K8s 权限过大。防护是最小权限、只读文件系统、seccomp/AppArmor、禁止特权容器、镜像扫描、网络隔离和审计异常容器行为。

29. 我说了一下docker-compose,以及其中的一些细节,比如depend_on

参考完整回答(容器安全):

容器安全要从镜像、运行时、编排和宿主机四层看。镜像层要避免使用高危基础镜像、硬编码密钥和 root 用户;运行时要限制特权容器、hostPath、hostNetwork、SYS_ADMIN 等危险能力;Kubernetes 层要控制 RBAC、ServiceAccount token、API Server 暴露、etcd 访问和网络策略;宿主机层要及时更新内核和容器运行时。

容器逃逸通常依赖特权配置、危险挂载、内核漏洞、Docker socket 暴露或 K8s 权限过大。防护是最小权限、只读文件系统、seccomp/AppArmor、禁止特权容器、镜像扫描、网络隔离和审计异常容器行为。

30. 看到你有写POC,说一下写POC的心得

参考完整回答(看到你有写poc说一下写poc的心得):

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

31. dnslog的原理了解过吗

参考完整回答(DNS安全):

DNS 的作用是把域名解析为 IP,常见过程是浏览器/系统先查缓存和 hosts,再问本地递归解析器,递归解析器从根、顶级域、权威 DNS 逐级查询并返回结果。安全问题包括 DNS 劫持、缓存投毒、域传送泄露、子域名接管、DNS 隧道、DGA 域名和解析记录暴露真实 IP。

防护上,权威 DNS 要关闭未授权 AXFR,合理配置解析记录和 TTL;重要域名开启 DNSSEC 能降低篡改风险;企业侧监控异常 DNS 查询、长随机子域名和 TXT 大流量;对子域名下线要同时回收云资源,避免子域名接管。

32. 我简单说了一下

参考完整回答(我简单说了一下):

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

33. 面试官补充加解释

参考完整回答(面试官补充加解释):

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

34. 有想过写调用dnslog的单独方法吗

参考完整回答(DNS安全):

DNS 的作用是把域名解析为 IP,常见过程是浏览器/系统先查缓存和 hosts,再问本地递归解析器,递归解析器从根、顶级域、权威 DNS 逐级查询并返回结果。安全问题包括 DNS 劫持、缓存投毒、域传送泄露、子域名接管、DNS 隧道、DGA 域名和解析记录暴露真实 IP。

防护上,权威 DNS 要关闭未授权 AXFR,合理配置解析记录和 TTL;重要域名开启 DNSSEC 能降低篡改风险;企业侧监控异常 DNS 查询、长随机子域名和 TXT 大流量;对子域名下线要同时回收云资源,避免子域名接管。

35. 你的职业规划是什么

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

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

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

36. 反问:安全研究一般后来都去做了什么

参考完整回答(反问):

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

37. nmap的原理知道吗

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

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

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

38. 我说了一下nmap的默认扫描,nmap的扫描周期以及扫描器里面合并nmap的方案

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

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

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

39. nmap扫描速度的优化方案

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

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

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

40. 成都360车联网那边是做什么的

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

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

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

41. 多久能来实习

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

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

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

42. 毕业设计做的咋样了

参考完整回答(毕业设计做的咋样了):

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

43. 最近在做啥

参考完整回答(最近在做啥):

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

44. 想去车联网安全那边还是我们这边

参考完整回答(想去车联网安全那边还是我们这边):

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

45. 以后是想在成都发展吗

参考完整回答(以后是想在成都发展吗):

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

46. 反问

参考完整回答(反问):

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

47. 部门要招多少人

参考完整回答(部门要招多少人):

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

48. 为什么360没有HR来管理招聘流程

参考完整回答(为什么没有hr来管理招聘流程):

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

49. 面试之后多久会有结果

参考完整回答(面试之后多久会有结果):

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

50. ...

参考完整回答(其他):

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

返回安全面经目录