Sqlmap详解

(1)Target(指定扫描目标)
–version 查看sqlmap版本

1、-u + url (get方法提交参数)

2、-p + 指定参数(使–level失效)

3、-f (footprint 指纹) 注入结束后,查看数据库指纹信息(如:数据库版本)

4、–users 查询数据库账号信息

5、-- banner 查询数据库据库信息

6、–dbs 查询目标有哪些数据库

7、–schema 查看原数据库

8、-a 查询本数据库所有信息等一系列操作

9、-d 把sqlmap作为客户端直接连接服务端数据库(需要有账号密码)例如命令:sqlmap -d“mysql://user:[email protected]:3306/dvwa”-f --users

10、-m 如果要扫描多个url,保存成txt文件,使用-m扫描

11、sqlmap.py -g “inurl:”.php?id=1"" 扫描google搜索结果,\用来标识"“只代表”"

12、-r + 文件名 (post方法提交参数)(使用gedit编辑文件)

13、-l +文件名 (post提交burp里的log文件options->miac->logging->proxy->Requests)

14、–force-ssl (https通信需加参数)

15、-c (扫描配置文件.conf)

(2)Request(请求)
1、 --data=“参数” (此参数为post中提交的参数,这样可以使用-u来扫描post方法,get方法也可以使用)

2、–param-del (如果服务器不是使用默认的&符号来分割多个参数赋值的,就要用这个参数标注,例如:–param-del=";")

3、–cookie="" (如果web页面需要登陆,使用这个参数包含cookie)

4、–level 2(level默认值为1,但1不会扫描cookie,只有当level>=2时,才会扫描cookie)

5、–user-agent =“aaaaaaaaa”(自定义user-agent,防止被发现)

6、–random-agent (字典爆破user-agent,扫描时user-agent会包含sqlmap的信息,容易被发现了从而被过滤,使用此参数可以随机使用字典中的正常的user-agent)sqlmap检查user-agent中注入点需要level>=3

7、–host=“aaaaaaaaaa”(自定义host头)sqlmap检查host头中注入点需要level>=5

8、–referer=“aaaaaaaaaa” (指定referer内容)sqlmap检查referer头中注入点需要level>=3

9、–headers=“Host:www.abc.com\n User-Agent:aaaaaaaaaaa\n …”(包含多个http头,http头之间必须使用\n换行,注意http头大小写)

10、–method=GET/POST (限定使用的方法,有些服务器会限制使用的方法,SQLmap默认先试用get请求,有可能被服务器发现)

11、–auth-type Basic/Digest/NTML --auth-cred"user:password"(基于http协议的身份验证需加参数)

12、–proxy=“http://127.0.0.1:8087” --porxy-cred=“user:password”(挂代理,发送到goagent代理软件,goagent在8087端口)

13、–delay=" "(设置每次访问延迟时间,防止被发现,默认无延迟,以秒为单位)

14、–timeout(设置请求超时时间,默认30秒)

15、–retries(设置超时重试次数,默认3次)

16、–randomize=“id”(可以随机设置url中参数的值(例如id),长度,类型会保持不变,数值随机)

17、–scope (过滤burp日志内容,例如:sqlmap -l burp.log --scope="(www)&.target.(com|net|org)"意思是扫描:www.target.com/net/org)

18、–safe-url / --safe-freq(检测和盲注时会有大量的失败请求,服务器端可能会销毁session,每发送–safe-freq次注入请求,发送一次正常请求)

19、–skip-urlencode (默认get方法会对传输内容进行编码,使用此参数后会用原始字符提交)

20、–eval="…"(后面加python脚本,比如要更改参数的值为自定义的值,就需要写python脚本,然后使用此参数让sqlmap运行脚本,脚本直接写在参数后面)

(3)Optimization(优化)
1、–predict-output(根据检测方法,比对返回值和统计表内容,提高检测效率)不可以和–threads同时使用。

2、–keep-alive)(使用http(s)长连接,性能好)不可以和–proxy同时使用。可以避免异常链接很多。

3、–null-connection(只获取页面的大小值,而非页面具体内容,通常用于盲注判断真/假,降低带宽)不可以和–text-only(基于页面内容判断真/假)同时使用。

4、-o (开启1、2、3性能参数)

5、–threads(线程数,默认为1,每次发送一个请求,建议不超过10)不可以和–predict-output同时使用。

(4)Injection
1、–skip(排除参数)

2、–dbms(指定数据库扫描,例如:–dbms=“mysql”)

3、–os(指定目标操作系统)

4、–invalid-bignum / --invalid-logical(使参数取大值,使参数取值失效,默认sqlmap会取负值,logical是使用布尔判断)

5、–no-escape(payload里用单引号界定字符串时,sqlmap会使用char()编码逃过过滤(sqlmap默认方式),如果不想让sqlmap转换,就是此参数,sqlmap会原样提交)

6、–prefix/–suffix(前缀和后缀,当必须需要前面也闭合后面也闭合时使用)例如:–prefix"’)" --suffix" and (‘a’=‘a" 闭合了:(’ ')

7、–tamper(混淆版本,用于绕过应用层过滤,IPS、WAF)

(5)detection(检测)
1、–level(1-5级 默认1级)

2、–risk(1-4级 默认1级,一级无害,risk升高可能造成数据被篡改等风险)

3、–string,–not-string,–regexp,–code,–text-only,–titles(页面比较,依据返回页面内容的变化判断真假逻辑,但有的页面内容随时间变化,此时认为制定标识判断依据)

(6)techniques(检测sql注入漏洞存在的技术类型)
1、B:E:U:S:(文件系统、操作系统、注册表必须用)T:(默认使用全部技术)

2、–time-sec(基于时间的注入检测sleep时间,默认五秒)

3、–union-cols(默认联合查询1-10列,随着level增加最多检查50列、–union-clos 6-9)

4、–union-char(默认查询默认使用null,极端情况下null可能失败,可以自定义数值(union 1,2,默认情况下1,2位是null),–union-char 123)

5、–second-order(在一个页面上注入结果,从另一个页面上体现出来,如果当前页面看不到结果,可以指定反馈结果的页面)

(7)fingerprint(指纹信息)
1、-f,–fingerprint,-b,–banner(数据库管理系统指纹信息,DBMS、操作系统、架构、补丁)

(8)enumeration(枚举,数据提取)
1、–current-user(查当前数据库管理系统账号)

2、–current-db(查当前数据库名称)

3、–hostname(查机器主句名)

4、–users(查数据库管理系统所有用户账号)

5、–privileges -U (username)/CU(当前账号)(账号权限)

6、–roles(角色)

7、–dbs(查询数据库名)

8、-D dvwa(指定数据库)–tables(查询dvwa中的表)
-T users(指定表)–columns(查询users中的列)
-C user(指定列)–dump(查询数据内容)–start 3 --stop 4(指定查询3-4行)注:数据库版本必须是mysql5.0以上,否则需暴力破解

9、–exclude-sysdbs(排除系统库)

10、–count(记数,查看表中有几条记录)

11、–schema(原数据/表结构)–batch(让我选的全跳过,选默认选项)

12、–sql-query=“select * from users”(自己编辑语句)

(9)brute force(暴力破解(没有权限时,或版本低))
1、–common-tables(暴力破解表名)

2、–common-column(破解表的列,默认当前表)

(10).UDF injection(用户自定义函数,实现服务器执行命令,读取数据等)

(11)file system(文件系统访问)
1、–file-read="/etc/passwd"(读取文件)

2、–file-write=“shell.php” --file-dest="/tmp/shell.php"(写文件把本地的shell.php写到服务器上)

(12)OS(操作系统访问)
1、–os-cmd id(cmd执行id)

2、–os-shell(拿到shell)

3、–sql-shell(拿到shell)

(13)windows registory(win注册表操作)
1、–reg-read(读键值)

2、–reg-add --reg-del --reg-key --reg-value --reg-data --reg-type

(14)general(一般性参数)
1、-s (指定文件保存位置)

2、-t(记录sqlmap流量文件)

3、–charset(强制字符编码传输数据)

4、–crawi(从起始位置开始爬网,–crawl=3,爬三层)

5、–flush-session(清楚保存的数据)

6、–force-ssl(访问https网站)

(15)miscellaneous
1、-z (助记符)可以简写参数

2、–check-waf(检测是否有WAF/IPS/IDS)

3、–hpp(绕过WAF/IPS/IDS的有效方法)

4、–idectify-waf(彻底的WAF/IPS/IDS检查)

5、–mobile(模拟智能手机的user-agent)

6、–wizard(向导,给提示)

你可能感兴趣的:(sqlmap)