sysobjects表无select权限时暴表

简介:
  作者:ninty
文章首发作者BLOG http://www.forjj.com/
后提交至T00LS,转载请注明出处。

T00LS上有人问了,sysobjects表没有权限。如何暴表。
所有的表名都只存在了sysobjects表里,所以我们无法从别的地方得到表名。

但是,大家有没注意过sql server提供的object_name函数呢?
它与object_id函数是相对应的,object_id会返回指定对象在数据库中的id值。

而object_name会返回指定ID所对应的数据库对象名,对于表来说自然就是表名了。

好了,现在只要得到所有的用户表的ID就可以得到表名了, 表的ID在很多地方都会存储,比如syscolumns表, 
我们只要从syscolumns表里面取得表的ID,再利用object_name就可以得到表名了。

下面是测试代码:

declare @id int
select @id = 1
declare @sql varchar(100)
while @id <= 200
begin
select @sql = 'create table test'+ltrim(@id)+'(id int)'
exec(@sql)
select @id = @id +1
end


select distinct(object_name(id)) from syscolumns where object_name(id) not in('sysobjects','sysindexes','syscolumns','systypes',
'syscomments','sysfiles1','syspermissions','sysusers','sysproperties','sysdepends','sysreferences',
'sysfulltextcatalogs','sysindexkeys','sysforeignkeys','sysmembers','sysprotects',
'sysfulltextnotify','sysfiles','sysfilegroups','dt_addtosourcecontrol','dt_addtosourcecontrol_u',
'dt_adduserobject_vcs','dt_checkinobject','dt_checkinobject_u','dt_checkoutobject','dt_checkoutobject_u',
'dt_displayoaerror','dt_displayoaerror_u','dt_droppropertiesbyid','dt_dropuserobjectbyid','dt_generateansiname',
'dt_getobjwithprop','dt_getobjwithprop_u','dt_getpropertiesbyid','dt_getpropertiesbyid_u','dt_getpropertiesbyid_vcs',
'dt_getpropertiesbyid_vcs_u','dt_isundersourcecontrol','dt_isundersourcecontrol_u','dt_setpropertybyid',
'dt_setpropertybyid_u','dt_validateloginparams','dt_validateloginparams_u','dt_whocheckedout','dt_whocheckedout_u',
'dtproperties','sysconstraints','syssegments')

代码在SQL SERVER 2000下测试通过。。

上面的代码绕过了sysobjects表查出了所有的用户表的表名。
可以查出来,那暴出来就不是什么难事了吧? 怎么暴大家就自己想吧,肯定难不到大家的。

本人菜鸟, 如果哪里写错了还希望各位大牛指出来。












本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/481341,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 关系型数据库 MySQL
给用户赋予权限GRANT语句
【6月更文挑战第20天】给用户赋予权限GRANT语句。
119 1
|
SQL 关系型数据库 MySQL
第3章_基本select语句
第3章_基本select语句
71 0
|
7月前
|
SQL 测试技术 数据库
`SELECT ... FOR UPDATE` 语句是如何工作的?
`SELECT ... FOR UPDATE` 语句是如何工作的?
211 0
|
SQL 存储 前端开发
第03章_基本的SELECT语句
第03章_基本的SELECT语句
227 1
ORA -01950 no privileges on tablespace(没有授予表权限)
ORA -01950 no privileges on tablespace(没有授予表权限)
234 0
|
SQL 存储 关系型数据库
03_基本的SELECT语句
03_基本的SELECT语句
103 0
|
SQL Java 数据库连接
SELECT操作
SELECT操作
80 0