如何绕过前端限制

2016-11-21 14:13:14 +08:00
 zhangfanfan

请教一个问题,有些网站是前段限制某些输入的,而且这种限制是未作后端验证的。 https://e.189.cn/register/email/step1.do? 例如上面这个网址,用 live.com 的邮箱无法注册。 我尝试了用 fiddler 来构造请求、 Chrome 修改 JS 内容,不得要领,在这里请教一下大家。 如果能非常具体的讲解一下步骤那就是最好的了。非常感谢。

我用 fiddler 构造请求的时候,它这个好像是加密了的,所以我没法找到对应的字段。 我用 Chrome 修改 JS 不知道怎么修改,直接修改好像修改不了。

页面源码有这么一段: //特殊邮箱处理 var rNotSupportEmail=/.(@msn.)|(@live.)|(@vista.)|(@hotmail.)|(@outlook.)|(@yahoo.)|(@gmail.)|(@corp.21cn.)/; if(rNotSupportEmail.test(itemVal)){ return commit(false, "暂不支持此类邮箱注册"); }; if (itemVal.indexOf("@189.cn") != -1) { return commit(false, "189 邮箱帐号可直接登录"); } var rMail21cn=/.@(..)*21cn.((com)|(net))$/; if (rMail21cn.test(itemVal)) { return commit(false, "21cn 邮箱帐号可直接登录"); // return commit(false, "暂不支持 21CN 邮箱注册"); }

5340 次点击
所在节点    程序员
9 条回复
tinyproxy
2016-11-21 14:22:33 +08:00
document.getElementById('setRegInfoMail').submit()

然而人家后端也做了这个校验,我输入一个 fuck@163.com 能提交成功, fuck@live.com 就 GG
zhangfanfan
2016-11-21 14:24:21 +08:00
额,所以这个是做了后端限制了对吗? 无法用 live.com 邮箱进行注册了
hardensky
2016-11-21 14:56:04 +08:00
后台有校验的 搞个 @live 的提交会重定向到原来页面 这种前端校验只是为了用户体验 后端肯定也会做校验的
ferrum
2016-11-21 15:05:35 +08:00
你可以先输入正确的信息,然后用 Chrome Dev Tools 看看有什么东西都发送过去了,再构建对应的请求。

有个比较好用的 Chrome 插件叫 Postman ,安装了 Postman Interceptor 后还能直接发送 cookies 。

但楼上也有人说了,数据检验,一般不能只由前端做的,后端也会有的,除非后端开发不上心。
ferrum
2016-11-21 15:10:52 +08:00
对于 https://e.189.cn/register/email/step1.do?这里的注册,看一下 Chrome Dev Tools 里的 Network 就知道怎么回事了。

前端先判断邮箱符不符合要求,符合要求后,再向 https://e.189.cn/validation/userNameExist.do?userName=email%40example.com 发送请求,判断符不符合后端的请求。
zhangfanfan
2016-11-21 15:11:28 +08:00
@hardensky 那这种情况下,能否构建修改响应,先欺骗浏览器,进入到下一步(页面)当中去?
liuzhedash
2016-11-21 15:21:28 +08:00
如果只是为了伪造或修改一个请求,改 js 性价比太低,可以用 burp 拦截并修改请求
构建响应欺骗浏览器理论上可以,不过下一步的那个页面在请求的时候可能会检验 session 看上一步是否已经通过,如果没检验的话或许可以进入
jugelizi
2016-11-21 15:27:34 +08:00
人家后端有验证
别试了

复制页面 JS
<script>
//linech 2014-6-20
seajs.use
一直到最后 然后删除中间规则 放到 console 里执行就绕过 js 验证的
用户名可用也通过
hardensky
2016-11-21 16:59:43 +08:00
@zhangfanfan 进入下一步页面也没有意义啊 你写个符合格式的就可以看到页面长啥样 而你伪造的话;下一步的下一步还是过不去啊,后台校验后又不会存你的数据。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/322075

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX