sql脱库的几种方法

当发现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”,保存导出数据的界面。

原文地址:https://www.cnblogs.com/yikuaiqian/p/9557077.html

时间: 2024-11-01 12:58:15

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

转:访问 Microsoft SQL Server 元数据的三种方法

上海微创软件有限公司 肖桂东 适用读者:Microsoft SQL Server 中.高级用户 元数据简介 元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例.图书馆目录卡和名片等都可以看作是元数据.在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义.比如在管理.维护 SQL Server 或者是开发数据库应用程序的时候,我们经常要获取一些涉及到数据库架构的信息:某个数据库中

Python安装第三方库的4种方法

Python安装第三方库的4种方法 1.使用pip 大多数库都可以通过pip安装,安装方法为,在命令行窗口输入:pip install libName libName     -   为库名 某些库通过pip安装不了,可能是因为没有打包上传到pypi中,可以下载安装包之后离线安装,方法是:pip install libPath libPath  -   为本地安装包地址,这些安装包一般以whl为后缀名.表示python扩展包的windows环境下的二进制文件.有一个专门下载这种文件的地方http

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

转自:http://blog.csdn.net/feiniao1221/article/details/7516421 以gerrit-trigger-plugin为例,下面的链接都是从相应页面上直接拷贝的. 法一:不用github的账号,打开这个库在github上的主页,运行下面命令即可 read only 运行命令$Git clone https://github.com/jenkinsci/gerrit-trigger-plugin.git 下面的三种方法都要先在github上注册账户,然

SQL Server启动的几种方法

SQL Server 启动有以下几种方法: (1)在Control Panel--Administrative Tools--Services,找到SQL Server (XXX)进行启动. 其中XXX为实例名,默认实例名为"MSSQLSERVER". Figure-1: 在OS Services中启动 (2)在SQL Server Configuration Manager中启动. Figure-2: 在SQL Server Configuration Manager中启动 (3)在

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

原文网址:http://blog.sina.com.cn/s/blog_3e3fcadd01011384.html 总结如下:两种方法是:1)使用Android源码中的Make系统2)使用NDK(从NDK r5开始) ---------------------------------源码要求: 如果Android工程的顶层目录为my_android_project_name:1) my_android_project_name/jni/Android.mk文件的示例内容如下(以生成libjni_

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

注意:每种方法也要复制相应的DLL文件到相应目录 方法1:  通过设置工程配置来添加lib库. A.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录. B.添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录.C  然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名. 这种方法比较繁琐,且不直观,

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

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from

SQL server分页的四种方法(算很全面了)

目录: 文章目录 方法一:三重循环 思路 代码实现 查询出的结果及时间 方法二:利用max(主键) 代码实现 查询出的结果及时间 方法三:利用row_number关键字 SQL实现 查询出的结果及时间 第四种方法:offset /fetch next(2012版本及以上才有) 代码实现 结果及运行时间 封装的存储过程 总结 ??这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本.下面都用pageIndex表示页数,pageSize表示一页包含的记录.并且下面涉及

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

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放