SQLMap-01

0x01 指定目标

-d:直接连接数据库

①当数据库系统为:MySQL,Oracle,Microsoft Server,PostgreSQL
DBMS://user:password@DBMS_ip:DBMS_port/database_name
②当数据库系统为:SQLite,Microsoft Access
DBMS://database_filepath
例:

sqlmap -d "MYSQL://root:root@192.168.227.1:3306/security"

sqlmap -d "MYSQL://root:root@192.168.227.1:3306/security" --dbs

-u 指定目标url
sqlmap -u "http://192.168.227.1/sqli-labs-master/Less-1/?id=1" 
-m 从文本文件中解析目标

-u只能指定一个url,-m可以指定多个url,将多个url按行保存在文本文件中
创建1.txt文件,保存多个url

sqlmap -m /root/1.txt

不断回车,测试每个url

-r 测试保存的http请求

将http请求保存到文本文件中

sqlmap -r get.txt

0x02 指定级别

--level

总共有1-5级,默认为1,级别越高检测的越多
检测级别高于2可以检测cookie注入
检测级别高于3可以检测User-Agent和Referer注入

0x03 输出级别

-v

输出级别从0-6,级别越高输出的信息越多,默认为1

0x03 HTTP请求

--method

sqlmap自动判断GET,POST,有些url需要特定请求才能访问

--method-PUT
--data

指定POST的参数提交。

sqlmap -u "http://192.168.227.1/sqli-labs-master/Less-11" --data="uname=1&npasswd=1"
--param-del

指定分割符

sqlmap -u "http://192.168.227.1/sqli-labs-master/Less-11" --data="uname=1;passwd=1" --param-del=";"

使用cookie参数的情况:
要测试的页面需要登录,使用cookie识别登录状态
要检测是否有cookie注入
若是检测是否有cookie注入,需要将level设置为2以上

①需要登录,将网站中cookie信息粘贴至cookie后

sqlmap -u  "url" --cookie "NAME=11"
User-Agent

--user-agent 指定一个代理(level3)
--random-agent 随机指定一个代理(level3)
--host 指定一个host值(level5)
--referer 指定Referer值(level3)

身份认证

--auth-type(Basic,Digest,NTLM三种类型)
--auth-cred (格式:"username:password")

sqlmap -u "url" --auth-type Basic --auth-cred "root:root"
忽略

--ignore-403 忽略403

延迟

--delay 1 延迟1秒,反之频繁发送请求,导致ip被禁

超时

--timeout 10 超时时间默认10秒

0x04 参数优化

-o 相当于同时设置,--keep-alive,--null-connection,--threads=3

http并发

--threads=5 不超过10

指定测试参数

-p,--skip
-p "id,Referer" 当level3之后,会测试很多,-p指定只测试id和Referer
--skip "id,user-agent" 跳过id,user-aget不测试

0x05 注入技术

--technique 默认使用所有技术
  • B:boolean-based blind(布尔盲注)
  • E:Error-based(报错注入)
  • U:Union query-based(联合查询注入)
  • S:Stacked queries(多语句查询)
  • T:Time-based blind(时间盲注)
  • S:Inline queries(嵌套查询注入)
--technique BEUSTS 
#访问文件系统或注册表要添加S
指纹

-f或--fingerprint 指纹识别
-b或--banner 详细指纹识别结果

暴力破解

--common-tables

当用--tables不能列出数据库表名时,使用暴力破解
使用范围:
mysql版本<5.0,没有information_schema表
access的MSysObjects表默认不可读
数据库应用权限过低无法读取表名

--common-columns 暴力破解列名
-b或--banner列举数据库管理系统信息
--current-user 列举当前用户
--current-db 列举当前数据库
--hostname 当前主机名
--is-dba 是否为管理员
--users 列举系统中的用户
--passwords 列举并破解系统中密码hash值
--priviliges 列举用户的权限
--roles 列举系统的用户角色
--dbs 列举所有数据库
--tables 列举所有表
--columns 列举所有列
--dump 列举所有数据
--dump-all 列举所有数据库中所有表的所有数据
--output-dir 指定输出目录
--identify-waf 检测waf

参考链接:
《sqlmap中文手册》

原文地址:https://www.cnblogs.com/observering/p/13517860.html