当前位置:   article > 正文

【汽车之家注册/登录安全分析报告】

【汽车之家注册/登录安全分析报告】

前言

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

1. 暴力破解密码,造成用户信息泄露

2. 短信盗刷的安全问题,影响业务及导致用户投诉

3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞

在这里插入图片描述

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

一、 汽车之家会员注册入口

简介:汽车之家(纽约证券交易所股票代码:ATHM;港交所股票代码:2518)以科技驱动持续降低汽车行业决策和交易成本,秉持着专业、好玩的态度,为消费者提供“省心、省时、又省钱”的便捷汽车消费服务体验,致力于成为国际领先的2B和2C的“内容生态+工具服务+交易平台”一站式汽车生活服务提供商,实现真正的“看车-买车-用车-换车”的生态闭环。

在这里插入图片描述

二、 安全性分析报告:
采用数美的滑动验证码,容易被模拟器绕过甚至逆向后暴力攻击,滑动拼图识别率在 95% 以上。

在这里插入图片描述

三、测试方法:

前端界面分析,采用的是数美的滑动验证码, 网上有现成的逆向文章及视频参考,不过我们这次不用逆向, 只是采用模拟器的方式,关键点主要模拟器交互、距离识别和轨道算法3部分。

测试发现问题:

运行时,偶尔出现停留时间异常的提示, 后来发现纯人工操作也会出现, 害人呀 !!!!

在这里插入图片描述

  1. 模拟器交互部分

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

			// 点击验证码登录
			WebElement tabEleme = driver.findElement(By.xpath("//span[contains(text(),'验证码登录')]"));
			tabEleme.click();
			Thread.sleep(500);

			// 输入手机号
			WebElement phoneElement = driver.findElement(By.id("phoneno"));
			phoneElement.sendKeys(phone);

			// 数美滑动按钮
			WebElement moveElement = driver.findElement(By.className("shumei_captcha_slide_btn"));
			Actions actions = new Actions(driver);
			actions.moveToElement(moveElement).perform();
			Thread.sleep(1000);

			String spCode = "autohome";
			long t = System.currentTimeMillis();
			String path = dataPath + "/" + spCode + "/" + t + "/";
			// 获取大图
			WebElement bigElement = driver.findElement(By.xpath("//img[@class='shumei_captcha_loaded_img_bg']"));
			String bgUrl = bigElement.getAttribute("src");
			if (bgUrl == null) {
				System.out.println("bgUrl=" + bgUrl);
				return retEntity;
			}
			File bFile = new File(path + "big.png");
			FileUtils.copyURLToFile(new URL(bgUrl), bFile);
			byte[] bigBytes = FileUtils.readFileToByteArray(bFile);

			// 获取小图
			WebElement smallElement = driver.findElement(By.xpath("//img[@class='shumei_captcha_loaded_img_fg']"));
			String smallUrl = smallElement.getAttribute("src");
			File smllFile = new File(path + "small.png");
			FileUtils.copyURLToFile(new URL(smallUrl), smllFile);
			byte[] smallBytes = FileUtils.readFileToByteArray(smllFile);
			if (smallUrl == null) {
				System.out.println("smallUrl=" + smallUrl);
				return retEntity;
			}

			String ckSum = GenChecksumUtil.genChecksum(bigBytes);
			String[] result = cv2.getOpenCvDistance(ckSum, bigBytes, smallBytes, spCode, 2);
			// 计算距离
			Double width = Double.parseDouble(result[0]);
			Double d = (Double.parseDouble(result[1]) - width) * 0.64;
			int distince = d.intValue();
			System.out.println("distince=" + distince);

			ActionMove.move(driver, moveElement, distince);
			Thread.sleep(3000);
			// 点击获取验证码
			driver.findElement(By.id("aGetphoneno")).click();
			Thread.sleep(1000);
			WebElement msgElement = driver.findElement(By.id("phonemsg"));
			String msg = (msgElement != null && msgElement.isDisplayed()) ? msgElement.getText() : null;
			retEntity.setMsg(msg);
			if (msg != null && msg.contains("验证码已发送")) {
				retEntity.setRet(0);
			} else {
				System.out.println("msg=" + msg);
			}
			return retEntity;
		} catch (Exception e) {
			System.out.println("send() " + e.toString());
			StringBuffer er = new StringBuffer("send() " + e.toString() + "\n");
			for (StackTraceElement elment : e.getStackTrace())
				er.append(elment.toString() + "\n");
			System.out.println(er.toString());
			return null;
		} finally {
			driver.manage().deleteAllCookies();
		}
	}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80

2. 距离识别
在这里插入图片描述在这里插入图片描述

  1. 轨道生成及移动算法

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

  1. OpenCv 轮廓匹配测试样例:
    在这里插入图片描述

四丶结语

汽车之家作为汽车资讯行业的知名网站, 采用的却是通俗的滑动验证产品, 该产品稳定并且市场占有率很高, 在一定程度上提高了用户体验, 但安全性在机器学习的今天, 已经无法应对攻击了,并且正是由于该产品通俗, 所以在网上破解的文章和教学视频也是大量存在,并且经过验证滑动产品很容易被破解, 所以除了滑动验证方式, 花样百出的产品层出不穷,但本质就是牺牲用户体验来提高安全。

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

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/672100
推荐阅读
相关标签
  

闽ICP备14008679号