安全测试 : 奇安信(qianxin.com)网站短信接口安全测试,这个隐患要十分注意,不然可能瞬间损失数万!

本文主要是介绍安全测试 : 奇安信(qianxin.com)网站短信接口安全测试,这个隐患要十分注意,不然可能瞬间损失数万!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

– “隐患险于明火,防范胜于救灾,责任重于泰山”

安全问题不容忽视,不要亡羊补牢!

      • 前言
      • 一丶找到对外短信接口
      • 二丶分析外部防御措施
      • 三丶查看请求报文
      • 四丶分析测试
        • 1. 分析测试要点
        • 2. 编写代码模拟请求进行测试
      • 五丶结果分析
      • 六丶结语

前言

本文详细介绍了针对发送短信验证码接口的安全性测试过程,包含思路、部分测试代码以及测试结果。
本次测试网站 —奇安信(qianxin.com)
奇安信是一家提供安全服务的网站平台。

在这里插入图片描述

一丶找到对外短信接口

从该网站注册入口可以发现,也是通过发送手机短信验证码来完成注册。

在这里插入图片描述

二丶分析外部防御措施

  1. 输入手机号发送验证码
    在这里插入图片描述

外部防御措施:无

三丶查看请求报文

1. 找到发送短信的请求

按下F12打开浏览器控制台,再次点击发送验证码按钮通过控制台找出发送短信的请求。在这里插入图片描述

2. 查看请求方式

在这里插入图片描述

3. 查看请求报文头
在这里插入图片描述

4. 查看请求参数
在这里插入图片描述
据观察请求参数使用了base64加密

在这里插入图片描述使用在线解码工具可以看到加密参数中除了参数名phone和手机号码外还有些特殊字符
在这里插入图片描述由于前面的特殊字符和参数名都为固定值,所以我们只需要将手机号码加密替换掉原参数的手机号码加密串即可。

5. 查看返回值

在这里插入图片描述

四丶分析测试

1. 分析测试要点
  • 参数使用base64加密
2. 编写代码模拟请求进行测试

接着利用Java模拟报文请求 ,进行测试。部分代码如下:

//配置请求头inheads.put("Content-Type", "application/grpc-web-text");inheads.put("Host", "passport.qianxin.com");inheads.put("Origin", "https://passport.qianxin.com");inheads.put("Accept", "application/grpc-web-text");inheads.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36");inheads.put("Referer", "https://passport.qianxin.com/reg/register");
//配置请求参数String str = "AAAAABoQABgBIhQKBXBob25lEgsx"+Base64.encode(phone.substring(1, phone.length()));
//配置请求retEntity = this.userClick(httpclient, cookieStore, "post", "https://passport.qianxin.com/api/zeus.CodeV1/CreateCode", inheads, outheads, input, phone);

启动测试:

1次:

在这里插入图片描述

手机号码唯一,IP唯一:

10次 --间隔时间1秒:

在这里插入图片描述

手机号码不唯一,IP唯一:

10次 --间隔时间1秒:

在这里插入图片描述

五丶结果分析

测试目标:

针对发送短信验证码接口进行安全性测试。

测试思路:

1.找到请求接口
2.分析请求报文
3.模拟请求测试

测试结果:

请求参数加密
但手机号码频率限制

测试结论:

当遇到更换手机号以及IP的攻击时,该网站的所有防御措施均无效。

风险等级: 极高

六丶结语

很多人在短信服务刚开始建设的阶段,可能不会在安全方面考虑太多,理由有很多。
比如:“ 需求这么赶,当然是先实现功能啊 ”,“ 业务量很小啦,系统就这么点人用,不怕的 ” , “ 我们怎么会被盯上呢,不可能的 ”等等。

有一些理由虽然有道理,但是该来的总是会来的。前期欠下来的债,总是要还的。越早还,问题就越小,损失就越低。

所以大家在安全方面还是要重视。(血淋淋的栗子!)#安全短信#

戳这里→康康你手机号在过多少网站注册过!!!

谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务, 那么当所有的图形验证码都被破解时,大家又该如何做好防御呢?

>>相关阅读
《腾讯防水墙滑动拼图验证码》
《百度旋转图片验证码》
《网易易盾滑动拼图验证码》
《顶象区域面积点选验证码》
《顶象滑动拼图验证码》
《极验滑动拼图验证码》
《使用深度学习来破解 captcha 验证码》
《验证码终结者-基于CNN+BLSTM+CTC的训练部署套件》

这篇关于安全测试 : 奇安信(qianxin.com)网站短信接口安全测试,这个隐患要十分注意,不然可能瞬间损失数万!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor