Security Interview

0x5B 沥泉科技-红队安全研究

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

0x5B 沥泉科技-红队安全研究

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

1. 2、看你漏洞这块,Java,PHP,Python 都有了解是吗?简单说一说怎么审计 PHP 漏洞的吧。

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

2. 4、如果你没有修改过的话,那你怎么样才能挖出别人挖不出来的洞呢?

参考完整回答(如果你没有修改过的话那你怎么样才能挖出别人挖不出来的洞呢):

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

3. 7、那关于 fastjson 的 parse 和 parseObject 呢?

参考完整回答(Fastjson):

Fastjson 的典型问题和 autoType 反序列化有关。攻击者提交带 @type 的 JSON,让 Fastjson 实例化攻击者指定的类;如果目标环境存在可利用 gadget,就可能触发 JNDI、setter、副作用方法或反序列化链,造成远程命令执行、SSRF 或敏感操作。

回答时可以说利用条件包括:目标使用受影响版本、开启或绕过 autoType、类路径中存在可利用类、输入 JSON 可控。修复是升级到安全版本,关闭 autoType,使用白名单而不是黑名单,避免对外部输入做任意类型反序列化;同时限制应用出网,减少 JNDI 类漏洞的利用成功率,并在日志中监控 @type、JdbcRowSetImpl、TemplatesImpl 等高危特征。

4. 8、有学过哪些框架和组件呢?为什么要学他们

参考完整回答(有学过哪些框架和组件呢为什么要学他们):

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

5. 9、关于 Shiro 的漏洞,有了解吗?展开说说

参考完整回答(Shiro反序列化):

Shiro 经典反序列化漏洞通常出现在 rememberMe 功能。Shiro 会把序列化对象加密后放进 rememberMe Cookie,如果密钥是默认值或泄露,攻击者就能用这个密钥加密恶意序列化数据发给服务端,服务端解密后反序列化,触发 CommonsCollections 等 gadget 链。

我会回答形成原因是:客户端可控 Cookie、服务端自动解密反序列化、密钥弱或默认、环境中存在可用 gadget。修复包括升级 Shiro,使用随机强密钥,禁用不必要的 rememberMe,减少危险依赖,开启出网限制,并监控异常 rememberMe Cookie 长度、特征和反序列化异常。

6. 12、说到 nmap,一般 nmap 扫描很慢的时候会怎么办呢?

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

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

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

7. 13、有了解过内网么?说一说 Kerberos 协议的流程吧,后面又问了 NTLM 协议的流程

参考完整回答(内网渗透/横向):

内网渗透我会先确认当前落点的权限、网段、路由、DNS、域环境和出网情况。然后做低噪声主机发现和端口识别,重点关注域控、文件共享、数据库、中间件、运维平台和代码仓库。接着收集凭证线索,例如配置文件、历史命令、浏览器缓存、数据库连接串、共享目录和内存凭证;如果授权允许,再验证横向移动和权限提升路径。

防守视角我会补充:内网安全不能只靠边界防火墙,要做分区分域、最小权限、凭证隔离、禁用明文密码和本地管理员复用、开启 EDR、监控东西向流量、审计异常登录和远程执行行为。

返回安全面经目录