赞
踩
利用js脚本来帮你抢到一个表单提交类型的各种活动,这里以讲座为例~
注册一个麦克表单
创建一个自己的表单
首先自己提交一个表单,同时打开f12中的network,看一看自己提交的东西包含了什么。
比如这里我们发现了d这个对象
之后我们尝试着按照它这种格式,自己提交一下,看看能不能成功。
这里我选用了restlet这个工具。
可以发现,成功了o(* ̄▽ ̄*)o
可以看出,我们发送的所有数据都在那个d对象中了,只要能够伪造一个d对象就可以了。当然,还有一个信息也非常重要,那就是我们要发送到的url。
首先,我们来仔细研究下这个表单中提交的这个数据d中的内容:
- d:
- {
- "cvs":
- {
- "i":200161277,
- "t":"qC46nGG",
- "s":200451541,
- "acc":"rwazMfH366xixYAPA6VwsFhRdKvlRkRi",
- "r":"http://www.mikecrm.com/form.php",
- "c":
- {
- "cp":
- {
- "201664030":"超超",
- "201664031":"123456"
- }
- }
- }
- }

这些字段都是哪里来的呢?
我们再次打开刚才的表单填写页面,通过查看源码可以看到有这样一段脚本。
至此,我们就发现了所有秘密的答案,全部在SOUL这个变量中:
- var SOUL =
- {
- "w":800,
- "h":
- {
- "t":"2018年全球智能工业大会",
- "ly":2,
- "lys":1
- },
- "t":null,
- "st":
- {
- "h":{"bgl":{"h":3,"v":9},"yof":0,"bg":"_header_bg_duRuo.png","bgc":"#3B67A0","bgo":1,"tc":"#FFFFFF","dc":"#FFFFFF"},
- "bgc":"#EDF0F8",
- "thc":"#2D8FD9",
- "b":{"bgc":"#FDFDFE","bgo":1,"tc":"#000000","dc":"#666666","oc":"#000000"},
- "s":{"bgc":"#FAFBFC","bgo":1,"btc":"#3B67A0","btct":"#FFFFFF","btw":2}
- },
- "se":null,
- "ext":null,
- "cpo":"201664030;201664031",
- "cpl":"--",
- "cp":{"201664030":[6,1,{"t":"姓名"},null,0],"201664031":[6,1,{"t":"学号"},null,0]},
- "cp_ctcf":null,
- "_m":
- {
- "FRS":200451541,
- "ACC":"rwazMfH366xixYAPA6VwsFhRdKvlRkRi",
- "T":"qC46nGG",
- "I":200161277,
- "U":"\/ugc_5_c\/pub\/6p\/6ppq91m74tg2ln2lb4o22670qjcm9naf\/form\/image\/",
- "CLN":"个人"
- }
- };

这里的FRS对应提交的s字段,I对应i字段,ACC对应acc,T对应t。 cpo字段中
"201516568;201516569"
正是提交的字段中cp的key,value则是填写的值。
我们在抢课开始前几分钟的时候,要用电脑浏览器打开“阅读全文”的网址,并把这个网址复制下来。然后F12打开Console,复制以下代码进去,回车。
- function exec(url){
- $.get(url,function(data){
- data.split("\n").forEach(it=>{
- if(it.indexOf("SOUL")>=0){
- eval(it);
- var d = deal(SOUL,url);
- $.post("http://cn.mikecrm.com/handler/web/form_runtime/handleSubmit.php",{d:d},function(data){
- console.log(data)
- })
- }})}
- )
- }
- function deal(SOUL,url){
- var i = SOUL._m.I;
- var t = SOUL._m.T;
- var s = SOUL._m.FRS;
- var acc = SOUL._m.ACC;
- var cp = SOUL.cpo.split(';')
- var r = url;
- var c = {};
- c[cp[0]]="你的名字";//姓名
- c[cp[1]]=123213;//学号
- var c = {cp:c}
- var d ={"cvs":{i,t,s,acc,r,c}};
- return JSON.stringify(d);
- }

然后exec(window.location.href)
就是选课一次了。
(额,这个演示有点失误...不要在意这些细节!)
如果想要每秒帮忙选一次则可以
- setInterval(
- function(){
- exec(window.location.href)
- },1000
- )
window.location.href
改成当天新推的表单的网址。
当然,还有一种更加舒服的用法,就是使用油猴脚本(这个插件很强大,详细的用法我就不多说了吧...)
注意其中最上面的@match要匹配你的表单网址
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。