zoukankan      html  css  js  c++  java
  • 讠己 —— 冫欠 自 云力 扌仓 石马

    0x00

      某演唱会的票非常难买,难点在于首先得是粉丝俱乐部年费会员,是年费会员才能抢一个用来抢票的码,用这个码才有资格去票务网上买票。这个艺人的粉丝数量是千万级的,想在那开抢的时候在一堆502里面挤到一点资源,许多人会开个浏览器、多个标签页甚至多台电脑同时提交请求。那么何不让机器帮我们抢呢,因此以下应运而出。

    0x01 GreaseMonkey&脚本

      第一件事情就是研究一下网页。当时的页面大致是这样的:

      用chrome开发者工具(F12)这一前端利器查看网页结构

      结果发现抢码按键的执行脚本赫然写在那里

    <script type="text/javascript">function surego(area){
        if(area == 0){
          $("#tips").html('活动暂时关闭');
          $("#uurl").html('<a href="/" class="a1">回到首页</a>');
          $(".qdtcfr").show().find(".qdtc_c").css({ "margin-top": "-" + $(".qdtc_c").height() / 2 + "px" });
        }else{
          $.ajax({
            type: 'POST',
            url: "/sign/getbuycode",
            dataType:'json',
            data: {'area':area},
            beforeSend:function(){
              // $("#city").append("<a>loading...</a>");//
            },
            success:function(re){
              if(re.status == 0){
                $("#tips").html(re.info);
                if(re.title == "去登录"){
                  $("#uurl").html('<a href="'+re.url+'" class="a1">'+re.title+'</a>');
                }else if(re.title == "回到首页"){
                  $("#uurl").html('<a  href="'+re.url+'" class="a1">'+re.title+'</a>');
                }else{
                  $("#uurl").html('<a target="_blank" href="'+re.url+'" class="a1">'+re.title+'</a>');
                }
                $(".qdtcfr").show().find(".qdtc_c").css({ "margin-top": "-" + $(".qdtc_c").height() / 2 + "px" });
              }else{
                alert(re.info);
                // $("#tips").html(re.info);
                // $("#vcode").val(re.code);
                // $("#uurl").html('<p class="p5">请保存好该号码,等待永乐通知正式开票时间,凭借此码进行购买!</p>');
              }
            },
            error:function(){
              alert("数据加载失败");
            }
          });
        }
      }
      $(".qdtcfr a.qd_close").click(function () {
        $(".qdtcfr").hide();
      });
      $(".zly_nr3 a").each(function () {
        $(this).click(function () {
          $(".qdtcfr").show().find(".qdtc_c").css({ "margin-top": "-" + $(".qdtc_c").height() / 2 + "px" });
        });
      });
      $(".qdtc_02 a.a2").click(function () {
        $(".qdtcfr").hide();
      });
      // $(".qdtc_02 a.a1").click(function () {
        //     $(".qdtcfr").hide();
        // });</script>
    

      那么,循环就好喽~

      立马改用Firefox打开页面,用油猴来加载我们自动抢码脚本,记得限制一下脚本执行的页面的url,要不然开任何页面都执行,产生的流量就多了。

    // ==UserScript==
    // @name        tfent autogetbuycode
    // @namespace   AGBC
    // @description TO AUTOMATIVELY GET BUYCODE
    // @include     http://www.tfent.cn/sign/show?id=1
    // @version     1
    // @grant       none
    // ==/UserScript==
    setInterval(function () {//这个函数就是用来循环的,第一个参数是要执行的函数,第二个参数是每两次执行的间隔时间的毫秒数
      $.ajax({
        type: 'POST',
        url: '/sign/getbuycode',
        dataType: 'json',
        data: {
          'area': 2
        }, //改区域码的位置
        beforeSend: function () {
          // $("#city").append("<a>loading...</a>");//显示加载动画
        },
        success: function (re) {
          if (re.status == 0) {
            //alert("Damn it!!!!!!")
            return;
          } else {
            alert(re.info);//成功抢到就弹窗告诉我
            // $("#tips").html(re.info);
            // $("#vcode").val(re.code);
            // $("#uurl").html('<p class="p5">请保存好该号码,等待永乐通知正式开票时间,凭借此码进行购买!</p>');
          }
        },
        error: function () {
          //alert("Dick!!!!!!!!!!!!!");
          return;
        }
      });
    }, 2000)
    

      把火狐右上角的油猴头点亮,打开抢码页,就可以躺着等成功的弹窗了!

    0x02 Intruder attack using Burp Suite

      但是,我还是要用另一款神器一起抢,上了这两个保险,心里才踏实嘛!
      从脚本中我们可以看到,执行这个脚本是向/sign/getbuycode POST 一些数据

      上Burp Suite用Intruder,把area的payload设成许多一样值的字典就行了。注意配置发包的频率,然后就可以右上角开始attack了!
      这下终于能安心躺着lol

      当时间进入抢码时间时,网络拥塞,基本上都返回502了,一旦有资源给我们提供那一瞬间的服务,就返回200了,就说明我们抢到想要的东西了。

      万事俱备,就等时间到了!悄悄说一下,我没敢躺着……

      开始抢码了,我就一边盯着Burp期望在一堆502里能出现个200,一边盯着浏览器。终于在一分钟内,浏览器弹窗了,回去Intruder attack看,果然返回了我想要的东西。

      查看一下成功应答的包!

      去个人中心确认一下:

  • 相关阅读:
    2020.12.11(读书笔记)
    python打包tkiner程序运行时任务栏图标
    使用py2exe打包exe
    word常用设置方法收集
    Helium初体验
    thkiner常用组件
    Java高并发16-LongAdder类源码解析(上)
    Java高并发15-AtomicLong等原子类源码解析
    Java高并发14-多线程下ThreadLcoalRandom源码解析以及对比
    如何做一个自动化感应垃圾桶
  • 原文地址:https://www.cnblogs.com/d0main/p/7436653.html
Copyright © 2011-2022 走看看