⚠️ 免责声明: 本工具仅用于学习交流和安全测试目的。请确保您的使用符合当地法律法规。任何滥用行为导致的后果由使用者自行承担。
SMSBoom-Terminal-Lite 是一个基于 Python 的终端短信测试工具,采用抽象化设计和配置驱动架构,通过调用多个第三方平台的短信接口进行功能测试。
核心特点:
- 🎯 完全配置驱动 - 所有接口配置外置到 JSON 文件
- 🏗️ 面向对象设计 - 清晰的类结构和职责分离
- 🔧 易于扩展 - 支持动态添加/禁用接口
- 📝 完善的日志系统 - 详细记录运行状态
- 🎨 彩色终端界面 - 支持打字机效果输出和清屏功能
- 📊 实时进度显示 - 原地更新的进度条,显示成功/失败统计
- 🔄 自动循环执行 - 支持多轮循环,每轮间隔5秒倒计时
- 🌐 配置驱动接口 - 95+ 个短信接口,完全通过 JSON 配置管理
- ⌨️ 交互式操作 - 手机号验证、操作确认等安全机制
- 📋 详细日志记录 - 自动记录所有请求到 smsboom.log 文件
- 🎲 随机任务调度 - 每轮任务顺序随机打乱,避免固定模式
- Python 3.8+ - 现代 Python 特性(类型提示、数据类等)
- requests==2.33.1 - HTTP 请求库
- colorama==0.4.6 - 跨平台终端颜色支持
- urllib3==2.6.3 - URL 处理和 SSL 警告抑制
pip install -r requirements.txt或手动安装:
pip install requests colorama urllib3python SMSBoom_Refactored.py- 启动程序 - 显示 Logo 和免责声明
- 输入手机号 - 输入11位数字手机号(输入
q退出) - 确认操作 - 确认目标号码后开始执行
- 查看进度 - 实时显示发送进度和统计信息
- 自动循环 - 每轮完成后自动进入下一轮
SMSBoom-Terminal-Lite/
├── SMSBoom_Refactored.py # 主程序(420行,抽象化设计)
├── interfaces_complete.json # 接口配置文件(95个接口)
├── requirements.txt # Python 依赖清单
├── smsboom.log # 运行日志文件(自动生成)
├── README.md # 项目说明文档
├── LICENSE # 许可证文件
├── .gitignore # Git 忽略配置
├── .venv/ # 虚拟环境(可选)
├── __pycache__/ # Python 缓存目录
└── .idea/ # IDE 配置文件
采用面向对象设计,主要包含5个核心类:
- 封装单个短信接口的完整配置
- 支持 GET/POST/PUT/DELETE 多种请求方法
- 内置
{phone}占位符替换机制 - 自动处理 JSON 和表单两种内容类型
- 从
interfaces_complete.json加载所有接口配置 - 管理接口的启用/禁用状态
- 支持权重调度(每个接口可设置调用次数)
- 提供动态添加/禁用接口的API
- 实时计算成功率和失败率
- 原地更新进度条(不换行)
- 彩色显示(绿色成功/红色失败)
- Logo 和免责声明显示
- 打字机效果输出
- 手机号格式验证(11位数字)
- 操作确认机制
- 跨平台清屏功能
- 整合所有组件
- 控制程序主流程
- 管理循环执行逻辑
- 异常处理和优雅退出
✅ 配置与代码分离 - 修改接口无需改动代码
✅ 高内聚低耦合 - 每个类职责单一明确
✅ 类型安全 - 使用 Python 类型提示和数据类
✅ 易于测试 - 组件独立,便于单元测试
✅ 可扩展性强 - 轻松添加新接口或功能模块
所有短信接口配置在 interfaces_complete.json 文件中:
{
"version": "2.0",
"description": "SMSBoom完整接口配置",
"total_interfaces": 95,
"interfaces": [
{
"name": "接口名称",
"url": "https://api.example.com/sms?phone={phone}",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0..."
},
"data_template": "{\"mobile\":\"{phone}\"}",
"content_type": "application/json",
"timeout": 5,
"enabled": true,
"weight": 1
}
]
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name |
string | ✅ | 接口名称(用于日志和显示) |
url |
string | ✅ | 请求URL,支持 {phone} 占位符 |
method |
string | ❌ | HTTP方法:GET/POST/PUT/DELETE(默认POST) |
headers |
object | ❌ | 请求头字典(可选) |
data_template |
string | ❌ | 请求体模板,支持 {phone} 占位符 |
content_type |
string | ❌ | 内容类型:application/json 或 application/x-www-form-urlencoded |
timeout |
integer | ❌ | 超时时间(秒),默认5秒 |
enabled |
boolean | ❌ | 是否启用该接口,默认true |
weight |
integer | ❌ | 权重(每轮调用次数),默认1次 |
- URL中的占位符:
https://api.example.com/send?phone={phone} - 请求体中的占位符:
{"mobile": "{phone}"}
程序会自动将 {phone} 替换为实际手机号。
如果某个接口失效,只需在配置文件中设置:
{
"name": "失效接口",
"enabled": false // 设置为false即可禁用
}通过 weight 参数控制每个接口的调用次数:
{
"name": "高频接口",
"weight": 3 // 每轮调用3次
}+-----------------------------------+
| SMSBoom Terminal Lite v2.0 |
+-----------------------------------+
抽象化重构版 - 更安全高效
⚠️ 免责声明:本工具仅用于学习交流和安全测试
请确保使用符合当地法律法规
任何滥用行为导致的后果由使用者自行承担
感谢上一个项目的作者:https://github.com/MallocPointer/SMSBoom-Terminal
请输入目标手机号 (输入q退出): 13800138000
即将开始操作,目标: 138****8000
确认执行?(y/n): y
==================================================
📱 目标号码: 138****8000
🔄 循环次数: 1
==================================================
[████████████░░░░░░░░░░░░] 40% | 成功: 60 | 失败: 40 | 任务: 100/250
✓ 本轮完成
⏱️ 耗时: 12.35秒
📊 成功率: 60.0%
即将开始下一轮...
⏳ 等待: 5秒
- 仅用于授权测试 - 仅在获得明确授权的范围内使用
- 遵守法律法规 - 确保使用符合当地网络安全法规
- 尊重隐私权 - 不得泄露或滥用他人手机号信息
- 频率控制 - 避免对单一目标过度请求,防止服务中断
- 接口稳定性 - 第三方接口可能随时变更或关闭
- 网络依赖 - 需要稳定的网络连接
- 资源消耗 - 大量请求可能影响系统性能
- 成功率波动 - 受目标接口风控策略影响
- 保护个人信息 - 不要在公共场合展示运行截图
- 定期清理日志 -
smsboom.log文件包含敏感信息 - 使用虚拟环境 - 建议使用 Python 虚拟环境隔离依赖
如果您是短信接口提供方,建议采取以下防护措施:
- ✅ 图形验证码 - 添加滑块、点选等交互式验证
- ✅ 频率限制 - 实施IP/手机号维度的请求频率控制
- ✅ 设备指纹 - 识别并限制异常设备
- ✅ 行为分析 - 部署风控系统检测异常模式
- ✅ Token验证 - 实现动态Token和签名机制
- ✅ 黑名单机制 - 建立恶意IP和手机号黑名单
- ✅ 人机验证 - 引入reCAPTCHA等验证方案
- 🔐 保护手机号 - 谨慎授权第三方应用获取手机号
- 📱 定期检查 - 关注短信记录中的异常情况
- 🚫 拒绝骚扰 - 收到垃圾短信及时举报
- 🛡️ 启用拦截 - 使用手机管家等工具拦截骚扰短信
A: 可能的原因:
- 第三方接口已更新API地址或参数格式
- 接口增加了验证码或其他防护机制
- 网络连接问题或超时
- 接口暂时关闭或维护
解决方案:在 interfaces_complete.json 中将失效接口的 enabled 设置为 false
A: 编辑 interfaces_complete.json 文件,按照现有格式添加新接口配置:
{
"name": "新接口名称",
"url": "https://api.example.com/sms?phone={phone}",
"method": "POST",
"headers": {"Content-Type": "application/json"},
"data_template": "{\"mobile\":\"{phone}\"}",
"enabled": true,
"weight": 1
}A:
- 检查网络连接是否正常
- 确认已安装所有依赖:
pip install -r requirements.txt - 查看
smsboom.log日志文件了解详细错误信息 - 检查 Python 版本是否为 3.8+
A: 修改接口配置中的 weight 参数:
weight: 1- 每轮调用1次(默认)weight: 3- 每轮调用3次weight: 0- 不调用(等同于禁用)
A: 是的,程序会持续循环执行。如需停止:
- 按
Ctrl+C强制中断 - 或者关闭终端窗口
A: 运行后会在项目根目录自动生成 smsboom.log 文件,记录所有请求详情。
A:
- Fork 本项目
- 在
interfaces_complete.json中添加新接口配置 - 测试确保接口可用
- 提交 Pull Request
- 抽象化架构设计
- 配置文件外置化(JSON格式)
- 日志系统集成
- 类型提示和数据类
- 95+ 个接口配置
- 实时进度条显示
- 自动循环执行
- 异步支持 - 使用 asyncio/aiohttp 提升并发性能
- 代理池 - 支持HTTP代理轮换
- 结果导出 - 导出为CSV/Excel格式
- Web管理界面 - 可视化配置和管理接口
- 接口有效性检测 - 自动测试并标记失效接口
- 智能速率控制 - 根据响应动态调整请求频率
- 单元测试 - 提高代码覆盖率
- Docker支持 - 容器化部署
- 多语言支持 - 国际化界面
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 -
git checkout -b feature/AmazingFeature - 提交更改 -
git commit -m 'Add some AmazingFeature' - 推送到分支 -
git push origin feature/AmazingFeature - 开启 Pull Request
我们特别欢迎以下类型的贡献:
- 🐛 Bug修复 - 发现并修复问题
- ✨ 新功能 - 添加有价值的功能
- 📝 文档改进 - 完善使用说明和注释
- 🔧 接口更新 - 提供新的有效接口配置
- 🎨 代码优化 - 提升性能和可读性
- 遵循 PEP 8 Python 编码规范
- 添加必要的类型提示
- 编写清晰的注释和文档字符串
- 确保新功能有充分的测试
本项目仅供学习研究使用,请遵守当地法律法规。
- 感谢所有为网络安全研究做出贡献的开发者
- 感谢上一个项目的作者:MallocPointer/SMSBoom-Terminal
- 感谢所有贡献者的支持和反馈
- 问题反馈: 请通过 GitHub Issues 提交
- 项目地址: https://github.com/MallocPointer/SMSBoom-Terminal
最后提醒: 技术无罪,但使用需谨慎
请将所学用于正途,共同维护良好的网络环境!🌐
Made with ❤️ by Security Researchers