【理想汽车-注册安全分析报告-滑动验证加载不正常导致安全隐患】

发布于:2024-09-18 ⋅ 阅读:(2) ⋅ 点赞:(0)

前言

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

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

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

一、 理想汽车PC端注册入口

简介:李想于2015年7月创立的中国新能源汽车品牌,理想汽车,是中国新能源汽车制造商,设计、研发、制造和销售豪华智能电动汽车,由李想创立于2015年7月,总部位于北京,自有生产基地位于江苏常州,理想汽车通过产品创新及技术研发,为家庭用户提供安全及便捷的产品及服务。创始人李想为现任董事长兼首席执行官和执行董事。

在这里插入图片描述
在这里插入图片描述

二、 安全性分析报告:

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

在这里插入图片描述

三、 测试方法:

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

1. 模拟器交互部分



private final String INDEX_URL = "https://www.lixiang.com/login.html?originalUrl=https%3A%2F%2Fwww.lixiang.com%2F%3FregisterAction%3D107%23li";

	@Override
	public RetEntity send(WebDriver driver, String areaCode, String phone) {
		try {
			RetEntity retEntity = new RetEntity();
			driver.get(INDEX_URL);
			Thread.sleep(500);

			// 输入手机号
			WebElement phoneElemet = driver.findElement(By.xpath("//input[contains(@placeholder,'请输入手机号')]"));
			phoneElemet.sendKeys(phone);

			// 点击发送验证码按钮
			WebElement sendElemet = driver.findElement(By.xpath("//input[contains(@placeholder,'请输入验证码')]"));
			// sendElemet.click();

			ActionMove.RobotClick(1543, 565);

			Thread.sleep(1000);
			WebElement gtElement = ChromeDriverManager.waitElement(driver, By.xpath("//div/span/div/span[contains(text(),'s后重新获取')]"), 50);
			String gtInfo = (gtElement != null) ? gtElement.getText() : null;
			retEntity.setMsg(gtInfo);
			if (gtInfo != null && gtInfo.contains("s后重新获取")) {
				retEntity.setRet(0);
			} else {
				System.out.println("gtInfo=" + gtInfo);
			}
			return retEntity;
		} catch (Exception e) {
			System.out.println("phone=" + phone + ",e=" + e.toString());
			for (StackTraceElement ele : e.getStackTrace()) {
				System.out.println(ele.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年7月创立的中国新能源汽车品牌,理想汽车,是中国新能源汽车制造商,设计、研发、制造和销售豪华智能电动汽车,由李想创立于2015年7月,总部位于北京,自有生产基地位于江苏常州,理想汽车通过产品创新及技术研发,为家庭用户提供安全及便捷的产品及服务。理想汽车拥有雄厚的技术实力,但采用的是第三方的滑动验证 ,并且为了用户体验采用智能的方式,不能正常加载导致安全隐患。  即使问题解决,其安全性在机器学习的今天, 已经无法应对攻击了,并且正是由于该产品通俗, 所以在网上破解的文章和教学视频也是大量存在,并且经过验证滑动产品很容易被破解,  所以除了滑动验证方式, 花样百出的产品层出不穷,但本质就是牺牲用户体验来提高安全。 

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

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

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

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

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

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


网站公告

今日签到

点亮在社区的每一天
去签到