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






