该篇Writeup基于HackerOne披露的美国国防部网站漏洞,漏洞涉及IDOR问题,攻击者利用漏洞可通过账户更新功能劫持网站任意用户。以下是作者的漏洞发现过程。
漏洞发现
我在开展美国国防部漏洞众测项目中,发现了某个美国国防部网站登录界面与众不同,它需要通用访问卡(common access card,CAC)认证方式,感觉来说,值得搞搞,因此,决定深入测试一下。
通用访问卡(common access card,CAC):美国国防部用来进行多重身份验证(multifactor authentication)的智能卡(smart card)。通用访问卡作为标准认证发行,可以认证现役军人、后备军人、文职雇员、非国防部雇员、国民警卫队的工薪阶层和合格的承包商人员。加上它作为身份验证功能,访问政府建筑和计算机网络时需要出示通用访问卡。
于是,我马上注册成为了该网站用户,登录后转到以下账户设置页面,该页面的URL跳转路径为https://DOD.mil/signIn/account。乍一看来,该URL路径中没有任何值得下手的ID或IDOR参数,而且也发现不了其它可以产生报错的东西。
但在点击了账户更新“Update”按钮后,通过Burp抓包我发现了以下POST请求,其中包含了我的账户ID、用户名name、绑定邮箱email、绑定电话phone:
从这里的POST请求中我能隐约感觉到其暗含账户劫持的可能,这个包为什么要发送我的账户ID 623呢?这是用我的会话去验证其它安全措施吗?之后,我又注册了另外一个账户,在此过程中该账户被分配的账户ID为624。于是,我退出了该第二个账户,登录到了第一个账户(ID 623)中,在上个POST请求的基础上把其中的ID替换为了624,还把其中涉及的name、email、phone参数都做了替换。如下:
id=624&fName=hacked&lName=hacked&[email protected]&phone=12345
POST请求发出后,我收到了以下有效的响应:
漏洞利用流程
用Burp拦截账户更新’Update’按钮流量POST包;
把POST请求中的账户ID替换为受害者账户ID;
再把其中绑定的邮箱email、电话phone替换为可以控制的值;
发送修改后的POST请求包;
然后以上成功绑定的邮箱发起密码重置请求;
成功劫持了受害者账户。
经验总结
Think outside of the box!
参考来源:naglinagli,编译整理:clouds,转载请注明来自Freebuf.com
来源:freebuf.com 2020-12-17 11:16:21 by: clouds
请登录后发表评论
注册