工具-sqlmap部分参数功能

sqlmap参数使用

前言

这个文章主要是介绍sqlmap的参数,目前的内容并不详细,然后内容基本上是这篇文章的内容,有些坑之后再补。

选项
  • -h help,显示基本帮助信息并退出
  • -hh 显示高级帮助信息并退出
  • -version 显示程序版本程序并退出
  • -v verbose 信息级别:
	0:只显示python错误以及严重信息
	1:同时显示基本信息和警告信息(默认)
	2:同时显示Debug信息
	3:同时显示注入payload
	4:同时显示HTTP请求
	5:同时显示HTTP响应头
	6:同时显示HTTP响应页面
	如果想看到sqlmap发送的测试payload最好的等级是3。
目标

sqlmap探测目标所采用的方式,是直接通过url还是读取文件或是其他。

  • -d direct 直接链接数据库的连接字符串
  • -u url或 -u=url 直接使用url进行测试,通常是测试get类型的注入
  • -l logfile,从Brup或webscarab代理日志文件中分析目标
  • -x sitemapurl,从远程网站地图(sitemapurl.xml)文件来解析目标
  • -m bulkfile,将目标地址保存在文件中,一行为一个URL地址进行批量监测(注意bulkfile要与sqlmap在统一目录)
  • -r requestfile,从文件加载HTTP请求,sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie、POST数据等),请求是HTTPS时需要配合-force-ssl参数来使用,或者可以在Host头后面加上:443
  • -g googledork,从谷歌中加载结果目标URL(只获取前100个结果,需要挂代理)
  • -c configfile,从配置ini文件中加载选项
请求

这些选项可以指定如何连接到目标URL

  • -method=method,强制使用给定的HTTP方法
  • --data=data,通过POST发送数据参数,sqlmap会像检测GET参数一样检测POST的参数。
  • -param-del=PARA,当GET或POST的数据需要用其他字符分割测试参数的时候,需要用此参数。
  • -cookie=COOKIE,HTTP cookieheader的值
  • -load-cookies=???
优化

这些选项可用于优化sqlmap性能

  • -o,打开所有优化开关
  • -predict-output,预测普通查询输出
  • -keep-alive,使用持久HTTP(S)连接
  • -null-connection,获取页面长度
  • -threads=THREADS,当前http(s)最大请求数,默认1
注入

这些选项可用于指定要测试的参数,提供自定义注入有效载荷和可选的篡改脚本

  • -p testparameter,可测试的参数
  • -skip=skip,跳过给定参数的测试
  • -skip-static,跳过测试不显示为动态的参数
  • -param-exclude=..,使用正则表达式排除参数进行测试
  • -dbms=DBMS,强制设定后端的DBMS
  • -dbms-cred=dbms,dbms认证凭证(user:password)
  • -os=os,强制设定后端的dbms操作系统的值
  • -invalid-bignum,使用大数字使值无效
  • -invalid-logical,使用逻辑操作使值无效
  • -invalid-string,使用随机字符串使值无效
  • -no-cast,关闭有效载荷铸造机制
  • -no-escape,关闭字符串逃逸机制
  • -prefix=PREFIX,注入payload字符串前缀
  • -suffix=SUFFIX,注入payload字符串后缀
  • -tamper=TAMPER,使用给定的脚本更改注入数据
检测

这些选项可以用来指定sql盲注时如何解析和比较HTTP响应页面的内容。

  • -level=LEVEL,执行测试等级(1-5,默认为1,当level值为2或以上时,sqlmap会尝试注入cookie)
  • -risk=RISK,执行测试风险等级(0-3,默认为1,2会增加基于事件的测试语句,3会增加or语句的sql注入测试,有些时候,例如在update语句中,注入一个or的测试语句,可能会导致整个表更新,会造成很大的风险,测试语句可在xml/payloads.xml中找到。
  • string=STRING,查询有效时在页面匹配字符串
  • -not-string=not..,当查询求值为无效时匹配的字符串
  • -regexp=REGEXP,查询有效时,在页面匹配正则表达式
    • code=CODE,当查询求值为True时匹配的HTTP代码
  • -text-only,仅基于文本内容比较网页
  • -titles,仅根据他们的标题进行比较
技巧

这些选项用于调整具体的SQL注入测试。

  • -technique=TECH,SQL注入技术测试,默认beust
  • -time-sec=TIMESEC,dbms响应的延迟时间
  • -union-cols=UCOLS,定列范围用于测试union查询注入
  • -union-char=UCHAR,暴力猜解列的字符数
  • -union-from=UFROM,SQL注入union查询使用的格式
  • -dns-domain=DNS,dns泄露攻击使用的域名
  • -second-order=s..,url搜索产生的结果页面
指纹

-f,fingerprint,执行广泛的DBMS版本指纹检查

枚举

这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。还可以运行自定义的SQL语句。

  • -a all,获取所有信息
  • -b banner,获取数据库管理系统的标识
  • -current-user,获取数据库管理系统当前用户
  • -current-db,获取数据库管理系统当前数据库
  • -hostname,获取数据库服务器的主机名称
  • -is-dba,检测dbms当前用户是否是dbs
  • -users,枚举数据库管理系统用户
  • -passwords,枚举数据库管理系统用户密码哈希
  • -privileges,枚举数据库管理系统用户的权限
  • -roles,枚举数据库管理系统用户的角色
  • -dbs,枚举数据库管理系统数据库
  • -tables,枚举的dbms数据库中的表
  • -columns,枚举dbms数据库表列
  • -schema,枚举数据库架构
  • -count,检索表的项目数,有时候用户只想获取表中的数据个数而不是具体的内容,那么就可以使用这个参数:sqlmap.py -u url -count -D testdb
  • -dump,转储数据库表项
  • -dump-all,转储数据库所有项
  • -search,搜索列(s),表(s)和/或数据库名称(s)
  • -comments,获取dbms注释
  • -D DB,指定要进行枚举的数据库名
  • -T tbl,指定要进行枚举的数据表名
  • -C COL,指定要枚举的列
  • -X EXCLUDECOL,DBMS数据库表不进行枚举
  • -U USER,用来进行枚举数据库用户
  • -exclude-sysdbs,枚举表时排除系统数据库
  • -pivot-column-p???
  • -where=DUMPWHERE Use WHERE condition while table dumping
  • -start=LIMITSTART,获取第一个查询输出数据位置
  • -stop=LIMITSTOP,获取最后查询的输出数据
  • -first=FIRSTCHAR,第一个查询输出字的字符获取
  • -last=LASTCHAR,最后查询的输出字字符获取
  • -sql-query=QUERY,执行SQL语句
  • -sql-shell,提示交互式SQL的shell
  • -sql-file=SQLFILE,要执行的SQL文件
暴力

这些选项用来进行暴力检查

  • -common-tables,检查存在共同表
  • -common-columns,检查存在共同列
用户自定义函数注入

这些选项可以用来创建用户自定义函数

  • -udf-inject,注入用户自定义函数
  • -shared-lib=SHLIB,共享库的本地路径
访问文件系统

这些选项可以被用来访问后端数据库管理系统的底层文件系统。

  • -file-read=RFILE,从后端的数据库管理系统文件系统读取文件,SQL server2005中读取二进制文件example.exe:`python sqlmap.py -u "http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther" -file-read "C:/example.exe" -v 1
  • -file-write=WFILE,编辑后端的数据库管理系统文件系统上的本地文件
  • -file-dest=DFILE,后端的数据库管理系统写入文件的绝对路径
    在kali中将/software/nc.exe文件上传到C:/windows/Temp下:python sqlmap.py -u "http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther" -file-write "/software/nc.exe" -file-dest "C:/windows/temp/nc.exe" -v 1
操作系统访问

可以用于访问后端数据库管理系统的底层操作系统。

  • -os-cmd=OSCMD,执行操作系统命令
  • -os-shell,交互式操作系统shell
  • -os-pwn,获取一个OOBshell,meterpreter或VNC
  • -os-smbrelay,一键获取一个OBBshell,meterpreter或VNC
  • -os-bof,存储过程缓冲区溢出利用
  • -priv-esc,数据库进程用户权限提升
  • -msf-path=MSPPATH,MetasploitFramework本地的安装路径
  • -tmp-path=TMPPATH,远程临时文件目录的绝对路径
    Linux查看当前用户命令:`python sqlmap.py -u 'http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1' -os-cmd id -v 1
windows注册表访问

这些选项可以被用来访问后端数据库管理系统Windows注册表。

  • -reg-red,读取一个Windows注册表项值
  • -reg-add,添加一个Windows注册表项值数据
  • -reg-del,删除Windows注册表键值
  • -reg-key=REGKEY,Windows注册表键
  • -reg-value=REGVAL,Windows注册表项值
  • -reg-data=REGDATA,Windows注册表键值数据
  • -reg-type=REGTYPE,Windows注册表项值类型
一般选项

主要用来设置一些一般的工作参数。

  • -s SESSIONFILE,保存和恢复检索会话文件的所有数据。
  • -t TRAFFICFILE,记录所有HTTP流量到一个文本文件中。
  • -batch,不询问用户输入,使用所有默认配置
  • -binary-fields=..,结果字段具有二进制值(e.g."digest")
  • -charset=CHARSET,强制字符编码
  • -crawl=CRAWLDEPTH,从目标URL爬行网站
  • -crawl-exclude=..,正则表达式从爬行页中排除
  • -csv-del=CSVDEL,限定使用CSV输出
  • -dump-format=DU..,转储数据格式(CSV(default),HTML or SQLITE)
  • -eta,显示每个输出预计到达时间
  • -flush-session,刷新当前目标的会话文件
  • -forms,解析和测试目标URL表单
  • -fresh-queries,忽略在会话文件中存储的查询结果
  • -hex,使用DBMS Hex函数检索数据
  • -output-dir=OUT..,自定义输出目录路径
  • -parse-errors,解析和显示响应数据库错误信息
  • -save=SAVECONFIG,保存选项到INI配置文件
  • -scope=SCOPE,从提供的代理日志中使用正则表达式过滤目标
  • -test-filter=TE..,选择测试的有效载荷和/或标题
  • -test-skip=TEST..,跳过实验载荷和/或标题
  • -update,更新sqlmap
其他
  • -z MNEMONICS,使用短记忆法
  • -alert=ALERT,发现SQL注入时,运行主机操作系统命令
  • -answers=ANSWERS,当希望sqlmap提出输入时,自动输入自己想输入的答案,例如:python sqlmap.py -u "http://192.168.22.128/get_int.php?id=1" -technique=E -answers="extending=N" -batch
  • -beep,发现sql注入时,发出蜂鸣声。
  • -cleanup,清除sqlmap注入时在DBMS中产生的udf与表
  • -dependencies????
  • -disable-coloring,默认彩色输出,禁掉彩色输出
  • -gpage=GOOGLEPAGE,使用前100个URL地址作为注入测试,结合此选项,可以指定页面的URL测试
  • -identify-waf,进行WAF/IDS/IPS保护测试,目前大约支持30钟产品
  • -mobile,有时服务端只接受移动端访问,此时可以设定一个手机的User-Agent来模仿手机登录
  • offline,???
  • purge-output,从输出目录安全删除所有内容,有时需要删除结果文件,而不被恢复,可以使用此参数,原有文件将会被随机的一些文件覆盖。
  • -skip-waf,跳过WAF/IPS/IDS启发式检测保护
  • -smart,进行积极的启发式测试,快速判断为注入的报错点进行注入
  • -sqlmap-shell,互动提示一个sqlmapshell
  • -tmp-dir=TMPDIR,用户存储临时文件的本地目录
  • -web-root=WEBROOT,web服务器的文档跟目录(e.g.‘/var/www')
  • -wizard,新手用户简单的向导使用,可以一步一步教你如何对目标进行注入
原文地址:https://www.cnblogs.com/ahtoh/p/12640137.html