首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

15.4  特洛伊(Trojanning)Sybase

在Sybase内插入后门的可选方法非常多。下面是几个想法;对这些主题有大量方法  可用。

15.4.1  授予用户sa或sso_role权限

如果授予用户sa_role权限,他就可以有效地做每件事情。

通过执行下面的查询,可以看到什么角色对用户是可用的:

select l.name Login, sr.name ServerRole from master..syslogins 1

join master..sysloginroles lr on l.suid = lr.suid

join master..syssrvroles sr on sr.srid=lr.srid

15.4.2  允许直接更新系统表,授权访问选择的系统表

默认地,不允许用户(甚至sa)直接修改系统表(例如syslogins),即使他们想修改。如果可以更新系统表,就有了设置巧妙的后门的众多可能性。

允许更新的语句是

sp_configure 'allow updates to system tables', 1

该配置是动态设置的,因此立即生效;不需要重启服务器。

下面的查询显示了当前数据库内的所有的显式权限(包括列上的权限):

select u.name "user", u2.name grantor, o.name object, c.name column,

v.name, p.protecttype

from sysprotects p

join sysusers u on p.uid = u.uid

join sysobjects o on p.id = o.id

join sysusers u2 on p.grantor = u2.uid

join master..spt_values v on p.action=v.number and v.type='T'

join syscolumns c on o.id = c.id

where (power(2, c.colid) & convert(int, p.columns)) > 0

and p. columns != 0 and p. columns != 1 and p. columns is not null

union

select u.name "user", u2.name grantor, o.name object, '*' column,

v.name, p.protecttype

from sysprotects p

join sysusers u on p.uid = u.uid

join sysobjects o on p.id = o.id

join sysusers u2 on p.grantor = u2.uid

join master..spt_values v on p. action=v. number and v.type='T'

where p.columns=0x01

or p.columns=0x00

or p.columns is null

order by o.name

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论