0


sqlmap使用教程

sqlmap是一个自动化的SQL注入工具,主要功能是扫描、发现,并利用给定url的SQL注入漏洞。

sqlmap基础使用

1、判断是否存在注入

sqlmap.py -u url 

(如果注入点后面的参数大于等于两个,需要加双引号)

2、判断文本中的请求是否存在注入

Sqlmap.py -r desktop/1.txt 

一般在存在cookies注入的情况下使用

3、查询当前用户下的所有数据库

sqlmap.py -u url --dbs

确定网站存在注入后,用于查询当前用户下的所有数据库。如果当前用户有权限读取包含所有数据库列表信息的表,使用该命令就可以列出所有相关数据库。

4、获取数据库中的表名

sqlmap.py -u “url” -D dkeye(具体数据库) --tables

如果不加入-D来指定某一个数据库,那么会列出数据库中的所有的表。继续注入时缩写成—T,在某表中继续查询

5、获取表中的字段名

sqlmap.py -u “url” -D dkeye -T user_info(具体表名) --columns 

查询完表名后,查询该表中的字段名,在后续的注入中,—columns缩写成-C

6、获取字段内容

sqlmap.py -u “url” -D dkeye -T user_info(具体表名) -C usrname password(具体字段) --dump

7、获取数据库所有用户

sqlmap.py -u url --users

列出数据库所有用户,如果当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出所有管理用户。

8、获取数据库用户的密码

sqlmap.py -u url --passwords

如果当前用户有读取包含用户密码的权限,sqlmap会先例举出用户,然后列出hash,并尝试破解。

9、获取当前网站数据库的名称

sqlmap.py -u url --curerent-db

使用该命令可以列出当前网站使用的数据库

10、获取当前网站数据库的用户名称

sqlmap.py -u url --current-user 

使用该命令可以列出当前网站使用的数据库用户

SQLMap进阶:参数讲解

1、--level 5: 探测等级

参数 -- level 指需要执行的测试等级,一共有5个等级(1-5),可以不加level。默认是1。
http cookies在level为2时就会测试, user-Agent/Referer在level为3时就会测试。

2、--is-dba:当前用户是否为管理权限

sqlmap.py -u url --is-dba

如果是数据库管理员账户,会返回true

3、--roles:列出数据库管理员的角色

该命令仅适用于数据库时oracle时

4、--referer:http referer头

sqlmap可以在请求中伪造http中的referer,当--level参数设定为3或者3以上时,会尝试对referer进行注入。可以通过referer的命令来欺骗,比如--referer http://www.baidu.com

5、--sql-shell运行自定义的sql语句

该命令被用于执行指定的sql语句
shell来指定语句

sqlmap.py -u url --sql-shell

6、--os-cmd,--os-shell:运行任意操作系统的命令

7、--fire-read:从数据库服务器中读取文件

该命令用于读取执行文件

sqlmap.py -u url \--file-read "c:/examplr.exe" -v 1

8、 --fire-write --file-dest:上传文件到数据库服务器中

写入本地文件到服务器中,如果使用的数据库为mysql、postgresql、microsoft sql server ,并且当前用户有权限使用特定的函数时,上传的文件可以是文本,也可以是二进制文件。

SQLMap自带绕过脚本tamper

sqlmap在默认情况下除了使用CHAR()函数防止出现单引号,没有对注入的数据进行修改。我们可以通过--tamper参数对数据作修改来绕过WAF等设备
命令方式:

sqlmap.py XXXXXX --tamper “模块名”

在日常使用中我们可以用参数--identify-waf进行检测

一些常用的tamper脚本:

apostrophemask.py 过滤单引号,把单引号换为UTF-8

base64encode.py 替换为base64编码

multiplespaces.py 围绕sql关键字添加多个空格

space2plus.py 用+来替换空格

nonrecursivereplacement.py 用双重语句替代预定义的sql关键字

。。。。。。

tamper脚本过多,我们可以在需要的时候自己去寻找,也可以自己编写去应对各种复杂的环境


本文转载自: https://blog.csdn.net/hmysn/article/details/126019498
版权归原作者 外咸瓜街的一条咸鱼 所有, 如有侵权,请联系我们删除。

“sqlmap使用教程”的评论:

还没有评论