sqlmap用户手册[续]

《sqlmap用户手册》其实只写了大部分可能用到的参数,还有些并未写,这次补上~ 顺便注:文中部分是– 而不是—— (这个不是我不愿意修改,而是网站系统的问题,实在抱歉,请大家在复制语句之后手工修改。:) )

ps:其实看到zone里很多问sqlmap的问题在通读看完那篇文章后都能解决。可惜啊,现在的人通读看文章的耐心都没有了,遇到了哪个问题就想起针对这个问题求助,却不知道仔细看完之后,以后可以省多少时间来求助,吐槽完毕,正文开始:

对Windows注册表操作


当数据库为MySQL,PostgreSQL或Microsoft SQL Server,并且当前web应用支持堆查询。 当然,当前连接数据库的用户也需要有权限操作注册表。

 

读取注册表值

参数:–reg-read

写入注册表值

参数:–reg-add

删除注册表值

参数:–reg-del

注册表辅助选项

参数:–reg-key,–reg-value,–reg-data,–reg-type

需要配合之前三个参数使用,例子:

 

常规参数


从sqlite中读取session

参数:-s

sqlmap对每一个目标都会在output路径下自动生成一个SQLite文件,如果用户想指定读取的文件路径,就可以用这个参数。

保存HTTP(S)日志

参数:-t

这个参数需要跟一个文本文件,sqlmap会把HTTP(S)请求与响应的日志保存到那里。

非交互模式

参数:–batch

用此参数,不需要用户输入,将会使用sqlmap提示的默认值一直运行下去。

强制使用字符编码

参数:–charset

不使用sqlmap自动识别的(如HTTP头中的Content-Type)字符编码,强制指定字符编码如:

爬行网站URL

参数:–crawl

sqlmap可以收集潜在的可能存在漏洞的连接,后面跟的参数是爬行的深度。

例子:

 

规定输出到CSV中的分隔符

参数:–csv-del

当dump保存为CSV格式时(–dump-format=CSV),需要一个分隔符默认是逗号,用户也可以改为别的 如:

 

DBMS身份验证

参数:–dbms-cred

某些时候当前用户的权限不够,做某些操作会失败,如果知道高权限用户的密码,可以使用此参数,有的数据库有专门的运行机制,可以切换用户如Microsoft SQL Server的OPENROWSET函数

定义dump数据的格式

参数:–dump-format

输出的格式可定义为:CSV,HTML,SQLITE

预估完成时间

参数:–eta

可以计算注入数据的剩余时间。

例如Oracle的布尔型盲注:

 

然后:

 

sqlmap先输出长度,预计完成时间,显示百分比,输出字符

刷新session文件

参数:–flush-session

如果不想用之前缓存这个目标的session文件,可以使用这个参数。 会清空之前的session,重新测试该目标。

自动获取form表单测试

参数:–forms

如果你想对一个页面的form表单中的参数测试,可以使用-r参数读取请求文件,或者通过–data参数测试。 但是当使用–forms参数时,sqlmap会自动从-u中的url获取页面中的表单进行测试。

忽略在会话文件中存储的查询结果

参数:–fresh-queries

忽略session文件保存的查询,重新查询。

使用DBMS的hex函数

参数:–hex

有时候字符编码的问题,可能导致数据丢失,可以使用hex函数来避免:

针对PostgreSQL例子:

 

自定义输出的路径

参数:–output-dir

sqlmap默认把session文件跟结果文件保存在output文件夹下,用此参数可自定义输出路径 例如:–output-dir=/tmp

从响应中获取DBMS的错误信息

参数:–parse-errors

有时目标没有关闭DBMS的报错,当数据库语句错误时,会输出错误语句,用词参数可以会显出错误信息。

 

其他的一些参数


使用参数缩写

参数:-z

有使用参数太长太复杂,可以使用缩写模式。 例如:

 

可以写成:

 

还有:

 

可以写成:

 

成功SQL注入时警告

参数:–alert

设定会发的答案

参数:–answers

当希望sqlmap提出输入时,自动输入自己想要的答案可以使用此参数: 例子:

 

发现SQL注入时发出蜂鸣声

参数:–beep

发现sql注入时,发出蜂鸣声。

启发式检测WAF/IPS/IDS保护

参数:–check-waf

WAF/IPS/IDS保护可能会对sqlmap造成很大的困扰,如果怀疑目标有此防护的话,可以使用此参数来测试。 sqlmap将会使用一个不存在的参数来注入测试

例如:

如果有保护的话可能返回结果会不同。

清理sqlmap的UDF(s)和表

参数:–cleanup

清除sqlmap注入时产生的udf与表。

禁用彩色输出

参数:–desable-coloring

sqlmap默认彩色输出,可以使用此参数,禁掉彩色输出。

使用指定的Google结果页面

参数:–gpage

默认sqlmap使用前100个URL地址作为注入测试,结合此选项,可以指定页面的URL测试。

使用HTTP参数污染

参数:-hpp

HTTP参数污染可能会绕过WAF/IPS/IDS保护机制,这个对ASP/IIS与ASP.NET/IIS平台很有效。

测试WAF/IPS/IDS保护

参数:–identify-waf

sqlmap可以尝试找出WAF/IPS/IDS保护,方便用户做出绕过方式。目前大约支持30种产品的识别。

例如对一个受到ModSecurity WAF保护的MySQL例子:

 

模仿智能手机

参数:–mobile

有时服务端只接收移动端的访问,此时可以设定一个手机的User-Agent来模仿手机登陆。

例如:

 

安全的删除output目录的文件

参数:–purge-output

有时需要删除结果文件,而不被恢复,可以使用此参数,原有文件将会被随机的一些文件覆盖。

例如:

 

启发式判断注入

参数:–smart

有时对目标非常多的URL进行测试,为节省时间,只对能够快速判断为注入的报错点进行注入,可以使用此参数。

例子:

 

初级用户向导参数

参数:–wizard 面向初级用户的参数,可以一步一步教你如何输入针对目标注入。

link:http://drops.wooyun.org/tips/401

本文由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处。