美文网首页灬网站丶每周500字@IT·互联网
如何用js绕过简单前端限制,做一些有趣的事

如何用js绕过简单前端限制,做一些有趣的事

作者: AAAAAAlone | 来源:发表于2016-08-24 12:01 被阅读5535次

依旧是个人学习经验的记录,非常浅显的内容,如果可以帮到小白们,那就再好不过啦!

前些天由于下载一些素材,需要1个金币,充值付费1元即可。
在充值的时候,发现最低付费金额为20元,我用不完剩下的这个钱啊...突发奇想,我能否通过简单的(我会的)方式,只充值1元钱,换取1个金币下载素材呢?
经过尝试,最后成功绕过验证,通过支付宝支付1元钱,用1个金币成功下载了素材。#理论上这是酷酷的黑客行为。

总结了一下,想要绕过前端限制大概可以分为3步。

  • 查看控制台(F12),确定是前端验证(js脚本限制)
  • 找到真正控制提交的函数,以及需要提交的数据
  • 控制台内调用函数和相应参数

举一个栗子

  1. 首先尝试下载资源


    Paste_Image.png
  2. 余额不足,需要充值。顺手查看了一下,这里跳转去充值,是单纯单独的充值页面,没有从这里带去任何参数。


    Paste_Image.png
  3. 到了充值页面,输入1元,鼠标焦点点击其他地方。右侧立即出现验证失败的字样:“...最小金额20金币” ,推测可能为失焦时对文本框内容进行判断。 并且点击支付也提示失败。


    Paste_Image.png

    查看对应的<input>标签后,没有发现onblur属性,判断为js/jQuery 。搜索<input>的name,找到一大段js,发现果然是最普通最简单的前端js脚本限制了充值金额20元 。
    到这里,可以判断我们有机会绕过了,可以尝试一下。(仍然可能在服务器端做了限制,那我等菜鸡就没辙了)


    Paste_Image.png
  4. 查看支付的动作,发现返回 user_pay()的结果:


    Paste_Image.png

    找到user_pay(),发现3个重要的支付动作所必须的参数cash 、pay_mode、bank_type 以及支付函数pay():

     function user_pay() {
         if (check_recharge() == false) {
     return false;
     }
      //支付金额
     var cash = parseFloat($("#recharge").val()) + 0;
     //支付方式--财富通,支付宝
     var pay_mode = $(":radio[name='online']:checked").val();
     //财富通就要添加银行类型
     var bank_type = $(":radio[name='bank_type']:checked").val();
     //弹出付款窗口
     pay(pay_mode, cash, bank_type);
     return false;
     }
    

注释都写好了... 这三个参数分别是金额,支付方式,银行类型。
我们用支付宝支付,不需要bank_type ,那么pay_mode等参数怎么获取值呢?我们可以直接在控制台调用页面内的方法

  1. 直接复制"="右侧的函数在控制台内,回车。(注意页面的状态应该为填写完所有需要的数据,准备提交时)


    Paste_Image.png
    Paste_Image.png

    喔。原来cash就是当前填写的充值金额(肯定早猜到了吧XD),而选择了支付宝的话,pay_mode参数就是"alipaydual", 同理,bank_type的值是1001 。

  2. 刚才的js中,还有一段真正的调用支付的函数:
    pay(pay_mode, cash, bank_type);
    尝试填入cash为1,pay_mode为alipaydual, bank_type填1001



    报错了,也是中文符号。仔细看下,alipaydual应该是一个值,一个字符串,所以加引号。
    pay("alipaydual", 0.1, 1001);


    Paste_Image.png
    虽然依旧返回了一个false,但是成功调起了支付窗口,跳转去支付宝页面支付即可。
    Paste_Image.png 登录后支付,即完成0.1元的充值,绕过了20元的限制喔。
    另外觉得支付宝的console内容好可爱呢...

over ,对于一个非计算机专业非开发岗的同学而言,第一次绕过简单认证,是非常有趣的一件事。

相关文章

  • 如何用js绕过简单前端限制,做一些有趣的事

    依旧是个人学习经验的记录,非常浅显的内容,如果可以帮到小白们,那就再好不过啦! 前些天由于下载一些素材,需要1个金...

  • 关于文件上传漏洞的心得

    1. 最简单就是前端防护,后端不防护,即js检测绕过攻击,此时可以利用浏览器插件删除前端js检测代码或者可以通过b...

  • Upload-labs通关笔记(更新中)

    upload-labs包含漏洞类型分类 Pass-01(前端JS绕过) 方法一:前端检测。js的检测只能位于cli...

  • Python爬虫学习(一)

    其实node.js也可以做爬虫,相信前端的同学已经有所了解,但今天我们要讲的是如何用python,python实现...

  • 做简单有趣的事

    我是一名从优秀导购成长起来的大柜长,分理8个专柜,记得有次培训,当中有一句话“把简单的事,成千上万次地做好,就是不...

  • 手把手带你写Node.JS版本小游戏

    摘要:今天就利用Node.JS为大家带来简单有趣的的剪刀石头布的小游戏。 JavaScript的出现催动了前端开发...

  • 关于前端商城订单时间限制的问题

    有关于时间限制的问题,后端一定要做验证。不然前端手机或者pc修改了时间就绕过了

  • xss

    XSS测试点:事件、闭合标签、伪协议、utf-7、下拉框、隐藏字段、绕过前端长度限制、猜测过滤方式; ` <’”&...

  • js一些有趣的简单应用

    1.滚动条 2.秒表 3.文字时钟 4.短信倒计时

  • window.onerror的总结

    最近一直在做前端js错误监控的工作,在不断的打磨和完善中,发现里面还是知识点不少,现在就前端js错误监控做一些笔记...

网友评论

    本文标题:如何用js绕过简单前端限制,做一些有趣的事

    本文链接:https://www.haomeiwen.com/subject/chqnsttx.html