当前位置: 首页 > 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. 工作地点要求
  • 倾向:优先一线城市(如北京、上海),看重技术团队成熟度与业务场景复杂度,远程办公可接受。

相关文章:

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

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一面技术问题 1. Burp插件原理 2. JavaWeb项目经验 3. CC1-7链原理(以CC6为例&#xff0…...

【node.js】实战项目

个人主页:Guiat 归属专栏:node.js 文章目录 1. 项目概览与架构设计1.1 实战项目:企业级电商管理系统1.2 技术栈选择 2. 项目初始化与基础架构2.1 项目结构设计2.2 基础配置管理 3. 用户服务实现3.1 用户服务架构3.2 用户模型设计3.3 用户服务…...

从AD9361 到 ADSY1100 ,中间的迭代产品历史

从 AD9361 到 ADSY1100 的演进,是 Analog Devices(ADI)在射频收发器(RF Transceiver)集成化、高性能、宽带宽、低功耗和波束赋形能力方面持续推进的一个路线。以下是其中的重要芯片节点和核心参数对比: 1. …...

免费插件集-illustrator插件-Ai插件-查找选中颜色与pantone中匹配颜色

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件,加强illustrator使用人员工作效率,实现查找选中颜色与pantone中匹配颜色。首先从下载网址下载这款插件https://download.csdn.net/download/m0_6731…...

redis集合类型

练习命令使用,具体如下: 练习无序集合类型命令 sadd smembers scard srem sinter sunion sdiff sismember srandmember spop 练习有序集合类型命令 无序集合中的每个元素都是不同的,且没有顺序 创建/追加/删除/查看 127.0.0.1:6379>…...

[爬虫实战] 爬微博图片:xpath的具体运用

博客配套代码发布于github:微博图片 相关知识点:图片懒加载 [爬虫知识] 数据解析 相关爬虫专栏:JS逆向爬虫实战 爬虫知识点合集 爬虫实战案例 这里我们以网页微博图片为例,尝试获取该页面下所有图片并保存。 一、分析网站 刷…...

MySQL中简单的操作

一.数据库 1.1数据库的建立: create database 库名; 1.2数据库的查看: show databases; 1.3数据库的删除: drop database 库名; 二.数据库中的表 2.1表的建立: create table 表名&…...

NNG和DDS

NNG (Nanomsg Next Generation) 和 DDS (Data Distribution Service) 是两种不同的通信协议,各自在不同场景下具有其优势。下面我将对这两种技术进行详细解释,并通过具体的例子来说明它们如何应用在实际场景中。 1. NNG (Nanomsg Next Generation) NNG简…...

防震基座在半导体晶圆制造设备抛光机详细应用案例-江苏泊苏系统集成有限公司

在半导体制造领域,晶圆抛光作为关键工序,对设备稳定性要求近乎苛刻。哪怕极其细微的振动,都可能对晶圆表面质量产生严重影响,进而左右芯片制造的成败。以下为您呈现一个防震基座在半导体晶圆制造设备抛光机上的经典应用案例。 企…...

框架开发与原生开发的权衡:React案例分析(原生JavaScript)

文章目录 框架开发与原生开发的权衡:React案例分析引言框架开发的优势开发效率提升状态管理的便捷性组件复用与生态系统团队协作与规范统一 原生开发的优势性能优化空间学习曲线平缓精细控制与定制化避免版本依赖与迁移成本 实际应用案例分析大型企业应用性能关键型…...

Lua5.4.2常用API整理记录

一、基础函数 1.type(value)​​ 返回值的类型(如 "nil", "number", "string", "table", "function" 等)。 代码测试: a 0 print(type(a)) a nil print(type(a)) a "aaaaaaaa&…...

Python打卡训练营学习记录Day36

仔细回顾一下神经网络到目前的内容,没跟上进度的同学补一下进度。 作业:对之前的信贷项目,利用神经网络训练下,尝试用到目前的知识点让代码更加规范和美观。 import pandas as pd #用于数据处理和分析,可处理表格数…...

### Mac电脑推送文件至Gitee仓库步骤详解

**核心流程及命令说明:** #### 1. **配置全局Git用户信息** bash git config --global user.name "shenguanling" git config --global user.email "3259125968qq.com" - **作用**:设置提交代码时的作者信息&#xff0…...

官方SDK停更后的选择:开源维护的Bugly Unity SDK

腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。 但是,免费版的Unity SDK已经很久不更新了,会有一些问题和特性缺失&#xff…...

什么是智能体agent?

文章目录 什么是智能体agent?最基本的核心思想我们是如何走到今天以及为什么是现在如何从思维上剖析“一个智能体系统”痛苦的教训结论 什么是智能体agent? 原文链接:https://windsurf.com/blog/what-is-an-agent 本文探讨了AI智能体的核心概…...

【多线程】Java 实现方式及其优缺点

以下是 Java 多线程实现方式及其优缺点的详细说明: 一、Java 多线程核心实现方式 1. 继承 Thread 类 public class MyThread extends Thread {Overridepublic void run() {System.out.println("Thread running: " Thread.currentThread().getName());}…...

Obsidian 数据可视化深度实践:用 DataviewJS 与 Charts 插件构建智能日报系统

Obsidian 数据可视化深度实践:用 DataviewJS 与 Charts 插件构建智能日报系统 一、核心架构解析 本系统基于 Obsidian 的 DataviewJS 和 Charts 插件,实现日报数据的自动采集、可视化分析及智能回溯功能(系统架构原理见)。其技术…...

Three.js 海量模型加载性能优化指南

一、性能瓶颈分析 1.1 常见性能杀手 问题类型典型表现影响范围Draw Call 爆炸每帧渲染调用超过1000次GPU 渲染性能内存占用过高浏览器进程内存突破1GB加载速度/崩溃风险模型文件过大单个GLB文件超过50MB网络传输时间几何数据冗余重复模型独立加载CPU/GPU资源浪费 1.2 性能监…...

6.4.3_有向无环图描述表达式

有向无环图: 有向图中不存在环即为有向无环图DAG图,即如下V0->V4->v3->V0或者V4->V1->v4就存在环不是有向无环图,即在一个路径中一个顶点不能出现2次? DAG描述表达式: 算术表达式用树来表示&#xff0…...

力扣第157场双周赛

1. 最大质数子字符串之和 给定一个字符串 s,找出可以由其 子字符串 组成的 3个最大的不同质数 的和。 返回这些质数的 总和 ,如果少于 3 个不同的质数,则返回 所有 不同质数的和。 质数是大于 1 且只有两个因数的自然数:1和它本身…...

青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布

青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布 一、准备工作1. 创建和配置项目2. 编写代码和测试3. 文档注释 二、构建发布版本1. 构建优化后的可执行文件2. 静态链接(可选) 三、发布到 crates.io1. Crates.io核心功能使用方法特点最新动态 2…...

【HarmonyOS Next之旅】DevEco Studio使用指南(二十五) -> 端云一体化开发 -> 业务介绍(二)

目录 1 -> 工作原理 2 -> 约束与限制 2.1 -> 支持的设备 2.2 -> 支持的国家/地区 2.3 -> 支持的签名方式 3 -> 总结 3.1 -> 关键功能与工具 3.2 -> 开发流程 3.3 -> 典型场景与优化 3.4 -> 常见问题与解决 3.5 -> 总结 1 -> 工…...

LLaMA-Factory 微调模型与训练数据量对应关系

在使用LLaMA-Factory的LoRA技术微调1.5B和7B模型时,数据量需求主要取决于任务类型、数据质量以及模型规模。以下是基于现有研究和实践的具体分析: 一、数据量需求的核心影响因素 模型规模与数据量的关系 通常情况下,模型参数越多&#xff08…...

数据库与Redis数据一致性解决方案

在写数据时保证 Redis 和数据库数据一致,可采用以下方案,需根据业务场景权衡选择: 1. 先更新数据库,再更新 Redis 步骤: 写入 / 更新数据库数据。删除或更新 Redis 缓存。适用场景:读多写少,对缓存一致性要求不高(短暂不一致可接受)。风险:若第二步失败,导致缓存与…...

Spring Boot AI 之 Chat Client API 使用大全

ChatClient提供了一套流畅的API用于与AI模型交互,同时支持同步和流式两种编程模型。 流畅API包含构建Prompt组成元素的方法,这些Prompt将作为输入传递给AI模型。从API角度来看,Prompt由一系列消息组成,其中包含指导AI模型输出和行为的指令文本。 AI模型主要处理两类消息: …...

分身空间:手机分身多开工具,轻松实现多账号登录

分身空间是一款功能强大的手机分身多开工具APP,专为需要同时登录多个账号的用户设计。它支持多开各种游戏和软件,让用户可以轻松实现多账号同时在线,提升使用效率和体验。无论是社交软件、游戏还是办公应用,分身空间都能帮助你轻松…...

音视频之视频压缩及数字视频基础概念

系列文章: 1、音视频之视频压缩技术及数字视频综述 一、视频压缩编码技术综述: 1、信息化与视频通信: 什么是信息: 众所周知,人类社会的三大支柱是物质、能量和信息。具体而言,农业现代化的支柱是物质&…...

Ubuntu 24.04部署安装Honeyd蜜罐

🌴 前言 最近有个大作业,里面要求我们部署Hoenyd蜜罐,在网上搜了一通,发现相关的教程竟然少的可怜,即使有比较详细的教程,也是好几年前的了,跟着做一遍报一堆错,无奈之下&#xff0…...

C++复习核心精华

一、内存管理与智能指针 内存管理是C区别于其他高级语言的关键特性,掌握好它就掌握了C的灵魂。 1. 原始指针与内存泄漏 先来看看传统C的内存管理方式: void oldWay() {int* p new int(42); // 分配内存// 如果这里发生异常或提前return&#xff0c…...

Android中获取控件尺寸进阶方案

在Android开发中,很多场景都需要获取控件(View)的宽高信息,比如动态布局调整、动画效果实现等。然而,直接在Activity的onCreate()中调用控件的getWidth()或getHeight()`方法,得到结果却是0,因为控件还没完成布局测量。 本文总结了几种获取控件大小的实用方法,并对各方…...