1 接口参数账号修改漏洞
- 业务背景:找回密码功能逻辑中常常会在用户修改密码接口提交参数中存在传递用户账号的参数,而用户账号参数作为一个可控变量是可以被篡改的,从而导致修改账号密码的凭证或修改的目标账号出现偏差,最终造成任意账号密码修改的漏洞。
- 接口参数账号修改测试为拦截前端请求,通过修改请求内的账号ID、名称或邮箱、手机号等参数,将修改后的数据发送给服务器进行欺骗以达到密码重置的目的。
2 实验介绍
2.1 实验目的
- 加深对业务数据安全重要性的理解;
- 掌握在密码重置业务中,测试通过接口参数修改导致密码重置漏洞的方法。
2.2 实验环境
- 实验靶场——虚拟机:本节实验靶场是虚拟机中安装的win2008及phpstudy,安装过程可以参考《win2008R2SP1+WAMP环境部署》。
- 下载metinfo4.0版本,网址为https://zhuanlan.zhihu.com/p/45722772。
- 解压并复制文件夹到靶机中的根目录下。不同版本的phpstudy软件的安装时生成的目录可能存在差异,本文metinfo4.0路径如下。
- 真实机浏览器输入
192.168.1.4/metinfo4.0
访问metinfo,页面上弹出警告,无需理会,滑到最下方点击同意许可。
- 进入第二步,全部选项均为绿色通过,点击安装。
- 设置数据库信息,并点击继续。
- 看到全部为绿色,点击进入管理设置。
- 设置管理员账户,此处仅为做实验,账户设置为admin,密码设置为123456,并点击保存。
- 安装成功,点击进入网站。
3 实验步骤
- 真实机打开BurpSuite,进入proxy模块,打开自带浏览器,访问上述网站。进入网页下方的会员中心。
- 进入注册页面,新建一个账号、密码均为aaaaaa,点击立即注册。
- 登录账户aaaaaa,页面如下。
- 点击左侧修改基本信息栏目,将密码修改为111111,暂时不点提交。
- 将BurpSuite的代理拦截功能打开,再将上述页面点击“提交信息”,可以看懂BurpSuite拦截到请求如下,在该请求中我们看到了账户及要修改成的密码。
- 将请求中的密码修改为222222,并点击forward。
- 回到浏览器中,我们看到弹出窗口说操作成功,点击确定后需要重新登录账号aaaaaa,密码为222222。再次登录aaaaaa账号,重新提交修改密码的请求,在BurpSuite中将请求中的useid字段修改为admin,点击forward。
- 回到浏览器中,看到操作成功,但是此时aaaaaa账户并没有掉线,说明修改的并不是aaaaaa的密码。
- 浏览器访问http://192.168.1.4/metinfo4.0/admin进入管理员界面,尝试用原来的账号admin密码123456,登录,发现登录失败,说明上述步骤中修改的是admin的密码。这就是接口参数被篡改导致密码重置的漏洞。
4 总结
- 加深对业务逻辑漏洞的理解。
- 掌握篡改接口数据导致密码重置这个业务逻辑漏洞的测试方法。