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

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

  • 前言
  • 一丶找到对外短信接口
  • 二丶分析外部防御措施
  • 三丶查看请求报文
  • 四丶分析测试
    • 1. 直接在浏览器测试
    • 2. 用代码进行测试
  • 五丶结果分析
  • 六丶结语

前言

本文详细介绍了针对发送短信验证码接口的安全性测试过程,包含思路、部分测试代码已经测试结果。
本次测试网站 —听云(tingyun.com)
听云是一家提供数字化运维服务的网站,给运维人元提供数字化运维后台,能为运维工作提供便利。

一丶找到对外短信接口

从该网站注册入口可以发现,有发送短信验证码的地方。

二丶分析外部防御措施

  1. 输入手机号

  2. 点击发送验证码

发现并没有图片验证码等人机校验

外部防御措施:无

三丶查看请求报文

1. 找到发送短信的请求

按下F12打开浏览器控制台,再次点击发送验证码按钮通过控制台找出发送短信的那个请求。

2. 查看请求方式

3. 查看请求报文头

4. 查看请求参数

5. 查看返回值

四丶分析测试

1. 直接在浏览器测试

该请求为get请求,又无可疑参数,可直接复制到地址栏里进行访问,试一下。


果然可以,那么再试试直接换个手机号。

多刷新几次页面。


这时候返回了别的参数,再次更改手机号。

发现又返回了success,可以判断出,他们做了单手机号频率限制。

2. 用代码进行测试

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

//配置请求头
public Object setHeads(CloseableHttpClient httpclient, CookieStore cookieStore, Hashtable<String, String> inheads, LinkedHashMap<String, String> outheads, Hashtable<String, String> input) {inheads.put("Accept", "application/json, text/plain, */*");inheads.put("Cache-Control", "no-cache");inheads.put("Connection", "keep-alive");inheads.put("Host", "account.tingyun.com");inheads.put("Pragma", "no-cache");inheads.put("Referer", "https://account.tingyun.com/reg/register?userFrom=tingyun");inheads.put("Sec-Fetch-Mode", "cors");inheads.put("Sec-Fetch-Site", "same-origin");inheads.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36");inheads.put("X-Tingyun-Id", "V1uX-VqWBw4;r=624124609");getCookie(cookieStore, httpclient, "https://account.tingyun.com/reg/register?userFrom=tingyun", inheads, outheads);String cookieStr = GetCookieHead.CookieHashToString(outheads);if (cookieStr != null) {inheads.put("Cookie", cookieStr);}return inheads;}
//配置请求参数
public Object setParams(CloseableHttpClient httpclient, CookieStore cookieStore, Hashtable<String, String> inheads, LinkedHashMap<String, String> outheads, Hashtable<String, String> input, String phone) {List<BasicNameValuePair> paramList = new ArrayList<>();paramList.add(new BasicNameValuePair("ctime", new SimpleDateFormat("'\"'yyyy-MM-dd'T'HH:mm:ss.SSS'Z\"'").format(System.currentTimeMillis())));paramList.add(new BasicNameValuePair("mobile", phone));paramList.add(new BasicNameValuePair("type", "registerNew"));paramList.add(new BasicNameValuePair("webc", "regweb"));return paramList;}
//配置请求
public RetEntity reg(CloseableHttpClient httpclient, CookieStore cookieStore, Hashtable<String, String> input, String phone) {Hashtable<String, String> inheads = new Hashtable<>();LinkedHashMap<String, String> outheads = new LinkedHashMap<>();httpclient = createSSLClientDefault();RetEntity retEntity = this.userClick(httpclient, cookieStore, "get", "https://account.tingyun.com/reg/ldaf_send_mobile_new283455", inheads, outheads, input, phone);closeHttpClient(httpclient);return retEntity;}

启动测试:

1-40次:{"status":"Sucess"}

>40次:{"status":"randomCountError"}

猜测可能是Ip限制,更换ip后再次测试。

结果为:{"status":"Sucess"}

五丶结果分析

测试目标:

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

测试思路:

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

测试结果:

1.单手机号频率限制(3次/分钟)
2.单IP次数限制(50次/天)

测试结论:

单做了手机号频率以及IP次数限制,当遇到大量更换手机号以及IP的攻击时,该网站的所有防御措施均无效。

风险等级: 高

六丶结语

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

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

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

听云短信接口安全测试,你的短信接口到底有多危险,可能瞬间损失过万,短信接口防盗刷测试相关推荐

  1. 我们公司的短信接口被刷了,瞬间损失两万,怎么解决?(短信接口被盗刷系列1)

    1 我们公司的短信接口被刷了,瞬间损失两万 前两天的中午像往常一样热,太阳不知疲倦的在天空燃烧,热跑了云彩和鸟儿,马上就要点燃空气和我的脑神经.为我和电脑降温的,是我简陋的书桌上的小电扇,没有它的话, ...

  2. 短信接口被恶意调用,瞬间损失两万,怎么解决?

    1 我们公司的短信接口被恶意调用,瞬间损失两万 前两天的中午像往常一样热,太阳不知疲倦的在天空燃烧,热跑了云彩和鸟儿,马上就要点燃空气和我的脑神经.为我和电脑降温的,是我简陋的书桌上的小电扇,没有它的 ...

  3. 安全测试:孔夫子旧书网短信接口安全测试,你的短信接口到底有多危险,可能瞬间损失过万,短信接口防盗刷测试

    – "隐患险于明火,防范胜于救灾,责任重于泰山" 安全问题不容忽视,不要亡羊补牢! 前言 一丶找到对外短信接口 二丶分析外部防御措施 三丶查看请求报文 四丶分析测试 1. 分析测试 ...

  4. 安全测试 : 潮点视频(shipin520.com)网站短信接口安全测试,你的网站安全吗?这一漏洞可能让你瞬间损失过万。

    – "隐患险于明火,防范胜于救灾,责任重于泰山" 安全问题不容忽视,不要亡羊补牢! 前言 一丶找到对外短信接口 二丶分析外部防御措施 三丶查看请求报文 四丶分析测试 1. 分析测试 ...

  5. 阿里云 短信服务——开启验证码防盗刷监控

    阿里云 短信服务--短信发送频率限制 前言 系列博客 开启验证码防盗刷监控 操作步骤 添加联系人 补充(发送总量阈值和套餐包预警值) 如果博主的文章对您有所帮助,可以评论.点赞.收藏,支持一下博主!! ...

  6. 听云CTO访谈:解读现代应用性能管理(APM)技术

    随着互联网的发展,越来越多的IT企业和部门开始越来越重视应用性能管理.听云在该领域耕耘多年,并于前段时间发布了<2014中国移动应用性能管理白皮书>,对国内移动应用的性能问题进行了总结.I ...

  7. PHP APM 对比评测:OneAPM, New Relic, 听云

    原文 http://my.oschina.net/phpfans15/blog/394888 感谢 @penguinz 的推荐,又发现了一家提供应用性能管理服务的国内厂商:"听云" ...

  8. 听云数据库管理平台NetopGO简介

    ➠更多技术干货请戳:听云博客 断断续续写了将近一个月,听云第一版数据库管理平台终于写完了,期间来来回回的改了好多次小毛病,现在已经部署到生产环境上去了. 在刚开始的时候,后端的数据库集群只有10多个节 ...

  9. 听云server探针安装历程

    我的服务器:阿里云CentOS 6.5 64位,环境是php+nginx+apache -------------------------------------------------------- ...

最新文章

  1. 如何強迫 .Net 應用程式輸出英文的例外訊息
  2. python是c语言写的吗-python是用c写的吗
  3. 基于区块链的健康链系统设计与实现(2)区块链平台Web服务器
  4. Java实现读取服务器上的图片并进行base64编码
  5. python中字典数据的特点_Python数据类型(字典)
  6. 【软件】OBS无法捕捉显示屏
  7. centos免密登录
  8. 生成器模式(Builder)
  9. 暮光之城3蓝光BD高清下载
  10. OpenGL是什么?Win10+VS2019下搭建glfw+glad开发环境
  11. python下载网页中的pdf文件_Python下载PDF嵌入页面
  12. 国土档案管理信息系统【档案查借阅登记】
  13. 快捷键,总结一些实用高效的快捷键
  14. python grpc基于流式传输实现长连接
  15. Excel怎么制作三斜线表头
  16. linux安装程序企鹅,分享|Linux/Unix 桌面趣事:召唤一群企鹅在桌面上行走
  17. Spring系列学习之Spring Data Elasticsearch数据访问
  18. 前端导出excel 表格数据1w条数据以上-批量导出
  19. 这40个冷知识,据说只有1%的人知道……颠覆你的认知!
  20. python爬虫可视化excel_Python爬虫以及数据可视化分析!

热门文章

  1. 如何为自己的 CSDN博客设置自定义域名?
  2. vue引入重写样式修改Element-UI表格背景色以及悬浮背景色,带操作的表格也可以修改呦~
  3. ITIL 4 讲解:事态、事件、灾难流程如何界定?
  4. 弹幕插件easyDanmaku.js使用详解
  5. 群晖服务器+微信同步,群晖服务器 云同步
  6. 四大思维工具,SWOT、PDCA、DISC、时间管理
  7. IMX6 / IMX8 系列芯片简单对比
  8. 上海市高校计算机考试准考证
  9. 【组合数学】36军官问题
  10. 计算机网络及因特网的基本知识,计算机网络基本知识