当发现sql注入之后,脱库的方法,有以下几种:
 
(1)当目标主机支持外部连接时,使用Navicat 进行连接!当时目标主机不同,使用的Navicat种类不一样:
mysql : Navicat for MySQL
oracle : Navicat for Oracle
全版本的Navicat Premium,支持MySQL, Oralce, PostgreSQL, SQLit 以及SQL Server。
 
补充:mysql端口默认:3306,mssql默认端口:1433 , oracle默认端口:1521
 
当使用Navicat连接上数据库之后,选择需要脱库的表,右击导出即可。
 
(2)当拥有权限时,我们可以上传脚本脱库,当然这里Navicat也提供了脚本。Navicat的安装目录下有ntunnel_mysql.php   ntunnel_pgsql.php 和 ntunnel_sqlite.php, 这三个文件分别支持对Mysql,PostreSQL 和SQLite数据库使用HTTP通道连接,具体使用过程为:
1.将ntunnel_mysql.php上传到目标机器的根目录,然后打开Navicate,单击“新建连接”——》“mysql”,选择HTTP选项卡,勾选“使用HTTP通道”,在“通道地址”栏写入ntunnel_mysql.php的URL,其他保持默认,然后返回常规选项卡,填写链接名,用户及密码,这里需要的注意的是,连接的IP地址需要写“Localhost”或者“127.0.0.1”。
 
(3)无法远程连接时,sql注射!
首先我们使用sqlmap进行注入,并使用适当的输入命令如 --current_db 得出当前数据库名,使用--databases 得出当前数据库中的表 --columns得出当前数据库中的列名。使用--dump参数将所选的数据下载到本地。
 
当使用mysql --dump操作失败时,我们可以使用sqlmap配合burpsuit进行注入。具体流程如下:
1.首先我们使用sqlmap进行测试,当测出数据库名,表明之后,使用--count 参数,将将表中的数据条数统计出来,记为N。
2.以用户表为例子,我们注入出用户表中的数据条数,并且查看到数据库表中的id为主键,并且递增。这是我们可以构造注入语句,并且使用bp进行抓包,将抓包信息,发送给intruder,在position模块,将id作为变量,在payloads模块中,将payloads类型设置为Numbers,并且将值设置为从0到之前的N。
3.选择抓取的数据,在option——》Grep extract模块中单击add,然后在弹出的新界面中选择“Fetch Response”获取返回信息,获取返回信息后,选择你要抓取的内容,BP会根据选取的内容自动生成正则表达式,当正则表达式设置好之后,单击OK,可以继续添加需要的数据。
4.选择intruder——》start attack   开始转去数据,在数据抓取结束之后,选择save  ——》“Result Table”,保存导出数据的界面。
 

sql脱库的几种方法的更多相关文章

  1. 提高SQL查询效率的30种方法

    转载:提高SQL查询效率的30种方法 内容摘录如下: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中 ...

  2. SQL server分页的四种方法

    SQL server分页的四种方法 1.三重循环: 2.利用max(主键); 3.利用row_number关键字: 4.offset/fetch next关键字 方法一:三重循环思路  先取前20页, ...

  3. SQL Server启动的几种方法

    SQL Server 启动有以下几种方法: (1)在Control Panel——Administrative Tools——Services,找到SQL Server (XXX)进行启动. 其中XX ...

  4. 在VS中添加lib库的三种方法

    注意: 1.每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties" -> "Configuration Prop ...

  5. MySQL中优化sql语句查询常用的种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  6. 从github下载某个git库的4种方法

    转自:http://blog.csdn.net/feiniao1221/article/details/7516421 以gerrit-trigger-plugin为例,下面的链接都是从相应页面上直接 ...

  7. 【转】Android下编译jni库的二种方法(含示例)

    原文网址:http://blog.sina.com.cn/s/blog_3e3fcadd01011384.html 总结如下:两种方法是:1)使用Android源码中的Make系统2)使用NDK(从N ...

  8. 【转】Android下编译jni库的二种方法(含示例) -- 不错

    原文网址:http://blog.sina.com.cn/s/blog_3e3fcadd01011384.html 总结如下:两种方法是:1)使用Android源码中的Make系统2)使用NDK(从N ...

  9. 从github下载某个git库的4种方法[zz]

    以gerrit-trigger-plugin为例,下面的链接都是从相应页面上直接拷贝的. 法一:不用github的账号,打开这个库在github上的主页,运行下面命令即可 read only 运行命令 ...

随机推荐

  1. Nginx中的$document_uri与$request_uri以及$http_referer

    Nginx基于$document_uri的访问控制,变量$document_uri该变量等价于$uri,其实也等价于location匹配. 示例1: 当用户请求的url中包含/admin/时,直接返回 ...

  2. 虚拟环境和pip相关的命令

    # 虚拟环境 mkvirtualenv # 创建虚拟环境 rmvirtualenv # 删除虚拟环境 workon # 进入虚拟环境.查看所有虚拟环境 deactivate # 退出虚拟环境 eg: ...

  3. 原生aJax跨域

    今天遇到一个问题,利用原生ajax请求时报了一段错, 大概意思就是同源策略阻止了访问,也就是跨域, 后来发现是我在代码中发送了请求头, xhr.setRequestHeader(); 将这段代码删除后 ...

  4. Map去重,去重value相同的元素,保留key最小的那个值

    Map<Integer,String>,Integer代表时间撮,String代表文本信息去重函数:就是删除Map中value相同的元素,只保留key最小的那个元素 public stat ...

  5. Spring中获取外部配置文件中的属性值

    很多时候需要将配置信息从程序中剥离粗来,Spring现在提供的方法是通过@Value注解和<context:placeholder>来获取配置文件中的配置信息.这里给出一个简单的例子. 首 ...

  6. 【爬虫】Load版的生产者和消费者模式

    ''' Lock版的生产者和消费者模式 ''' import threading import random import time gMoney = 1000 # 原始金额 gLoad = thre ...

  7. xml文件连表查询

    <!-- 根据条件查询资产信息 --> <select id="getAssetCommonByPage" resultType="java.util. ...

  8. 实例讲解ip地址、子网掩码、可用地址范围的计算

    关于ip以及相关的掩码.网络号等概念可以查看相关的博客.资料,这些东西很容易找着,一搜一大片.本文主要记录通过实例进行ip相关的计算. 我自己使用的在线网络计算器地址:https://www.sojs ...

  9. vue.js生成横向拓扑图

    1.前端代码 <link href="https://magicbox.bk.tencent.com/static_api/v3/assets/bootstrap-3.3.4/css/ ...

  10. 如何把标准cout 输出到 自己写的web server

    如何把标准cout 输出到 自己写的web server 如何把标准cout 输出到 自己写的web server 如何把标准cout 输出到 自己写的web server cgi的功能? 有时间实现 ...