Security Interview

0x07 腾讯-安全技术实习生

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

0x07 腾讯-安全技术实习生

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

1. 自我介绍

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

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

2. sql注入了解吗,讲一讲二次注入的原理

参考完整回答(二次注入):

二次注入是恶意数据第一次进入系统时没有触发漏洞,而是被存入数据库;后续业务再次取出这段数据并拼接到 SQL 时才触发。比如注册昵称时存入特殊字符,后台统计或查询时把昵称拼进 SQL,导致注入。

防护原则是任何进入 SQL 的数据都不可信,即使它来自数据库。所有 SQL 执行点都要参数化;对存储字段做业务语义校验;后台管理、导出、统计这类二次使用点也要审计,不能只防用户前台入口。

3. 二次注入要怎么修复

参考完整回答(二次注入):

二次注入是恶意数据第一次进入系统时没有触发漏洞,而是被存入数据库;后续业务再次取出这段数据并拼接到 SQL 时才触发。比如注册昵称时存入特殊字符,后台统计或查询时把昵称拼进 SQL,导致注入。

防护原则是任何进入 SQL 的数据都不可信,即使它来自数据库。所有 SQL 执行点都要参数化;对存储字段做业务语义校验;后台管理、导出、统计这类二次使用点也要审计,不能只防用户前台入口。

4. sql注入过waf了解吗,若一个sql注入过滤了information关键词,怎么绕过

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

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

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

5. Redis未授权访问

参考完整回答(Redis漏洞):

Redis 常见安全问题是未授权访问和弱口令。如果 Redis 暴露在公网或内网可被攻击者访问,攻击者可能写入 SSH 公钥、写 WebShell、写计划任务,或者通过主从复制和模块加载达到命令执行。它本质上不是 Redis 单点漏洞,而是配置和网络暴露问题。

修复应包括:Redis 只监听内网或本机地址,不暴露公网;设置强密码和 Redis 6 ACL;rename 或禁用高危命令只是辅助;使用低权限用户运行 Redis;限制工作目录写权限;防火墙只允许业务主机访问;开启日志审计和异常命令监控。业务侧还要避免 SSRF 能直接访问 Redis。

6. 渗透测试的一个完整流程

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

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

7. 打ctf的时候有没有遇到什么印象特别深的题目

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

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

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

8. 文件下载漏洞有没有什么比较好的利用方式

参考完整回答(文件下载):

文件下载漏洞通常是下载接口把 filename、path、url 等参数直接作为文件路径使用,导致攻击者通过 ../、绝对路径、编码绕过或软链接读取任意文件。常见可读目标包括配置文件、源码、数据库连接串、日志、/etc/passwd、SSH key、应用密钥和备份文件。

修复应该用文件 ID 映射真实路径,而不是让用户传路径;如果必须传路径,要规范化路径后检查是否仍在允许目录内,禁止 ../、绝对路径和软链接绕过;下载目录与敏感目录隔离;响应头只使用安全文件名;并对下载行为做鉴权和审计。

9. 利用文件下载漏洞找文件名具体是找什么文件名(读取文件一般会读取哪些文件)(ctf中?实战中?)

参考完整回答(文件下载):

文件下载漏洞通常是下载接口把 filename、path、url 等参数直接作为文件路径使用,导致攻击者通过 ../、绝对路径、编码绕过或软链接读取任意文件。常见可读目标包括配置文件、源码、数据库连接串、日志、/etc/passwd、SSH key、应用密钥和备份文件。

修复应该用文件 ID 映射真实路径,而不是让用户传路径;如果必须传路径,要规范化路径后检查是否仍在允许目录内,禁止 ../、绝对路径和软链接绕过;下载目录与敏感目录隔离;响应头只使用安全文件名;并对下载行为做鉴权和审计。

10. 命令执行漏洞,http不出网有什么比较好的处理方法(发散一点说)

参考完整回答(命令执行):

命令执行漏洞是用户输入进入系统命令解释器,导致攻击者能拼接额外命令。危险点包括 system、exec、Runtime.exec、ProcessBuilder、popen、反引号、脚本调用等。利用不一定需要回显,可以通过延时、DNS 请求、写文件等方式验证。

修复的核心是不拼 shell 命令。能用语言内置 API 就不用系统命令;必须调用外部程序时使用参数数组,避免 shell=True,并对参数做白名单、长度、字符集和枚举校验。运行进程要低权限、容器隔离、限制出网,并记录异常命令调用。

11. 接上一题,通过隧道通信,详细讲讲通过什么类型的隧道,讲讲具体操作

参考完整回答(隧道代理):

内网隧道用于在授权测试中把攻击者到内网目标的访问打通。常见方式有 HTTP/SOCKS 代理、端口转发、反向隧道、ICMP/DNS 隧道等。比如目标能出网时可以用反向代理工具建立 SOCKS,再通过代理访问内网 Web、RDP、数据库等服务。

防守角度要监控异常长连接、非常规协议、DNS 长域名、高频心跳、内网主机主动连接陌生外部地址;网络层做出网白名单和代理审计;主机侧关注 frp、ew、nps、chisel 等工具特征。

12. 漏洞预警

参考完整回答(漏洞预警):

漏洞预警我会按资产、情报、影响判断和处置闭环回答。首先从厂商公告、CVE、CNVD/CNNVD、安全社区和威胁情报获取漏洞信息;然后用资产系统匹配受影响组件、版本、端口和业务负责人,判断是否真实暴露;接着在测试环境复现或用无害检测方式验证,避免直接在生产跑高危 PoC。处置上按风险分级推进:高危远程命令执行优先下线、限源、WAF 临时规则和补丁升级;中低危进入变更计划。最后要复测、补资产指纹和沉淀检测脚本。

13. 有没有复现过中间件类型的漏洞(有没有完整的复现过漏洞)

参考完整回答(中间件漏洞):

中间件漏洞复现我会按版本确认、环境搭建、漏洞入口、触发条件、影响验证、修复验证来做。比如 Tomcat、WebLogic、Shiro、Struts2、Nginx、Apache、Fastjson、Log4j 等,不能只跑 PoC,要理解漏洞触发点和依赖条件。

修复建议通常包括升级版本、关闭危险功能、修改默认口令、限制管理后台来源、最小权限运行、删除示例应用、加固反序列化和文件上传路径,并在资产系统里持续跟踪版本。

14. 在学校的攻防演练中扮演的角色的主要职责是什么

参考完整回答(在学校的攻防演练中扮演的角色的主要职责是什么):

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

返回安全面经目录