0x76 腾讯
来源: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. sqli测试思路
参考完整回答(sqli测试思路):
这题我会这样完整回答:针对“sqli测试思路”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
4. 黑帽子怎么用sqli
参考完整回答(黑帽子怎么用sqli):
这题我会这样完整回答:针对“黑帽子怎么用sqli”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
5. 拿到权限的方式
参考完整回答(Linux安全):
Linux 安全我会从账号、权限、进程、网络、启动项、日志和补丁几个方面回答。账号侧检查 /etc/passwd、sudoers、SSH key、弱口令和异常登录;权限侧关注 SUID/SGID、777 目录、敏感文件权限和 Web 目录可写可执行;进程和网络侧用 ps、top、ss、lsof 看异常进程和外连;持久化侧看 crontab、systemd、rc.local、shell profile 和自启动服务。
加固时禁用 root 远程登录,使用密钥和 MFA,最小化 sudo 权限,关闭不必要服务,配置防火墙,开启日志审计,及时打补丁。发现入侵时先保留证据,再做隔离和清除。
6. 有IDS怎么绕
参考完整回答(WAF/IDS/误报):
WAF/IDS 误报多来自规则只看单个关键字、缺少业务上下文、参数位置不同、编码变化、正常运维脚本触发和资产类型差异。比如 mysql 执行 powershell 可能是运维脚本,也可能是入侵后的横向行为,不能只看一个命中点。
优化时我会做分层:高危明确攻击特征可以阻断;中低危先告警并结合频率、来源信誉、参数位置、响应码、命中规则数、登录态和资产重要性打分;对确定的正常业务加精确白名单,而不是大范围放行;持续把处置结果反馈到规则,形成闭环。
7. webshell检测 反弹shell 一句话shell???
参考完整回答(文件上传/WebShell):
文件上传漏洞的风险在于攻击者上传脚本文件或伪装文件,最终让服务器解析执行。绕过方式可能包括双后缀、大小写、MIME 伪造、图片马、解析漏洞、条件竞争和上传路径可控。
完整修复我会这样做:后端使用扩展名白名单,只允许业务需要的类型;校验文件头和真实内容,不信任 Content-Type;上传后随机重命名,文件名不使用用户输入;上传目录放到静态资源域或对象存储,禁止脚本执行;图片类文件做二次处理;限制大小和数量;最后配合杀毒/内容检测和日志审计。Nginx/Apache/PHP-FPM 也要避免把非脚本目录交给解释器解析。
8. 对waf有什么了解
参考完整回答(WAF/IDS/误报):
WAF/IDS 误报多来自规则只看单个关键字、缺少业务上下文、参数位置不同、编码变化、正常运维脚本触发和资产类型差异。比如 mysql 执行 powershell 可能是运维脚本,也可能是入侵后的横向行为,不能只看一个命中点。
优化时我会做分层:高危明确攻击特征可以阻断;中低危先告警并结合频率、来源信誉、参数位置、响应码、命中规则数、登录态和资产重要性打分;对确定的正常业务加精确白名单,而不是大范围放行;持续把处置结果反馈到规则,形成闭环。
9. log清理
参考完整回答(log清理):
这题我会这样完整回答:针对“log清理”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
10. 扫描器 微内核方式 事件驱动 微服务 分层
参考完整回答(安全工具开发):
安全工具开发我会先明确工具目标:是资产发现、漏洞扫描、代码审计、日志分析还是告警处置。以漏洞扫描器为例,核心模块包括任务调度、资产输入、指纹识别、PoC 模板、请求限速、结果去重、误报复核、报告输出和权限控制。PoC 设计上要尽量无害验证,避免写文件、删数据或执行破坏性命令。
工程上还要考虑稳定性和可维护性:超时重试、并发控制、代理支持、失败日志、模板版本管理、资产标签和历史结果对比。安全工具本身也要做鉴权和审计,避免变成新的攻击入口。
11. 爬虫 phantomjs特点 弱点
参考完整回答(爬虫phantomjs特点弱点):
这题我会这样完整回答:针对“爬虫 phantomjs特点 弱点”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
12. 爬虫登录问题
参考完整回答(爬虫登录问题):
这题我会这样完整回答:针对“爬虫登录问题”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
13. 爬虫相似页面参数变化页面去重
参考完整回答(爬虫相似页面参数变化页面去重):
这题我会这样完整回答:针对“爬虫相似页面参数变化页面去重”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
14. 爬取和测试间隔时间长,导致cookie失效
参考完整回答(爬取和测试间隔时间长导致cookie失效):
这题我会这样完整回答:针对“爬取和测试间隔时间长,导致cookie失效”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
15. 写不写c和c++
参考完整回答(写不写c和c++):
这题我会这样完整回答:针对“写不写c和c++”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
16. 堆栈反转,只能用不超过堆栈空间一半的额外空间 二分 边界 重复数
参考完整回答(堆栈反转只能用不超过堆栈空间一半的额外空间二分边界重复数):
这题我会这样完整回答:针对“堆栈反转,只能用不超过堆栈空间一半的额外空间 二分 边界 重复数”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
17. celery干啥 redis防护
参考完整回答(Redis漏洞):
Redis 常见安全问题是未授权访问和弱口令。如果 Redis 暴露在公网或内网可被攻击者访问,攻击者可能写入 SSH 公钥、写 WebShell、写计划任务,或者通过主从复制和模块加载达到命令执行。它本质上不是 Redis 单点漏洞,而是配置和网络暴露问题。
修复应包括:Redis 只监听内网或本机地址,不暴露公网;设置强密码和 Redis 6 ACL;rename 或禁用高危命令只是辅助;使用低权限用户运行 Redis;限制工作目录写权限;防火墙只允许业务主机访问;开启日志审计和异常命令监控。业务侧还要避免 SSRF 能直接访问 Redis。
18. cso注意事项 企业安全内部外部 协议分层
参考完整回答(cso注意事项企业安全内部外部协议分层):
这题我会这样完整回答:针对“cso注意事项 企业安全内部外部 协议分层”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
19. 如何抓到运营商劫持的证据 防护运营商劫持 dns劫持
参考完整回答(DNS安全):
DNS 的作用是把域名解析为 IP,常见过程是浏览器/系统先查缓存和 hosts,再问本地递归解析器,递归解析器从根、顶级域、权威 DNS 逐级查询并返回结果。安全问题包括 DNS 劫持、缓存投毒、域传送泄露、子域名接管、DNS 隧道、DGA 域名和解析记录暴露真实 IP。
防护上,权威 DNS 要关闭未授权 AXFR,合理配置解析记录和 TTL;重要域名开启 DNSSEC 能降低篡改风险;企业侧监控异常 DNS 查询、长随机子域名和 TXT 大流量;对子域名下线要同时回收云资源,避免子域名接管。
20. web安全以后和什么技术结合
参考完整回答(web安全以后和什么技术结合):
这题我会这样完整回答:针对“web安全以后和什么技术结合”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
21. 在学校干啥
参考完整回答(在学校干啥):
这题我会这样完整回答:针对“在学校干啥”,我会先说明它对应的安全场景和要解决的问题,再给出一个具体例子。比如在真实测试或审计中,我会先确认入口在哪里、用户输入是否可控、数据经过哪些处理、最终进入哪个敏感操作;验证时尽量使用低风险方式证明影响,例如观察响应差异、日志、时间延迟、回连记录或权限边界,而不是破坏数据。修复时从代码、配置和权限三方面处理:代码层使用安全 API、参数化、白名单和输出编码;配置层关闭危险功能、升级组件、限制网络和文件权限;权限层坚持最小权限,避免单点漏洞扩大影响。最后我会补充复测方法,用原触发条件验证漏洞不可再利用,并确认正常业务流程仍然可用。
22. HTTP流量分析能得到啥
参考完整回答(流量分析/研判):
流量分析我会先看五元组、协议、时间分布、包大小、连接状态和请求内容,再和业务基线比较。扫描通常表现为同一源短时间访问大量端口或路径;爆破表现为登录失败暴增;Web 攻击会在参数里出现 union、sleep、../、<script>、jndi 等特征;C2 可能有固定间隔心跳、小包长连接或异常域名;数据外传则体现为内网主机向陌生外部地址持续上传。
工具上可以用 Wireshark 做人工分析,用 tcpdump 抓关键流量,用 Zeek/Suricata 结构化日志和告警。最终要结合主机日志和应用日志确认,不能只靠单包下结论。
返回安全面经目录