[基本实验] 拖库
2015-07-30 13:46
253 查看
一、支持外连接
利用工具Navicat Premium版本,支持在MySQL、Oracle、PostgreSQL、SQLite及SQL Server之间传输数据,是各种版本的集合。
1.连接->“MySQL”
2.在“常规”选项卡中,填写数据库的基本信息,连接名任意填写,在主机名/IP地址文本框内输入IP地址,并在用户名和密码文本框内填写相应的信息。
3.可以点击左下角的“连接测试”,可以预先测试连接是否通。
4.双击“mytest”即可连接数据库
5.点击相应位置,得到有关数据库的更多信息
接下来可以将数据库中的内容导出来,有两种选择,其一是导出表结构和数据,另一种选择是仅导出表数据
6.先看看怎样“导出表结构和数据”,选中要导出的表,并单击鼠标右键,选择“转储SQL文件”
得到结果
得到结果为
二、不支持外连接
2.1 SQL注射
假设http://www.example.com/user/user.jsp?uid=5中存在SQL注射漏洞,可以利用SQLMap和Burp Suite来导出数据。
python sqlmap.py -u "http://www.example.com/user/user.jsp?uid=5" -D "hacker" -T "pw_members" -C "uid,username,password" --dump --csv-del=" -- " --output-dir="c:\out" --dump-format=CSV --thread 5
--csv-del:导出CSV格式时,列与列之间的间隔字符,默认为空格;
--output-dir:导出文件夹;
--dump-format:导出格式,默认为CSV格式,可选择的导出格式有CSV,HTML和SQLITE三种。
2.2 本地导出
本地导出是指已经有网站的权限,这时攻击者就可以向Web服务器上传类似于“PHPMyAdmin”在线数据库管理的“拖库脚本”。这类脚本非常小巧,是专门针对数据导出而写的脚本。
Navicat其实就提供了数据转发的脚本,非常小巧,这个脚本也经常被人称为“HTTP通道连接”。
安装Navivat后,在Navicat安装目录下有三个php文件,分别是:ntunnel_mysql.php、ntunnel_pgsql.php、ntunnel_msqlite.php。这三个文件分别支持对MySQL、PostgreSQL、SQLite数据库使用HTTP通道连接。
具体步骤如下,以PHP+MYSQL为例:
将ntunnel_mysql.php上传到网站根目录,本次演示将其更名为db.php。然后打开Navicat,单击“连接”->“MySQL”,选择“HTTP”选项卡,勾选“使用HTTP通道”,在“通道地址”栏写入db.php的URL,其他保持默认即可。
填写完HTTP通道地址后,返回“常规”选项卡,填写连接名、用户名及密码。这里需要注意的是主机IP地址应该为“Localhost”或“127.0.0.1”,代表本地连接。
最终得到结果
利用工具Navicat Premium版本,支持在MySQL、Oracle、PostgreSQL、SQLite及SQL Server之间传输数据,是各种版本的集合。
1.连接->“MySQL”
2.在“常规”选项卡中,填写数据库的基本信息,连接名任意填写,在主机名/IP地址文本框内输入IP地址,并在用户名和密码文本框内填写相应的信息。
3.可以点击左下角的“连接测试”,可以预先测试连接是否通。
4.双击“mytest”即可连接数据库
5.点击相应位置,得到有关数据库的更多信息
接下来可以将数据库中的内容导出来,有两种选择,其一是导出表结构和数据,另一种选择是仅导出表数据
6.先看看怎样“导出表结构和数据”,选中要导出的表,并单击鼠标右键,选择“转储SQL文件”
得到结果
/* Navicat MySQL Data Transfer Source Server : mytest Source Server Version : 50520 Source Host : 10.0.3.82:3306 Source Database : ch4 Target Server Type : MYSQL Target Server Version : 50520 File Encoding : 65001 Date: 2015-07-30 11:12:41 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for member -- ---------------------------- DROP TABLE IF EXISTS `member`; CREATE TABLE `member` ( `id` int(4) NOT NULL AUTO_INCREMENT, `username` varchar(12) NOT NULL DEFAULT '', `password` varchar(12) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=gb2312 COMMENT='会员资料'; -- ---------------------------- -- Records of member -- ---------------------------- INSERT INTO `member` VALUES ('2', 'andy', 'a123456'); INSERT INTO `member` VALUES ('3', 'bob', 'b123456'); INSERT INTO `member` VALUES ('4', 'cindy', 'c123456'); INSERT INTO `member` VALUES ('5', 'mary', 'm123456'); INSERT INTO `member` VALUES ('6', 'david', 'd123456'); INSERT INTO `member` VALUES ('7', 'jane', 'j123456'); INSERT INTO `member` VALUES ('8', 'kim', 'k123456'); INSERT INTO `member` VALUES ('9', 'sam', 's123456'); INSERT INTO `member` VALUES ('1', 'daniel', '123456');7.也可以仅导出表数据,选择要导出的数据表,并单击鼠标右键,选择“导出向导”,之后的操作可见下图
得到结果为
"2" "andy" "a123456" "3" "bob" "b123456" "4" "cindy" "c123456" "5" "mary" "m123456" "6" "david" "d123456" "7" "jane" "j123456" "8" "kim" "k123456" "9" "sam" "s123456" "1" "daniel" "123456"备注:在本实验中,刚开始无法通过3306连接到目标机器,原因是MySQL数据库只允许本地连接。解决方法是,在数据库中有个名为mysql的数据库,其中有个名为user的表,其中有个名为Host的字段,将localhost改为%即可。
二、不支持外连接
2.1 SQL注射
假设http://www.example.com/user/user.jsp?uid=5中存在SQL注射漏洞,可以利用SQLMap和Burp Suite来导出数据。
python sqlmap.py -u "http://www.example.com/user/user.jsp?uid=5" -D "hacker" -T "pw_members" -C "uid,username,password" --dump --csv-del=" -- " --output-dir="c:\out" --dump-format=CSV --thread 5
--csv-del:导出CSV格式时,列与列之间的间隔字符,默认为空格;
--output-dir:导出文件夹;
--dump-format:导出格式,默认为CSV格式,可选择的导出格式有CSV,HTML和SQLITE三种。
2.2 本地导出
本地导出是指已经有网站的权限,这时攻击者就可以向Web服务器上传类似于“PHPMyAdmin”在线数据库管理的“拖库脚本”。这类脚本非常小巧,是专门针对数据导出而写的脚本。
Navicat其实就提供了数据转发的脚本,非常小巧,这个脚本也经常被人称为“HTTP通道连接”。
安装Navivat后,在Navicat安装目录下有三个php文件,分别是:ntunnel_mysql.php、ntunnel_pgsql.php、ntunnel_msqlite.php。这三个文件分别支持对MySQL、PostgreSQL、SQLite数据库使用HTTP通道连接。
具体步骤如下,以PHP+MYSQL为例:
将ntunnel_mysql.php上传到网站根目录,本次演示将其更名为db.php。然后打开Navicat,单击“连接”->“MySQL”,选择“HTTP”选项卡,勾选“使用HTTP通道”,在“通道地址”栏写入db.php的URL,其他保持默认即可。
填写完HTTP通道地址后,返回“常规”选项卡,填写连接名、用户名及密码。这里需要注意的是主机IP地址应该为“Localhost”或“127.0.0.1”,代表本地连接。
最终得到结果
相关文章推荐
- IOS开发系列—Objective-C之内存管理详解
- ACM比赛中通过freopen读取测试用例
- 【剑指Offer面试题】 九度OJ1517:链表中倒数第k个结点
- 隐藏UINavigationBar下面的一个像素的阴影
- Managing your Applications在同一个CI中设置多个application文件夹
- Java在的时候,类定义HashSet初始化方法
- 语音信号临界带宽的概念解释
- Can you find it?(二分 二分+STL set map)
- 关于操作符和函数的区别
- ViewDragHelper详解
- 生成自动的主键值
- eclipse调试yarn
- 基本固件框架的追踪研读之SETUP命令的处理1
- JS系列——Linq to js使用小结
- [dp之路]7.25test
- 12年程序员得到的12个经验教训
- android内存泄露调试经验分享
- day2 IO文件处理,列表,字典
- Android 处理内存泄露的方法
- 常用集合比较