中国网络渗透测试联盟

标题: PHPCMS V9 member表内容随意修改漏洞及修复 [打印本页]

作者: admin    时间: 2012-12-4 11:27
标题: PHPCMS V9 member表内容随意修改漏洞及修复
某变量未初始化导致服务器设置register_global=On时会员可以随意修改自己的member信息。/ ]% O7 P7 s4 Z; S' r) D. x5 \
  F/ y( \; W3 q& u$ B
由于需要register_global=On支持,影响有限。。漏洞涉及到会员可以修改自己的余额导致网站可能产生严重后果因此漏洞等级设为高。3 s) ^0 G6 K6 y5 `# X5 }
详细说明:修改用户密码的account_manage_password函数未对$updateinfo初始化,导致可以提交+ f3 i- P7 u7 W& J& \0 X- C
updateinfo[amount]这样的数组随意修改自己的余额、点数、会员组、VIP等一切存放在member表的信息- p+ R3 X: n. D8 G
文件: \phpcms\modules\member\index.php5 G6 [. f. K1 s! u
2 Y! P% {% x7 D; k% _3 D0 J! n
约435行: * ^% f% u, ?0 g/ g) B
$newpassword = password($_POST['info']['newpassword'], $this->memberinfo['encrypt']);
' R5 B3 V: [# ]$updateinfo['password'] = $newpassword;
2 s5 ^  b3 k# B$this->db->update($updateinfo, array('userid'=>$this->memberinfo['userid']));  Y1 C8 i- i$ |$ ]# c
漏洞证明:文件: \phpcms\modules\member\index.php
6 \# F( D9 ~: K* t' e6 u5 A+ y! `) t' Y# H, Z5 l% T
约435行:
# D  h1 A. W7 \) w3 {! ~$newpassword = password($_POST['info']['newpassword'], $this->memberinfo['encrypt']);: J+ |' v; P3 b. ~
$updateinfo['password'] = $newpassword;
  ?9 m6 d  ]3 p, i) t$this->db->update($updateinfo, array('userid'=>$this->memberinfo['userid']));* g3 i, x' P+ o

  p* x( x( H9 E+ x4 S$ z修复方案:
& |/ n. d* `* o6 |
4 e! j1 f3 N$ T; f9 y% L, A$updateinfo = array();$ [1 s* L! Z0 b  s) c3 Y( T9 W

1 D; n) K7 w$ n% u! G




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