5 j" @3 j) }* E/ P& n; b: l n) Q, ^SDCMS后台绕过直接进入:测试版本2.0 beta2 其他版本未测试8 S4 G/ P2 I5 M. {% V( W
详细说明: , [! b8 l$ ]0 n* \4 v; S" IIslogin //判断登录的方法% S! D% N/ E& E5 X
6 R) t4 Q, z8 r8 f' Nsub islogin(); T' ? z. A5 M
6 h/ B: @" m; b) r/ E: [" v
if sdcms.strlen(adminid)=0 or sdcms.strlen(adminname)=0 then L& K0 [+ u' c: w& `& N 8 @) X6 r' N. ]4 T7 `# B
dim t0,t1,t2 ! X9 K5 `9 O! n: \, k5 S
* P. \. l s( N8 H, H
t0=sdcms.getint(sdcms.loadcookie("adminid"),0) loadcookie , P5 Y5 \6 Y) t+ m
& ?. ~* V) {( ~0 xt1=sdcms.loadcookie("islogin") % O! I. C! q" M7 \ & \1 i7 U9 {2 J# b& B5 pt2=sdcms.loadcookie("loginkey"); y7 I1 t8 \& P2 W2 k7 U
( i% ~' R: R* \- b7 i- e6 E( n) f
if sdcms.strlen(t0)=0 or sdcms.strlen(t1)=0 or sdcms.strlen(t2)<>50 then //这里判断很坑爹 sdcms.strlen(t2)<>50 loginkey 没有任何要求 只需要输入50个即可往下执行: n3 | ~) x. {0 ]
0 W" i2 H! ~# p" a ]// E$ B* Q4 T# x
8 F+ o9 l- B; r: A/ @ S. y* [sdcms.go "login.asp?act=out" $ s& [, n2 i0 v: y9 } 2 Z& p" G, q' h9 rexit sub& e5 D9 E& k# s* ~- B }
% j- S: Z( n1 ]& e! u( [& R
else8 A5 I, f( d2 e6 T
/ D% t9 `; I; \3 c9 @
dim data& ~2 H. q6 r9 R/ G3 N
9 s6 c/ u- R7 [+ J8 f0 Y) o" q
data=sdcms.db.dbload(1,"adminid,adminname,adminpass,islock,groupid,g.pagelever,g.catearray,g.catelever","sd_admin u left join sd_admin_group g on u.groupid=g.id","adminid="&t0&"","") //根据管理员ID查询 ID可控 6 n* e7 P( N2 a8 o& i- | , l* ~9 V: ]7 z6 p* m. ?. z' U1 o9 Yif ubound(data)<0 then 2 b* h% l1 L9 N$ P! W 9 d9 c. N% [- s' `- h* Dsdcms.go "login.asp?act=out" ; W/ j/ i# }; f1 b# d: L7 i ' Y1 G+ v; N- p: h( D8 @exit sub4 w! l3 B) N. P; R- V/ `4 L
5 c9 A1 Z: n8 Melse % n; F1 I8 n0 f, p$ x, t" B2 m: i5 s ! U7 C+ A+ R% @) C# Q' J3 W+ L& K4 Hif instr(data(1,0)&data(2,0),sdcms.decrypt(t1,t2))<0 or data(3,0)=0 then+ A$ @( ]0 A, W. ~; H( D/ y
5 q3 X( N' U4 P( w" ~
sdcms.go "login.asp?act=out"; j! Y3 H' {. Q2 {2 Y* k
# v" n* z. X% j9 |+ }- Cif clng(admingroupid)<>0 then " g' Y: L; K# F/ m, r" s! H5 r 0 W2 e6 m7 y7 U. P+ i
admin_lever_where=" and menuid in("&admin_page_lever&")"+ `. u$ N- w) `/ l& D# t
3 d% S( m9 ^" \/ F3 W' [; j
end if s1 K! m5 z8 W) w 6 v* v: d7 H9 e/ @ ?; a; ~
end if ! v; d2 S" D. ? 4 [+ n4 g% b# a* i. |5 y$ oend if / s) L" q; O: o" Q& k2 l9 S4 n0 a( f0 k 4 y* Z) M: J! N% k! C+ m Eend sub F$ v3 _2 V8 k6 p% f9 B漏洞证明: # z! N# u3 M L- o1 Q7 [8 A看看操作COOKIE的函数 4 {1 }, ~5 @3 b* h * S5 z1 l V& w9 ^
public function loadcookie(t0) 4 B" z0 m2 e+ Q3 T * u m6 s9 s3 }6 l7 m" g9 C- {! m& {# Qloadcookie=request.cookies(prefix&t0)" n% b; ]; O E& l% t7 Y6 [
5 k/ n+ J6 G+ G. I0 C+ r3 e, Rend function 9 @8 b' p4 M; u% L 1 N/ Y* S4 y+ P- \# O' @public sub setcookie(byval t0,byval t1). M& S9 U( S3 R; T" U$ S5 O