Security Interview

0x21 华为

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

0x21 华为

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

1. Springboot+shiro 环境如何进行渗透

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

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

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

2. 实战中如何判断 fastjson 的版本

参考完整回答(Fastjson):

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

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

3. Fastjson 文件读写 gadget 是哪条,原理是什么

参考完整回答(Fastjson):

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

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

4. 内存马类型,如何检测

参考完整回答(内存马):

内存马是不依赖传统落地 WebShell、驻留在应用运行时里的后门。Java Web 里常见形态包括动态注册 Filter、Servlet、Listener、Interceptor、Controller,或者通过 Agent、字节码增强挂入请求链。它的特点是文件落地少、重启后可能消失或通过其他方式重新注入,常规文件查杀不一定能发现。

排查时我会看异常路由、Filter/Servlet 注册表、线程、类加载器、堆内存、访问日志和异常响应特征;也可以通过 Arthas、JMX、RASP/EDR 做运行时检查。防护上要修入口漏洞、限制反射和动态类加载风险、最小权限运行,并加强运行时完整性监控。

5. 给一个后台登录框有什么利用思路

参考完整回答(登录页漏洞):

登录页常见漏洞包括弱口令、爆破、撞库、用户名枚举、验证码绕过、SQL 注入、XSS、CSRF、会话固定、短信轰炸和 MFA 缺失。测试时我会看错误提示是否区分用户存在、是否有限速和锁定、验证码是否可复用、登录后 Session 是否重新生成、Cookie 是否安全。

修复包括统一错误提示、限速和风控、强密码和 MFA、验证码防重放、参数化查询、安全 Cookie、登录审计和异常登录告警。

6. Spring4shell 原理&检测&利用

参考完整回答(springshell原理&检测&利用):

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

7. 安卓系统如何进行 rce,有什么思路

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

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

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

8. 给一个移动端的 app,已知服务端是 cloud 环境,有什么思路利用

参考完整回答(APP安全测试):

APP 安全测试我会从客户端、通信、服务端接口和本地存储四块看。客户端侧做 APK 反编译,查看敏感信息硬编码、加固情况、调试开关、WebView 配置和组件暴露;通信侧抓包看 HTTPS、证书校验、是否可中间人、参数签名和重放;接口侧测试越权、注入、弱鉴权、验证码绕过;本地侧看 SharedPreferences、SQLite、日志和缓存中是否存敏感数据。

常用工具包括 jadx、apktool、MobSF、Frida、Objection、Burp、Charles。遇到证书绑定可以用 Frida hook 或测试包关闭校验,但要在授权环境中进行。

返回安全面经目录