Security Interview

0x26 长亭

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

0x26 长亭

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

1. spring spel 漏洞原理&利用方法 什么情况才能利用

参考完整回答(springspel漏洞原理&利用方法什么情况才能利用):

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

2. java jdbc 反序列化高版本不出网的条件下如何利用

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

3. tomcat becl 如何利用

参考完整回答(tomcatbecl如何利用):

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

4. shiro 反序列化用的是哪种加密方法 如何利用

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

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

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

5. ueditor 哪种语言环境存在漏洞 怎么利用 如何绕 waf

参考完整回答(WAF/IDS/误报):

WAF/IDS 误报多来自规则只看单个关键字、缺少业务上下文、参数位置不同、编码变化、正常运维脚本触发和资产类型差异。比如 mysql 执行 powershell 可能是运维脚本,也可能是入侵后的横向行为,不能只看一个命中点。

优化时我会做分层:高危明确攻击特征可以阻断;中低危先告警并结合频率、来源信誉、参数位置、响应码、命中规则数、登录态和资产重要性打分;对确定的正常业务加精确白名单,而不是大范围放行;持续把处置结果反馈到规则,形成闭环。

6. 内网 Windows Print Spooler 利用&原理

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

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

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

7. 内网 PotitPetam 利用&原理

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

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

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

8. 域内 pth 和工作组 pth 的差别

参考完整回答(域内pth和工作组pth的差别):

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

9. 域内用户和工作组用户的差别

参考完整回答(域内用户和工作组用户的差别):

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

10. 如何攻击域控

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

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

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

11. spirng4shell&log4j 利用

参考完整回答(Log4j/JNDI):

Log4j2 的 Log4Shell 漏洞是因为日志内容中的 ${jndi:...} 会触发 JNDI Lookup。攻击者只要能控制被记录到日志里的内容,比如 User-Agent、用户名、请求参数,就可能让服务器访问恶意 LDAP/RMI 地址,进而触发远程类加载或本地 gadget,造成 RCE。

完整修复是升级 Log4j 到安全版本;临时措施包括删除 JndiLookup 类、关闭 lookup、设置相关安全参数,但最终仍应升级。还要排查传递依赖,因为很多应用不是直接引入 Log4j;网络层限制服务器访问外部 LDAP/RMI;日志侧检索 ${jndi:、lower、upper、::- 等混淆特征,确认是否被探测或利用。

12. 外网常用打点漏洞有哪些

参考完整回答(外网常用打点漏洞有哪些):

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

13. 一个任意文件读取/任意文件下载,如何进一步利用

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

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

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

14. 用友 nc beanshell 执行命令如何过 waf

参考完整回答(WAF/IDS/误报):

WAF/IDS 误报多来自规则只看单个关键字、缺少业务上下文、参数位置不同、编码变化、正常运维脚本触发和资产类型差异。比如 mysql 执行 powershell 可能是运维脚本,也可能是入侵后的横向行为,不能只看一个命中点。

优化时我会做分层:高危明确攻击特征可以阻断;中低危先告警并结合频率、来源信誉、参数位置、响应码、命中规则数、登录态和资产重要性打分;对确定的正常业务加精确白名单,而不是大范围放行;持续把处置结果反馈到规则,形成闭环。

15. shiro 反序列化漏洞如果 cookie 中的 payload 过长被 waf 拦截如何绕 waf

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

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

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

返回安全面经目录