遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
: e9 q$ V* Z: [$ r& a
9 `+ }* J5 o2 a, L/ m5 F7 g5 R 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。/ @- W% o3 E7 f7 R! y8 N
+ I- G. }3 k v9 Z8 f- j* U0 |& s
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。9 t+ A1 g$ C* }$ d2 e& o) i& B
! |, B5 I/ |+ z h2 y" O) q( n9 u IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm& ?, r3 l1 N9 r" s) v7 K
* T" h/ t. _4 z 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--3 M3 d6 {/ a. P( o, X$ [; N" _/ x4 R
! a( \5 X7 S! v; d( C$ 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 的内容了。( x2 u, l' L) f. q4 k( L
2 |! g! p2 o" W 执行命令得到回显5 w/ v9 X/ O5 z
' E1 Q% e# m+ |6 ^. Z& ]
通过上面得到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’--
8 S4 {! n3 ]& X# t" y) @ n1 v9 _) _% V- t
得到文件也shi相同,把文件copy到404b.htm就行了) c# L g5 S/ v# x
% R. D! S [' R2 ?
by 28ice, 2008/6/26, W& ]; y: ?* a% E
! s& |: }" N" P' X% T 摘自 28度的冰3 q R% L# H( }) i' `- l% s
/ s/ [, I0 y b D# f
盲注判断权限和操作系统版本# \9 e; P: K! y5 K
0 p+ c& w; t0 E; k5 H# Y 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?6 ?2 v. j6 b; A* s0 v7 O
- L, A. E2 c2 g1 L
最简单的,可能以用这样的方法:
8 O; L9 I+ n r! J. d4 G. O6 J( y {4 G ]+ t
1=(select IS_SRVROLEMEMBER(’sysadmin’)): j5 {5 E. t1 j& R; n& B
% i$ A; t& w. F 当然,有些情况下,这个方法并不奏效。6 m, f4 q) k/ L- `$ ?
* r i% J L6 Q
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
% Q! _6 m- C/ U5 h X* u" D. t: G2 y7 C, H* ^4 X- H, L
有个3办法可能以解决这个问题- {. R- G- p" Z- w# e
+ r, ~" r2 A' x4 y
a.把执行结果写到404b.htm,具体请看我的上一篇文章2 I6 h$ C- \- t9 ]+ m
$ @+ H0 ^- ]1 ^. J* G
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟 p) g7 g3 W3 s5 W7 P
% i5 C' d, E; @ Y c.如果1433端口可能以连接,那干脆新建个sql登录$ a# `: H$ S3 u$ b
6 b! G- H, h' M0 q' ^& [) ]1 A7 E d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数9 k) J2 @* e) M+ D( B# f
3 \/ a, r# P! R) S# d( t 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
8 S* w" J: V5 d. l9 M. M( n" b8 v1 i2 I, b
很简单
& s+ w# B' [* v1 I0 L" F6 W' G" W$ m' ] d4 k0 }( S
执行systeminfo
& Y& j+ o( u0 R; |0 |2 U! I" `5 C# L) ]2 H* }2 |
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |