遇到一个sa注入点,mssql错误提示关闭无疑shi让人郁闷的事情。, _2 i5 ]! S$ o( F& P
( q7 C& ~5 U- J/ m2 t+ _, O
虽然错误提示关闭也shi可能以列目录,执行命令,但shishi多少就有些不方便。阿D就可能以在错误提示关闭的情况下列目录。
3 |- {8 G# D Q- k" p
6 a1 T# h$ K: A8 q0 q- A. }( _3 B 这里有一个很好的方法,让你得到web目录路径,让你得到服务器上的文件,让你执行命令得到回显。2 X! t2 \9 H+ v6 p+ `: V8 R
; b$ x" y. B% X8 l; Y IIS,404页面的默认路径shi C:\Windows\Help\iisHelp\common\404b.htm
( B# r/ b0 f3 i3 s
: [, k. E4 K7 y" e5 g8 `) R' n 得到web路径exec master..xp_cmdshell ’copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm’--( }& z4 Q( o F) ` h
5 K0 {+ Q5 B" ?" y4 z/ I3 e
,这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 的内容了。
- V5 s; j% e2 N* d2 @& g5 A4 U+ X
- \. A- K0 W" E 执行命令得到回显
! l& A3 |) q5 H' B* I
+ ]* i% E' [3 d% i9 K* X 通过上面得到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’--; q2 B; K2 u, }" C
# U- a- ~; H( h4 d! ~
得到文件也shi相同,把文件copy到404b.htm就行了
, ^) L4 s8 P+ T. ]- A. K
6 q% |9 ^ J4 r Q by 28ice, 2008/6/26* u8 |8 D/ e+ M, [/ s& M; ]! [
" n/ P/ B: E9 N$ u" Y 摘自 28度的冰
5 T% E+ X" A Y {. |" U! W0 u: l3 {$ W X1 y4 Z) s' E
盲注判断权限和操作系统版本2 }" m2 j. x( u
* j8 s) E- {' v1 M" X7 a% ?
首先第一个问题,如果错误提示关闭,怎么判断当前的权限shi否为sysadmin呢?, c Y+ V6 `& L6 `
* R, ^' B2 C8 t' d: c 最简单的,可能以用这样的方法:; X) Y6 R# R1 |# z- ]) D/ d3 h* a
- w4 \$ u) \" r) z0 K4 K 1=(select IS_SRVROLEMEMBER(’sysadmin’))7 t+ P3 [9 h, Q# R, h d
$ Q* s c% l0 u' w
当然,有些情况下,这个方法并不奏效。! ~- S/ Z$ @3 u9 I; \; y X. b
, P/ C1 G4 n2 N: h) E: l2 j1 Y! G
既然shisa,我们就可能以通过执行命令判断,不过,既然错误提示关闭,那么执行的结果就很不容易拿到。
4 f! E: m- g( `9 {% B) b8 d
6 y) D. Y' U; ~, F1 C' O& W 有个3办法可能以解决这个问题/ U y, i& e5 h b2 e; `. s) ^8 U
2 Q5 H/ S6 K! ~; V) o l
a.把执行结果写到404b.htm,具体请看我的上一篇文章
8 d, e" G; h# C Y0 f8 B
6 I# w3 G. W2 |7 ^8 M# n b.执行ping 127.1 -n 10,看看页面shi否延迟10秒钟. M# w9 \2 c1 O( z4 C1 G
/ j" Y9 D/ e. e& Y c.如果1433端口可能以连接,那干脆新建个sql登录
" ?0 U& J: b$ n# D
6 N& X. v7 {0 t' `& A. M! e; Z! |2 n d.如果大牛你shi公网Ip,openrowset,或者直接telnet,ftp到你自己的机子,说到这里,ftp还有别的用处,比如,把执行结果写到文件中,然后通过ftp传到你的机子上,这何尝不shi获得执行结果的一个好办法。当然,你可能能要用到ftp的-s参数5 L2 M/ q1 i! G
1 O7 {: r2 Y* C( U% Q, b7 { 还有一个问题,怎么判断系统shi2000还shi2003?当然指的shi错误提示关闭的情况下
! O; a/ N* V* e" e/ M
" ?/ s, Z- [2 `' \) s% _+ k 很简单
. B3 y' Z0 L: L$ n. y6 q; ^2 P
执行systeminfo
* [9 J& E3 V. |: Q, G0 p3 _
1 E+ u+ M7 b/ D8 H 在xp/2003下才有这个命令,这个命令执行大概需要5秒钟时间。如果页面延迟5秒,就可能以进一步断定这shi2003(当然不排除2008的可能能性)。 |