sql注入学习笔记(2)--sqlmap参数介绍

Detection探测

这些选项可用于自定义探测阶段
探测级别

 --level=     要执行的测试级别(1-5,默认为1),数值越大,探测越详细
检查cookie当中的注入点level >=2
检查user-agent,Referer的注入点Level >= 3
检查host的注入点 Level =5
/usr/share/sqlmap/data/xml/payloads
这个目录下面有详细的payload
 --risk=        要执行的测试的风险(1-3,默认为1)
 risk升高可能造成数据的纂改

人为标识真假

--string=   当查询计算为真时匹配的字符串
--not-string=  当查询被计算为False时匹配的字符串
 --text-only         仅根据文本内容比较页面
 --titles           仅根据标题比较页面
 --code=        当查询被计算为True时匹配的HTTP代码
 --regexp=     正则表达式在查询评估为True时匹配,这个可能会出现在比如说true返回的内容可能有几种,通过正则匹配
--smart            只有在积极启发式的情况下才执行彻底的测试,当有大量检测目标时,只选择基于错误的检测结果

Techniques技巧

这些选项可用于调整特定SQL注入技术的测试

--technique=  使用的SQL注入技术(默认为“BEUSTQ”)
B:bool基于布尔,E:error基于错误,U:union联合查询,S:Stacked堆叠查询,T:time基于时间,Q:inline_query内联查询
--time-sec=   基于时间的注入检测,延迟数据库响应的秒数(默认为5)
--union-cols=  测试联合查询SQL注入的列的范围,默认是1-10列,随着level提高可以到50列,如果我们只想查6-9,就用--union-cols 6-9
--union-char=  用于强制列数的字符,union查询默认使用null,有时候null会失败,可以手动指定比如说123这些无关紧要
--union-from=  表中使用的UNION查询的SQL注入
有些情况下在联合查询中必须指定一个有效和可访问的表名,否则联合查询会执行失败,如在微软的Access中,也就是说,某些DBMS不支持“SELECT 1,2;”这样的语句,SELECT必须有FROM)用此参数指定这个表名,如:“–union-from=users”

下面这三种用的会少一点,了解一下,如果在特殊情况下可能会用上

--second-url=  结果页面URL搜索二阶响应,有些情况下可能注入的结果会在另一个页面显示,这时就需要指定其他的页面
-second-req=  从文件加载二级HTTP请求
--dns-domain=  域名用于DNS泄露攻击,攻击者控制了某个dns服务器,可以提高榨取数据的速度

Brute force暴力

这些选项可用于运行强制检查

--common-tables    检查常见表的存在性
--common-columns     检查常见索引的存在性
--common-files       检查常见文件的存在性

Optimization优化

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

--predict-output    预测常见查询输出,根据检测方法,比较返回值和统计表内容,不断缩小检测范围,提高检测效率,与--threads参数不兼容,比如说我们通过查询结果可以判断出数据库是mysql,那么就不会继续去检测其他类型了(依据是/usr/share/sqlmap/data/txt/common-outputs.txt)
--keep-alive        使用持续HTTP(s)连接,性能好,与proxy不兼容
--null-connection  检索页面长度,而不需要实际的HTTP响应体,可以降低网络带宽消耗
--threads=  最大并发HTTP请求数(默认为1)
-o                打开所有优化开关

个人比较推荐使用predict这个参数,其他的可以看情况使用

Enumeration枚举类型

这类选项可用于枚举表中包含的后端数据库管理系统信息、结构和数据

-b  --banner       检索数据库管理系统的版本
--current-user     检索数据库管理系统的当前用户,比如说root,这个用户是指root@localhost里面的这个root
--current-db        当前使用的数据库,比如说library什么的
--hostname          主机名,比如说我们的metaspolitable2
--is-dba            dba(database administrator)判断当前的用户是不是管理员=
--users             枚举数据库的所有用户
--passwords         枚举数据库用户的密码hash
--privileges       枚举数据库用户的权限,也可以针对一个用户进行枚举 --privileges -U username
--roles            枚举数据库用户的角色(这个如果学过数据库应该可以理解,权限和角色的分配)
--dbs              枚举所有的数据库
--tables            枚举数据库下面的表
--columns          枚举表里面的索引
-D               指定数据库的枚举
-T              指定表的枚举
-C              指定索引的枚举
-U             指定用户枚举
--exclude-sysdbs    枚举表时要排除DBMS系统数据库
--count            检索表的项数
--dump             爆DBMS数据库表项
--dump-all          爆所有DBMS数据库表项
--search            搜索列,表和/或数据库名称
--comments          在枚举期间检查DBMS注释
--statements        检索在DBMS上运行的SQL语句
-X        不枚举的DBMS数据库标识符
--pivot-column=   主列名称
--schema           列举DBMSschema
--where= 在条件下,dump表里面的数据
--start= 首先转储要检索的表条目
--stop=   要检索的最后一个转储表条目
--first=   首先查询输出要检索的字元
--last=   最后一个查询输出要检索的字元
--sql-query=        要执行的SQL语句
--sql-shell         交互式SQL shell的提示符
--sql-file=  执行给定文件中的SQL语句
-a, --all          检索所有

Injection注入

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

-p     可测试的参数,这个可以手动指定我们要测试的注入点,有的web可能在host,cookie,user-agent等存在注入点,我们可以通过这个选型进行手动指定 
比如说
-p "user-agent", 这样可以避免在level为1下检测不到这些注入点
--skip=         跳过给定参数的测试,跟上面的刚好是相反的,用法相同
--skip-static      跳过看起来不是动态的测试参数
--dbms=            手动指定DBMS类型,比如说--dbms="mysql"
--os=               手动指定操作系统的类型,比如说--os="linux"
--dbms-cred=        DBMS身份验证凭证(user:password)
--invalid-bignum    使用大的数字使值无效
--invalid-logical   使用逻辑操作使值无效
--invalid-string   使用随机字符串使值无效
通常sqlmap使用负值比如说id=-13使参数取值失效,当然也可以修改为以上几种方式
--no-cast           在检索结果时Sqlmap会将所有输入转换为字符串类型,若遇到空值(NULL)则将其替换为空白字符
但是在老版本的Mysql中这样做会导致数据检索出现问题,因此添加了“–no-cast”来告诉Sqlmap不要这样做
--no-escape        关闭字符串转义机制
--prefix=PREFIX    注入有效载荷前缀字符串
--suffix=SUFFIX     注入有效负载后缀字符串
这两个主要是应对一些个别的应用,有时候可能查询语句特别奇怪,sqlmap可能注入的payload无法正常使用,需要我们添加一些内容来使payload正常执行
--tamper=   使用给定的脚本篡改注入数据
/usr/share/sqlmap/tamper这个目录下有一系列混淆脚本,可以自行选择使用

下面这两个参数我也不是很理解…网上也没有详细的说明

--param-exclude=  RRegexp从测试中排除参数(例如。“ses”)
--param-filter=  按位置选择可测试参数(例如:"POST")

猜你喜欢

转载自blog.csdn.net/azraelxuemo/article/details/107085494