sqlmap简介

sqlmap支持五种不同的注入模式:

  • 1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
  • 2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
  • 3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
  • 4、联合查询注入,可以使用union的情况下的注入。
  • 5、堆查询注入,可以同时执行多条语句的执行时的注入。

sqlmap支持的数据库

MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB

语法

sqlmap -u "http://可能注入的某个提交参数的url"

这里的url要带参数,如果是post要用--data=参数

注意的是nessus只能检测到查询链接的sql注入,不能检测提交操作操作的sql注入。

cookie注入

登录网页后在浏览器url栏输入 javascript:document.cookie或者在console栏中输入document.cookie即可获得cookie

sqlmap -u "http://可能注入的某个提交参数的url" --cookie="这次提交的cookie"

dvwa中测试

sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit#" --cookie="security=low; PHPSESSID=1129umpqj3j5siclohbkmik7nu" --level 3

参数释义

-u 即--url的缩写,检测指定的url

--level 代表扫描等级,范围1~5。数值越大扫描越完整(默认为1)

--risk  范围是1~3级,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。

--dbms 指定数据库(mysql之类的)

--data=DATA     Data(id=1&parm2=two#) string to be sent through POST

--dump 把当前使用的数据库导出为csv文件

--dump-all 把所有数据库导出为csv文件

--batch 不再询问选择默认选项

--dbs 获取所有数据库

--current-db  当前使用的数据库

--users  所有用户

--current-user  数据库使用账户

--is-dba 当前用户权限(是否为root权限)

--passwords  数据库账户与密码

-D dvwa --tables  查看指定数据库(例如:dvwa)的所有表

-D dvwa -T users --columns  查看指定数据库指定表的所有字段

--random-agent 构造随机user-agent

--time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)

执行完之后结果如下

显示结果被记录在/root/.sqlmap/output/127.0.0.1下面

log是注入的日志,target.txt是执行的sqlmap命令,session.sqlite可以用sqlitespy查看书库内容

从文本文件中解析多url

参数:-m

参数“-u”一次只能指定一个URL,若有多个URL需要测试就显得很不方便,我们可用将多个URL以一行一个的格式保存在文本文件中,然后使用参数“-m”,后跟该文本文件路径,让Sqlmap依次读取文件中的URL作为攻击目标。

如我们有文件url.txt,内容为:

www.target1.com/vuln1.php?q=foobar

www.target2.com/vuln2.asp?id=1

www.target3.com/vuln3/id/1

使用命令

sqlmap -m url.txt

从post数据包中注入

可以使用burpsuite或者temperdata等工具来抓取post包,用-r指定数据包

burpsuite抓包日志

点击Project options -》Misc -》Proxy.Requests ,在弹出的框中输入日志文件的名称及后缀

正常使用burpsuite,这时抓包数据不仅显示在软件中还会存在于日志文件中,执行以下命令即可。

sqlmap -r "~\burpRequestProxy.txt"

然后可以用-p指定参数,用dbms指定数据库 -p “username” –dbms mysql

kali中其他数据库工具

bbqsql:BBQSQL是用Python编写的一个盲目的SQL注入框架(盲注SQL)。在攻击棘手的SQL注入漏洞时非常有用。BBQSQL也是一种半自动化工具,可以让那些难以触发SQL注入发现的用户进行相当多的定制。UI界面

hexorbase:用来管理和破解数据库登录账号及密码

JSQL Injection:由JAVA开法的SQL自动化注入工具,它提供了数据库查询、后台爆破、文件读取、Web shell、SQL Shell、文件上传、暴力枚举、编码、批量注入测试等强大的功能,是一款非常不错的工具,也是渗透测试人员的强大助手。它支持GET\POST注入,同时也可以进行HTTP头注入。

mdb-sql:针对SQLServer的一款软件。

oscanner:是一个用Java开发的Oracle评估框架。 它有一个基于插件的架构,并附带了几个的插件。

sidguesser:在Oracle中,SID是System IDentifier的缩写。SID是一个数据库的唯一标识符。当用户希望远程连接Oracle数据库时,则需要知道SID、用户名、密码及服务器的IP地址。SidGuess就是一款根据字典爆破Oracle SID的工具。该工具的破解比较慢,每秒80-100个。该工具非常简单,格式如下:sidguess -i 服务器IP  -d SID字典文件

sqldict:针对SQL Server的密码爆破工具

SQLite Database Browser:一个SQLite数据库管理工具。

sqlninja:是利用以Microsoft SQL Server作为后端的Web应用程序中的SQL注入漏洞

sqlsus:一个开源的MySQL注入和接管工具,用Perl编写。

tnscmd10g:向Oracle注入命令

参考:http://www.vuln.cn/1992

kali之使用sqlmap进行sql注入的更多相关文章

  1. CentOS 7 通过SQLmap进行SQL注入

    安装SQLmap: IP:192.168.94.11 渗透测试演练系统DVWA: IP:192.168.94.111 通过SQLmap检测SQL注入漏洞 : 1.安装SQLmap漏洞查看工具 2.安装 ...

  2. 结合sqlmap进行sql注入过程

    结合sqlmap进行sql注入:(-r后面是通过burp suite抓出来的请求包:-p后面是注入点,即该请求里携带的某个参数) Get请求的注入: ./sqlmap.py -r rss_test.t ...

  3. 使用sqlmap执行SQL注入攻击

    sqlmap是开源的SQL注入自动攻击工具,它可以自动的探测SQL注入点并且进一步控制网站的数据库. Kali Linux默认安装了这个工具. 找到潜在的攻击目标 第一步是找到有SQL注入漏洞的网站. ...

  4. sqlmap查找SQL注入漏洞入门

    1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...

  5. sqlmap检测sql注入漏洞

    sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.它由python语言开发而成,因此运行需要安装python环境. 官网:http://sqlmap.org/ 乌 ...

  6. Burosuite抓包Sqlmap学习Sql注入

    在sqlmap中加入--proyxy参数: --proxy "http://127.0.0.1:8080" 如下图所示: 回车以后sqlmap会自动抓到数据包: 我们选择向前(fo ...

  7. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  8. 使用SQLMAP对网站和数据库进行SQL注入攻击

    from:http://www.blackmoreops.com/2014/05/07/use-sqlmap-sql-injection-hack-website-database/ 0x00 背景介 ...

  9. GET sql注入

    靶机地址:192.168.43.156 攻击机地址:192.168.43.89 一.AppScan检查靶机sql漏洞 二.使用sqlmap利用SQL注入漏洞 1.sqlmap -u " ht ...

随机推荐

  1. 【转】linux sed命令

    转自:linux sed命令就是这么简单 参考:Linux三大剑客之sed:https://blog.csdn.net/solaraceboy/article/details/79272344 阅读目 ...

  2. qt5 源码编译

    源码 qt-everywhere-src-5.11.3 依赖 apt-get install bison build-essential gperf flex ruby python libasoun ...

  3. Mesa: GeoReplicated, Near RealTime, Scalable Data Warehousing

    Mesa的定义并没有反映出他的特点,因为分布式,副本,高可用,他都是依赖google的其他基础设施完成的 他最大的特点是,和传统数仓比,可以做到near real-time的返回聚合的查询结果 算入实 ...

  4. MLflow系列4:MLflow模型

    英文链接:https://mlflow.org/docs/latest/models.html 本文链接:https://www.cnblogs.com/CheeseZH/p/11946260.htm ...

  5. 【Python】解析Python中的装饰器

    python中的函数也是对象,函数可以被当作变量传递. 装饰器在python中功能非常强大,装饰器允许对原有函数行为进行扩展,而不用硬编码的方式,它提供了一种面向切面的访问方式. 装饰器 一个普通的装 ...

  6. MySQL 设计与开发规范2

    目录 1. 规范背景与目的 2. 设计规范 2.1. 数据库设计 2.1.1. 库名 2.1.2. 表结构 2.1.3. 列数据类型优化 2.1.4. 索引设计 2.1.5. 分库分表.分区表 2.1 ...

  7. java8学习

    1.Function函数 public static void main(String[] args) { TestController t = new TestController(); new T ...

  8. 编写基于TCP的应用程序

    编写基于TCP的应用程序   这似乎是一个非常简单的话题, 就跟"是个人就能做网站"一样, 你可能也认为"是个人就能写使用TCP socket的网络程序". 不 ...

  9. Gossip和Redis集群原理

    https://blog.csdn.net/weixin_33755847/article/details/89561666 http://redisbook.com/preview/cluster/ ...

  10. ubuntu连接多个realsense d435

    ubuntu连接多个realsense d435 import pyrealsense2 as rs import numpy as np import cv2 import time import ...