漏洞描述:

关键逻辑仅在前端Javascript处进行验证,导致攻击者可以绕过前端验证直接向服务端提交数据。

测试方法:

1.开启抓包软件拦截请求功能,查看关键逻辑判断是发生在前端还是向服务端发送请求去验证;
2.若在前端验证,则可通过禁用javascript绕过前端检测,或先在前端输入符合条件的数据,然后拦截请求包,修改参数。

漏洞分析:

关键逻辑判断前端验证通常发生在上传文件时校验文件格式、验证表单输入内容是否合法、验证码校验等场景。攻击者可利用该漏洞上传任意文件、插入跨站脚本等。

漏洞等级:

【高危】:前端进行校验,绕过之后可执行后续业务操作/获取服务器权限/修改用户信息/修改业务数据/验证码本地校验。
【中危】:前端进行校验,绕过用户名密码组成规则或对业务影响不大。

修复方案:

建议在不影响业务的前提下,关键业务逻辑放在服务端判断。

特别提示:前端传递的数据均不可信,能在服务端验证一定要在服务端验证。