场景:公司的后台,每次登录都要自己输入用户名,密码,验证码,点击登录,很烦,盘它。
用户名,密码,点击登录很容易用脚本实现
麻烦的是验证码怎么弄,它是个变化的东西
如果验证码每次都是从后台生成的,就有点难弄了,嘻嘻,它这个验证码是前端生成的,这个就好弄了呀!!!
f12打开控制台,输入网址
查看登录的id
发现是J_SubmitStatic
为啥要搜它id呢
写过前端的都知道
网页要监听你的点击动作去处理登录信息
怎么监听呢,一般是通过id去定位
全局搜索一下J_SubmitStatic
可以看到,这段js里面有对它处理
点击进去,可以看到它处理的代码
里面的操作主要是处理表单的内容并上传数据到后台处理
重点关注
else if(identify!=canvasRandom){ show_err_msg('验证码输入有误'); clickChange(); }
只要identify == canvasRandom,我们的验证码就可以通过了。
这两个值是啥呢?在前一点的代码可以看到它的生成方式
var canvasRandom=$('#canvasRandom').val().toLowerCase(); var identify=$("#identify").val().toLowerCase();
可以猜的出, canvasRandom是我们在用户界面验证码输入框填写的值,identify则是它调用方法生成的值,identify的具体生成过程我们不用去管它,因为它无论生成什么我们都可以去修改成我们想要的值(手动滑稽)。
这里分析就结束了
主要就是修改它的canvasRandom和identify。
我们使用油猴(tampermonkey)插件来实现
新建用户脚本
// ==UserScript== // @name 脚本名字 // @namespace 命名空间 // @version 0.1 // @description 描述 // @include 作用的网站 // @author 作者的名字 // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; function setYanzhenma(){ document.getElementById("username").value = "用户名"; document.getElementById("password").value = "密码"; document.getElementById("canvasRandom").value = "8888"; document.getElementById("identify").value = "8888"; document.getElementById("J_SubmitStatic").click(); } setYanzhenma(); })();
实现的功能就是,在网站加载完成后,自动输入用户名,密码,过验证码,点击登录。
这里要注意的点
// @run-at document-end
这个是脚本的注入时机,即在网站加载完成后加载脚本
看一下效果
所以,千万别前端生成验证码呀!!!
网友评论