当前位置: 首页 > news >正文

【社保通-注册安全分析报告-滑动验证加载不正常导致安全隐患】

前言

由于网站注册入口容易被黑客攻击,存在如下安全问题:

  1. 暴力破解密码,造成用户信息泄露
  2. 短信盗刷的安全问题,影响业务及导致用户投诉
  3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞
    在这里插入图片描述

所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如何? 请看具体分析

一、 社保通 PC端注册入口

简介:云生集团,成立于2015年,以“让社会更高效”为使命,致力于成为企业信任、人人信赖的人力资源科技和民生服务平台。为中国企业提供自主知识产权的数字化系统解决方案,云生集团目前在全球超过260个城市设立了直营分支机构,构建成服务全球的智慧企业服务骨干网络GSSN,累计服务16000余家企业,150W+企业雇员。

在这里插入图片描述

二、 安全性分析报告:

采用第三方的智能验证,包含点击和滑动验证,容易被模拟器绕过甚至逆向后暴力攻击,滑动拼图识别率在 95% 以上。
在测试中点击登录后,闪现出滑动验证的加载页面接着消失,不能正常出现滑动验证,估计存在BUG或智能验证算法存在问题,导致一直跳过。

在这里插入图片描述

三、 测试方法:

前端界面分析,这是某第三方的版本,比较简单,网上有大量的文章参考, 我们采用模拟器的方式,关键点主要模拟器交互、距离识别和轨道算法3部分。 测试中发现模拟鼠标无法通过,但采用物理鼠标后,一点就过,并且再也不会弹出滑动窗口。

1. 模拟器交互部分

private static String INDEX_URL = "https://web.hrwork.com/account/register";@Overridepublic RetEntity send(WebDriver driver, String areaCode, String phone) {RetEntity retEntity = new RetEntity();try {driver.get(INDEX_URL);// 1 输入手机号WebElement phoneElemet = ChromeDriverManager.waitElement(driver, By.id("js-form-mobile"), 10);phoneElemet.sendKeys(phone);// 2 获取验证码WebElement gtElement = ChromeDriverManager.waitElement(driver, By.id("js-btn-send"), 1);gtElement.click();// rectTopWebElement inteliElement = driver.findElement(By.id("rectTop"));inteliElement.click();// 3 阿里 滑动验证条Thread.sleep(1 * 1000);boolean isRobot = false;int beginX = 1490;int beginY = 475;if (isRobot) {RobotMove.move(beginX, beginY, 460);} else {AliClient.moveExec(driver, 460);}Thread.sleep(1500);String gtInfo = gtElement != null ? gtElement.getText() : null;retEntity.setMsg(gtInfo);if (gtInfo.contains("重新发送")) {retEntity.setRet(0);} else {retEntity.setRet(-1);System.out.println("gtInfo=" + gtInfo);}return retEntity;} catch (Exception e) {System.out.println(e.toString());return null;} finally {driver.manage().deleteAllCookies();}}

2. 物理鼠标移动算法

/*** 物理鼠标点击* * @param beginX* @param beginY*/public static void RobotClick(int beginX, int beginY) {Robot robot = null;Double curX = null, curY = null;try {// 从当前位置移动到滑动条位置robot = new Robot();Point location = MouseInfo.getPointerInfo().getLocation();curX = location.getX();curY = location.getY();Double xAdd = beginX - curX;Double yAdd = beginY - curY;//System.out.println("RobotMove() init(curX=" + curX + ",curY=" + curY + ",xAdd=" + xAdd + ",yAdd=" + yAdd + ")");Double p = (xAdd.compareTo(yAdd) >= 0) ? Math.abs(yAdd) : Math.abs(xAdd);Double moveX = curX;Double moveY = curY;for (int k = 0; k < p.intValue(); k++) {moveX += xAdd / p;moveY += yAdd / p;robot.mouseMove(moveX.intValue(), moveY.intValue());robot.delay(1);}robot.mouseMove(beginX, beginY);robot.mousePress(InputEvent.BUTTON1_MASK); // 按下左键} catch (Throwable e) {System.out.print("RobotMove() " + e.toString());} finally {if (robot != null) {robot.mouseRelease(InputEvent.BUTTON1_MASK); // 松开左键robot.mouseMove(curX.intValue(), curY.intValue());}}}

3. 测试结果输出:

在这里插入图片描述

四丶结语

云生集团,成立于2015年,以“让社会更高效”为使命,致力于成为企业信任、人人信赖的人力资源科技和民生服务平台。为中国企业提供自主知识产权的数字化系统解决方案,云生集团目前在全球超过260个城市设立了直营分支机构,构建成服务全球的智慧企业服务骨干网络GSSN,累计服务16000余家企业,150W+企业雇员,拥有雄厚的技术实力,但采用的是第三方的滑动验证 ,并且为了用户体验采用智能的方式,不能正常加载导致安全隐患。 即使问题解决,其安全性在机器学习的今天, 已经无法应对攻击了,并且正是由于该产品通俗, 所以在网上破解的文章和教学视频也是大量存在,并且经过验证滑动产品很容易被破解, 所以除了滑动验证方式, 花样百出的产品层出不穷,但本质就是牺牲用户体验来提高安全。

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

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

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

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

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

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


http://www.mrgr.cn/news/42235.html

相关文章:

  • vue-cli老项目继续优化:json压缩神器 compress-json
  • 【ShuQiHere】深入理解 LC-3 的输入输出机制(I/O Mechanism)
  • C 语言预处理详解:从宏替换到条件编译
  • SSY20241002提高组T4题解__纯数论
  • JavaScript 数组方法
  • esp32开发环境搭建和烧录测试
  • 鸿蒙 HarmonyNext 与 Flutter 的异同之处
  • Linux 6.11版本发布
  • 大模型笔记05--coze经典案例分析
  • King of Range 2024牛客国庆集训派对day3
  • SQL学习3
  • Prompt 初级版:构建高效对话的基础指南
  • 计算机毕业设计 基于Python的个性化旅游线路推荐系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • MySQL 中的 GTID 复制详解
  • JAVA-异常(通俗易懂)
  • Elasticsearch——数据聚合、数据同步与集群搭建
  • C#类的概念
  • 通过栈实现字符串中查找是否有指定字符串的存在
  • mybatis如何与spring的结合
  • 【西门子V20变频器】 变频器运行时报A922报警