找回密码
 立即注册
查看: 2974|回复: 0
打印 上一主题 下一主题

PHPCMS V9 member表内容随意修改漏洞及修复

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-4 11:27:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
某变量未初始化导致服务器设置register_global=On时会员可以随意修改自己的member信息。
( d# k7 C' F& \5 _& Z: x. \: v% a! M2 C
由于需要register_global=On支持,影响有限。。漏洞涉及到会员可以修改自己的余额导致网站可能产生严重后果因此漏洞等级设为高。
, z& O5 @! {3 ]$ h详细说明:修改用户密码的account_manage_password函数未对$updateinfo初始化,导致可以提交2 \) X4 P4 Z+ \3 j
updateinfo[amount]这样的数组随意修改自己的余额、点数、会员组、VIP等一切存放在member表的信息
) S/ N$ b1 z7 C: i6 @/ w7 C5 a文件: \phpcms\modules\member\index.php1 T( B, l/ d: X" V' u

5 J: A5 P9 r$ [0 n约435行:
- {# p) `' n8 t# i' v6 V" I- ?$newpassword = password($_POST['info']['newpassword'], $this->memberinfo['encrypt']);
9 ?: Z; I% v6 b% a$updateinfo['password'] = $newpassword;/ s# w$ j( U5 y+ F, ~7 Y( r
$this->db->update($updateinfo, array('userid'=>$this->memberinfo['userid']));
9 {7 X! W5 \9 O: Y0 A8 {! q漏洞证明:文件: \phpcms\modules\member\index.php
' r0 r) R! ]& G3 K
# x1 q7 V& g4 g约435行:+ L" H& I- {% T
$newpassword = password($_POST['info']['newpassword'], $this->memberinfo['encrypt']);( A6 {6 b$ X5 k
$updateinfo['password'] = $newpassword;5 z& d3 C' L5 W& Q, c
$this->db->update($updateinfo, array('userid'=>$this->memberinfo['userid']));; k' \/ |2 V" M: k

& t: C0 X; k% y" S4 L修复方案:5 S* V8 c8 y; b; i+ `! J
. `  n. M. h: o2 C4 [$ e9 k
$updateinfo = array();
5 L/ h+ p6 }$ x8 S, Z* Y' k7 m, L; `# E" Y) A7 h* c
回复

使用道具 举报

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

本版积分规则

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