Web 攻防之业务安全:Response状态值修改测试(修改验证码返回值为 true)
Web 攻防之业务安全:Response状态值修改测试
业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业务所提供的服务安全;狭义的业务安全指业务系统自有的软件与服务的安全。
目录:
Response状态值修改测试:
测试原理和方法:
测试过程:
第一步:找到某网站的返回密码功能,输入要找回的目标手机号,短信验证码可以随便输入,然后点击 “ 找回密码 ” 按钮并对该请求进行抓包(Burp Suite )
第二步:可以看见这个请求包含有 validateCode(验证码) 和 phone(手机号)两个参数,然后在 Burp Suite 抓包页面中右击 ,选择Do intercept --> Response to this request -- >放包,后就可以看到这个请求的回显包了
第三步:然后就可以看到 Response 回显包已经成功接收到了,但是包返回的值是 false,通常 false 是失败的含义,也就是说服务器端校验验证码的时候发现验证码不一致然后返回了 false 给客户端,然后在这里我们尝试一下把 false 修改为 true ,然后点击 Intercept is on 按钮关闭拦截让数据包正常发送。
第四步:接着我们可以看到页面直接跳转到密码重置页面.
修复建议:
免责声明:
严禁利用本文章中所提到的技术进行非法攻击,否则后果自负,上传者不承担任何责任。
Response状态值修改测试:
测试原理和方法:
修改请求的响应结果来达到密码重置的目的存在,这种漏洞的网站或者手机APP往往因为校验不严格,导致了非常危险的重置密码操作。
这种漏洞的利用方式通常是在服务端发送某个密码重置的凭证请求后,出现特定的响应值,比如true,1,ok,success 等值,网站看到回显内容为特定值后就可以修改密码,通常这种漏洞的回显时校验是在客户端进行的,所以只需要修改回显值即可。
测试过程:
Response状态值修改测试流程主要是分析服务端校验后的结果,正确和错误分别是什么样的返回结果,通过修改返回结果为正确来欺骗客户端,以达到密码重置的目的。
第一步:找到某网站的返回密码功能,输入要找回的目标手机号,短信验证码可以随便输入,然后点击 “ 找回密码 ” 按钮并对该请求进行抓包(Burp Suite )
第二步:可以看见这个请求包含有 validateCode(验证码) 和 phone(手机号)两个参数,然后在 Burp Suite 抓包页面中右击 ,选择Do intercept --> Response to this request -- >放包,后就可以看到这个请求的回显包了
第三步:然后就可以看到 Response 回显包已经成功接收到了,但是包返回的值是 false,通常 false 是失败的含义,也就是说服务器端校验验证码的时候发现验证码不一致然后返回了 false 给客户端,然后在这里我们尝试一下把 false 修改为 true ,然后点击 Intercept is on 按钮关闭拦截让数据包正常发送。
第四步:接着我们可以看到页面直接跳转到密码重置页面.
修复建议:
注意不要在前端利用服务器端返回的值判断是否可以修改密码,要把整个校验环节交给服务端进行验证.
学习的书籍:Web 攻防之业务安全实战指南.