3.3 CTF Postbook用户A能修改用户B数据
缺陷标题:CTF PostBook网站>用户A登录后,可以修改其他用户的数据。
测试平台与浏览器:Windows 10+IE11或Chrome浏览器。
测试步骤:
1)打开国外安全夺旗比赛网站 主页:https://ctf.hacker101.com/ctf,如果已有账户直接登录,没有账户请注册一个账户并登录。
2)登录成功后,请进入到Postbook网站项目https://ctf.hacker101.com/ctf/launch/7,如图3-3所示。
图3-3 进入Postbook网站
3)单击sign up链接注册两个账户,例如:admin/admin,abcd/bacd。
4)用admin/admin登录,然后创建两个帖子,再用abcd/abcd登录创建两个帖子。
5)观察abcd用户修改帖子的链接:XXX/index.php?page=edit.php&id=5。
6)篡改上一步URL中的id为1,2等,以abcd身份修改admin或其他用户的帖子,如图3-4所示。
图3-4 用户abcd篡改URL,修改其他用户帖子
期望结果:因身份权限不对,拒绝访问。
实际结果:用户abcd能不经其他用户许可,任意修改其他用户的数据,成功捕获Flag。如图3-5所示。
图3-5 用户abcd成功修改用户admin的帖子,成功捕获Flag
[攻击分析]:
在Web安全中,权限控制出错的例子非常多,例如:
1)用户A,在电子书籍网站购买了三本电子书,然后用户A单击书名就能阅读这些电子书,每本电子书都有bookid,用户A通过篡改URL,把bookid换成其他id,就有可能可以免费看别人购买的电子书籍。
2)普通用户A,拿到了管理员的URL,试图去运行,结果发现自己也能操作管理员的界面。
3)普通用户A,找到修改/删除自己帖子的URL,通过篡改URL把帖子id改成其他人的,就可以修改/删除别人的帖子。
软件工程师在实现基本的功能后,需要考虑到不具有权限的人,是否能直接运行这些非法操作。