sql如何注入之跨库注入

这里首先说明,跨库注入只发生在mysql版本5.x以上的版本,且注入点需要为root。

这里要说明,在mysql中,只有root用户享有最高权限,其他用户无论名字是什么,一概都是普通的权限。

顺便解答一下为什么跨库注入只发生在5.x以上的版本中,是因为在mysql5.x以上的版本中,自带了一个名为information_schema的数据库,这个数据库中包含了所有数据库的库,表,列名,可以通过他来查询任何一个数据库中的任何一个信息,当然,这要是root用户才可以。

下面看案例,老样子,依旧是sql libs的靶场

sql如何注入之跨库注入插图

我们通过xxxx/?id=-1 union select 1,user(),3 查到了当前的注入点是root用户,那么我们就可以进行跨库注入

sql如何注入之跨库注入插图1

通过命名xxx/?id=-1 union select 1,group_contact(schema_nameq),3 from information_schema.schemata
来查询information-schema数据库下tables中的全部数据,也就是全部数据库表名,得到结果,有以上数据库。这就是所有数据库,接下来我们可以通过数据库名,结合上一帖子中的查询方法,查到任何一个数据库中的信息,包括管理员账号密码

标签

发表评论