验证码识别工具的使用
2021-11-26 本文已影响0人
migrate_
遵纪守法
任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益
验证码识别
- 偶然间发现一款可以识别验证码的工具,配合burpsuit有奇效
需要3款工具配合
- https://github.com/smxiazi/NEW_xp_CAPTCHA
- 暴力猴(chrome 插件)
- 验证码识别端
使用方法
- 首先chrome 安装完插件并创建脚本(脚本的内容为下边的内容,ip改成电脑本地IP地址,端口为验证码识别端口)
// ==UserScript==
// @name 自动输入简单验证码
// @namespace Violentmonkey Scripts
// @match *://*/*
// @grant GM_xmlhttpRequest
// @version 1.0
// @author 顾北
// @description 2021/7/2下午4:08:51
// ==/UserScript==
//这里是填写验证码
function yzm(s){
let form = document.getElementsByTagName('input');
for (let i = 0; i < form.length; i++) {
if (form[i].name=="seccodeverify" ) {
form[i].value = s
}else if (form[i].type == 'password'){
c = i+1
form[c].value = s
console.log("写入验证码");
}
};
}
function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
function checkPictureName(str)
{
var strRegex = "(.jpg|.png|.jpeg|.gif|.ico|.svg|==)$"; //用于验证图片扩展名的正则表达式
var re= new RegExp(strRegex);
if (re.test(str.toLowerCase())){
return "s"
} else{
return str;
}
}
sleep(700).then(() => {
var img="";
var arrImg = document.images;
for (let i = 0; i < arrImg.length; i++){
let url=arrImg[i].src
let ss=checkPictureName(url)
if (ss =="s"){
} else{
img = ss
}
}
var dd = document.images;
for (let i = 0; i < dd.length; i++){
if (dd[i].src.includes(img)) {
console.log("获取唯一验证码链接成功");
dd[i].setAttribute("crossOrigin",'Anonymous');// 设置允许跨域
img = dd[i];
img.onload = function(){
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(arrImg[i], 0, 0, arrImg[i].width, arrImg[i].height);
var ext = arrImg[i].src.substring(arrImg[i].src.lastIndexOf(".") + 1).toLowerCase();
var dataURL = canvas.toDataURL("image/" + ext)
// ctx.drawImage(img, 0, 0, img.width, img.height);
// var dataURL = canvas.toDataURL("image/png");
// var ss= dataURL
console.log(dataURL)
//这里就是发送到本地api 接口的代码,如果需要对接打码按照类似的格式修改
GM_xmlhttpRequest({
url: 'http://192.168.66.93:1111/api',
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data:'url='+dataURL,
responseType: "text",
onload: obj => {
var data=obj.responseText;
yzm(data)
console.log(data);
}
})
}
}
};
} )
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
- 第一位还是加载字典
- 第二位选择插件