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

news/2024/10/4 6:33:30 标签: 安全, 网络安全, 安全威胁分析, web安全

前言

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

  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";

	@Override
	public 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();

			// rectTop
			WebElement 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.niftyadmin.cn/n/5689620.html

相关文章

ElasticSearch 备考 -- 备份和恢复

一、题目 备份集群下的索引 task&#xff0c;存储快照名称为 snapshot_1 二、思考 这个涉及的是集群的备份&#xff0c;主要是通过创建快照&#xff0c;涉及到以下2步骤 Setp1&#xff1a;注册一个备份 snapshot repository Setp2&#xff1a;创建 snapshot 可以通过两种方…

[VULFOCUS刷题]tomcat-pass-getshell 弱口令

tomcat-pass-getshell 弱口令 启动容器&#xff0c;打开网站 点开manageapp&#xff0c;输入弱口令 tomcat/tomcat 之后在下面上传jsp大马&#xff0c;首先生成一个jsp马 这里我直接使用github别人生成好的 tennc/webshell: This is a webshell open source project (github.…

优化后的版本

docker_operations.sh #!/bin/bash# all definition NETWORK_NAME"net-1" VOLUME_MOUNT"-v /home/norten/Public/tools:/mnt" # 容器内部挂载到主机的路径 SCRIPT_ROUTE"/mnt" # container_run_medium.sh所在的路径 IMAGE_NAME"ubuntu&quo…

Linux shell编程学习笔记85:fold命令——让文件瘦身塑形显示

0 引言 我们使用的电脑屏幕有宽有窄&#xff0c;我们有时候希望文件能按照我们的屏幕宽度来调整和匹配&#xff0c;这时我们可以使用fold命令。 1 fold命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 fold 命令 的帮助信息 我们可以输入命令 fold--help 来查看fold …

爬虫——同步与异步加载

一、同步加载 同步模式--阻塞模式&#xff08;就是会阻止你浏览器的一个后续加载&#xff09;停止了后续的解析 因此停止了后续的文件加载&#xff08;图像&#xff09; 比如hifini音乐网站 二、异步加载 异步加载--xhr(重点) 比如腾讯新闻&#xff0c;腾讯招聘等 三、同…

实景三维赋能城镇数字化规划

在数字化浪潮的推动下&#xff0c;城镇规划正经历着前所未有的变革。实景三维技术以其独特的优势&#xff0c;为城镇数字化规划提供了强大的技术支持。今天&#xff0c;我们将深入探讨实景三维技术如何赋能城镇数字化规划。 一、城镇规划面临的挑战 随着城镇化进程的加快&…

Git版本控制工具--关于命令

Git版本控制工具 学习前言 在项目开发中&#xff0c;总是需要多个人同时对一个项目进行修改&#xff0c;如何高效快速地进行修改&#xff0c;且控制各自修改的版本不会和他人的进行重叠&#xff0c;这就需要用到Git分布式版本控制器了 作用 解决了一致性&#xff0c;并发性…

滑动窗口--(上篇)

滑动窗口 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度**。**如果不存在符合条件的子数组&#xff0c;返回 0 。 …