Web 攻防之业务安全:接口参数账号篡改测试.
业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业务所提供的服务安全;狭义的业务安全指业务系统自有的软件与服务的安全。
目录:
接口参数账号篡改测试:
测试原理和方法:
测试过程:
第一步:在某网站的找回密码功能中,当输入账用户账号后会发现发送重置密码的邮箱 || 手机号的按钮。在单击发送按钮时抓包,可以看到用户的邮箱 || 手机号已经出现在数据包的 email 参数中,那么尝试将 enail 参数修改为我们自己的邮箱 || 手机号.
第二步:修改 enail 参数的值后,网站提示邮件 || 手机号已经发送成功,此时我们打开我们自己的邮箱 || 手机查看修改密码的邮箱 || 短信是否收到?
第三步:可以看到修改密码的信息已经发送到手机 || 邮箱中,打开链接即可修改目标的用户密码,尽管目标用户绑定的不是我们的邮箱,服务端乃将邮件 || 短信发送到我们篡改后的邮箱 || 手机中.
第四步:然后输入收到验证码就可以重置密码.
修复建议:
免责声明:
严禁利用本文章中所提到的虚拟机和技术进行非法攻击,否则后果自负,上传者不承担任何责任。
接口参数账号篡改测试:
测试原理和方法:
找回密码功能逻辑中常常会在用户修改密码接口提交参数中存在传递用户账号的参数,而用用户账号参数作为一个可控变量是可以被篡改的,从而导致修改账号密码的凭证或修改的目标账号出现偏差,最终造成任意账号密码修改的漏洞。
通常在找回密码逻辑中,服务端会在要求用户提交要修改的账号,然后给这个账号发送只有账号主人才能看到的凭证,例如给这个账号的主人绑定的邮箱或手机号发送验证码或这找回密码的链接,这样可以保证只有账号主人才能看到这类凭证,但是如果服务端对账号的可控制逻辑不当,就会导致原有的账号被篡改为其他账号,服务端把凭证发送给创改后的账号的邮箱或手机号,最终造成可以利用凭证重置任意账号密码的漏洞。
测试过程:
接口参数账号修改测试流程为拦截前端请求,通过修改请求内邮箱或手机号等参数,将修改后数据发送给服务器进行欺骗,达到密码重置的目的.
第一步:在某网站的找回密码功能中,当输入账用户账号后会发现发送重置密码的邮箱 || 手机号的按钮。在单击发送按钮时抓包,可以看到用户的邮箱 || 手机号已经出现在数据包的 email 参数中,那么尝试将 enail 参数修改为我们自己的邮箱 || 手机号.
第二步:修改 enail 参数的值后,网站提示邮件 || 手机号已经发送成功,此时我们打开我们自己的邮箱 || 手机查看修改密码的邮箱 || 短信是否收到?
第三步:可以看到修改密码的信息已经发送到手机 || 邮箱中,打开链接即可修改目标的用户密码,尽管目标用户绑定的不是我们的邮箱,服务端乃将邮件 || 短信发送到我们篡改后的邮箱 || 手机中.
第四步:然后输入收到验证码就可以重置密码.
修复建议:
对找回密码的 Token 做一对一的校验,一个 Token 只能修改一个用户,同时一定要保证 Token 不泄漏.
学习的书籍:Web 攻防之业务安全实战指南.