当前位置: 首页 > article >正文

2025年渗透测试面试题总结-匿名[实习]安全工程师(安全厂商)(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

一面技术问题

1. Burp插件原理

2. JavaWeb项目经验

3. CC1-7链原理(以CC6为例)

4. Fastjson与Jackson反序列化对比

5. BCEL类加载器

6. XStream反序列化漏洞

7. 反序列化基础原理

8. JEP290机制

9. RMI原理与漏洞

10. JdbcRowSetImpl JNDI注入

11. CC链四个Transformer区别

12. CVE/CNVD挖掘经验

13. 反序列化其他触发点

14. Spring RCE漏洞

15. IIOP/T3反序列化

16. PHP反序列化

二面综合问题

1. 安全从业年限

2. 未来规划

3. 实习成果

4. 工作地点要求

 匿名[实习]安全工程师(安全厂商)

### 一面1. 讲讲你写的几个Burp插件原理
2. 做过什么JavaWeb项目吗
3. CC1-7找熟悉的讲一下原理
4. Fastjson和Jackson反序列化原理讲讲
5. BCEL可以用其他类加载器吗
6. XStream反序列化讲讲
7. 最基本的反序列化原理是什么
8. 了解JEP290的原理吗
9. 讲下RMI原理以及相关的漏洞
10. JdbcRowSetImpl如何触发的JNDI注入
11. CC链四个Transformer区别
12. 讲下你挖过的CVE和CNVD
13. 反序列化除了readObject还有什么触发点
14. 讲下Spring相关的RCE原理
15. 讲讲IIOP和T3反序列化原理
16. PHP等语言的反序列化讲讲### 二面1. 做了几年安全
2. 未来想做什么
3. 讲讲实习期间做的事
4. 工作地点要求. 

一面技术问题

1. Burp插件原理
  • 核心机制:Burp插件通过Java API或Python(通过Jython)扩展,主要操作包括:
    • 请求/响应拦截:实现IHttpListener接口,在processHttpMessage()中修改HTTP流量。
    • 主动扫描逻辑:通过IScannerCheck定义自定义漏洞检测规则。
    • UI集成:利用ITabIContextMenu添加自定义界面。
  • 典型场景:例如自动化CSRF Token替换插件,通过解析HTML提取Token并动态更新请求参数。

2. JavaWeb项目经验
  • 技术栈:Spring Boot + MyBatis开发的后台管理系统,涉及:
    • 安全实践:Shiro权限控制、SQL预编译防御注入、XSS过滤器(通过自定义HttpServletRequestWrapper)。
    • 漏洞修复:修复过Fastjson 1.2.24反序列化漏洞,升级至2.x并启用SafeMode。

3. CC1-7链原理(以CC6为例)
  • 关键类HashMap#readObject触发TiedMapEntry#hashCode,调用LazyMap#get()触发动态代理(AnnotationInvocationHandler)。
  • 绕过限制:CC6利用HashSet代替AnnotationInvocationHandler,避免高版本JDK中对该类的内部校验。

4. Fastjson与Jackson反序列化对比
  • Fastjson
    • 漏洞根源@type字段指定任意类,通过DefaultJSONParser解析时自动调用setter/getter。
    • 补丁绕过:1.2.48以下利用AutoCloseable接口类触发恶意代码。
  • Jackson
    • 触发条件:启用enableDefaultTyping()时,通过多态类型绑定(如Object类型属性)实例化恶意类。
    • 利用类:如org.apache.xbean.propertyeditor.JndiConverter 结合JNDI注入。

5. BCEL类加载器
  • 限制与替代
    • BCEL原生使用com.sun.org.apache.bcel.internal.util.ClassLoader ,但可被其他自定义类加载器(如URLClassLoader)加载,需手动调用loadClass()并初始化。
    • 实战意义:部分WAF会拦截BCEL关键字,改用其他加载器(如Groovy ClassLoader)可绕过检测。

6. XStream反序列化漏洞
  • 原理:XStream在解析XML时,通过Converter将标签映射为对象,攻击者构造包含EventHandlerJdbcRowSetImpl的XML触发RCE。
  • CVE-2021-21345:利用javax.sql.rowset.BaseRowSetsetDataSourceName触发JNDI注入。

7. 反序列化基础原理
  • 入口点ObjectInputStream#readObject()反序列化二进制数据,若对象重写该方法且存在危险操作(如Runtime.exec ),则导致漏洞。
  • 扩展触发点:如readResolve()readExternal()等序列化接口方法。

8. JEP290机制
  • 核心功能:JDK9引入的反序列化过滤器,通过ObjectInputFilter检查反序列化的类是否在白名单内。
  • 绕过方法
    • 利用未受JEP290保护的第三方库(如Groovy的MethodClosure)。
    • 嵌套序列化流绕过单层过滤(如CVE-2021-2045)。

9. RMI原理与漏洞
  • 工作流程
    1. 服务端注册对象到Registry(端口1099)。
    2. 客户端通过JNDI查找远程对象,通过动态类加载(codebase)下载恶意类。
  • 历史漏洞
    • CVE-2017-3241:JRMP协议传输的序列化对象未校验,可注入CC链。
    • JNDI注入:结合RMI的codebase特性,触发远程类加载(如Log4j漏洞)。

10. JdbcRowSetImpl JNDI注入
  • 触发链路:调用setDataSourceName()设置JNDI地址,setAutoCommit(true)触发connect(),最终调用InitialContext.lookup() 加载恶意对象。

11. CC链四个Transformer区别
  • 核心Transformer
    1. ConstantTransformer:返回固定值,用于构造参数。
    2. InvokerTransformer:反射调用方法(如Runtime.exec )。
    3. ChainedTransformer:链式执行多个Transformer。
    4. InstantiateTransformer:实例化类并调用构造方法(如TemplatesImpl)。

12. CVE/CNVD挖掘经验
  • 举例:某OA系统文件上传漏洞(CNVD-2023-XXXXX),未校验文件类型导致上传Webshell,结合权限绕过实现RCE。

13. 反序列化其他触发点
  • JDBC反序列化:MySQL Connector/J的SHOW SESSION STATUS触发恶意类加载。
  • XML反序列化:XStream、Jackson XML格式解析漏洞。
  • YAML/Properties解析:SnakeYAML加载恶意类。

14. Spring RCE漏洞
  • CVE-2022-22965:通过参数绑定修改TomcatClassLoader属性,写入恶意JSP文件。
  • SpEL表达式注入:如@PreAuthorize注解中的表达式动态解析导致代码执行。

15. IIOP/T3反序列化
  • IIOP:CORBA协议传输的序列化对象,WebLogic未过滤导致CC链注入。
  • T3协议:WebLogic特有协议,漏洞利用需构造包含FilterExtractor的Payload。

16. PHP反序列化
  • 魔术方法__wakeup()__destruct()常被用于触发漏洞。
  • POP链构造:如利用Monolog库的Processor类执行系统命令。

二面综合问题

1. 安全从业年限
  • 经历:3年渗透测试与漏洞研究,主导过金融、教育行业风险评估项目,熟悉红队武器化开发。

2. 未来规划
  • 技术方向:深耕Java生态安全(如JVM沙盒逃逸、RASP对抗),探索云原生场景下的攻击面。

3. 实习成果
  • 项目示例:某SRC平台漏洞自动化挖掘系统,集成动态污点追踪与静态代码分析,提升漏洞发现效率30%。

4. 工作地点要求
  • 倾向:优先一线城市(如北京、上海),看重技术团队成熟度与业务场景复杂度,远程办公可接受。
http://www.lryc.cn/news/2386131.html

相关文章:

  • 【node.js】实战项目
  • 从AD9361 到 ADSY1100 ,中间的迭代产品历史
  • 免费插件集-illustrator插件-Ai插件-查找选中颜色与pantone中匹配颜色
  • redis集合类型
  • [爬虫实战] 爬微博图片:xpath的具体运用
  • MySQL中简单的操作
  • NNG和DDS
  • 防震基座在半导体晶圆制造设备抛光机详细应用案例-江苏泊苏系统集成有限公司
  • 框架开发与原生开发的权衡:React案例分析(原生JavaScript)
  • Lua5.4.2常用API整理记录
  • Python打卡训练营学习记录Day36
  • ### Mac电脑推送文件至Gitee仓库步骤详解
  • 官方SDK停更后的选择:开源维护的Bugly Unity SDK
  • 什么是智能体agent?
  • 【多线程】Java 实现方式及其优缺点
  • Obsidian 数据可视化深度实践:用 DataviewJS 与 Charts 插件构建智能日报系统
  • Three.js 海量模型加载性能优化指南
  • 6.4.3_有向无环图描述表达式
  • 力扣第157场双周赛
  • 青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十五) -> 端云一体化开发 -> 业务介绍(二)
  • LLaMA-Factory 微调模型与训练数据量对应关系
  • 数据库与Redis数据一致性解决方案
  • Spring Boot AI 之 Chat Client API 使用大全
  • 分身空间:手机分身多开工具,轻松实现多账号登录
  • 音视频之视频压缩及数字视频基础概念
  • Ubuntu 24.04部署安装Honeyd蜜罐
  • C++复习核心精华
  • Android中获取控件尺寸进阶方案
  • 云原生安全之PaaS:从基础到实践的技术指南