登录安全分析报告:小米官网注册

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

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

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

一、 小米官网会员注册入口

简介:小米集团成立于2010年4月,2018年7月9日在香港交易所主板挂牌上市(1810.HK),是一家以智能手机、智能硬件和IoT平台为核心的消费电子及智能制造公司。
胸怀“和用户交朋友,做用户心中最酷的公司”的愿景,小米致力于持续创新,不断追求极致的产品服务体验和公司运营效率,努力践行“始终坚持做感动人心、价格厚道的好产品,让全球每个人都能享受科技带来的美好生活”的公司使命。
在这里插入图片描述

二、 安全性分析报告:

采用极验的V2版本,容易被模拟器绕过甚至逆向后暴力攻击,滑动拼图识别率在 95% 以上。
在这里插入图片描述

三、 测试方法:

前端界面分析,版本号为2.0,最大特点就是将图片做分割后,在前端再做合并,这就好办了, 网上有大量现成的逆向文章及视频参考,不过我们这次不用逆向, 只是采用模拟器的方式,关键点主要模拟器交互、距离识别和轨道算法3部分。  在这里插入图片描述

  1. 模拟器交互部分
	public RetEntity send(WebDriver driver, String areaCode, String phone) {
   
   
		try {
   
   
			RetEntity retEntity = new RetEntity();
			driver.get(INDEX_URL);
			WebElement rcElement = ChromeDriverManager.waitElement(driver, By.xpath("//img[@alt='图片验证码']"), 2);
			if (rcElement != null) {
   
   
				System.out.println("-------------------------------exists img captch-------------------------------");
				return null;
			}
			// 输入手机号
			By phoneBy = By.name("phone");
			GeetSplitApi.waitForLoad(driver, phoneBy);
			WebElement phoneElemet = driver.findElement(phoneBy);
			phoneElemet.sendKeys(phone);

			// 点击同意书
			driver.findElement(By.xpath("//input[@class='ant-checkbox-input']")).click();

			// 点击获取验证码
			WebElement clickElemet = driver.findElement(By.className("ant-btn-link"));
			clickElemet.click();
			Thread.sleep(1000);
			geetApi.getAndMove(driver, 6);
			Thread.sleep(1000);
			// 获取发送按钮状态
			clickElemet = driver.findElement(By.className("ant-btn-link"));
			String msg = (clickElemet != null) ? clickElemet.getText() : null;
			retEntity.setMsg(msg);
			if (msg != null && msg.contains("重新发送")) {
   
   
				retEntity.setRet(0);
			} else {
   
   
				retEntity.setRet(-1);
				System.out.println("msg=" + msg);
			}
			return retEntity;
		} catch (Exception e) {
   
   
			System.out.println(e.toString());
			return null;
		} finally {
   
   
			driver.manage().deleteAllCookies();
		}
	}
  1. 获取滑动图片及调用移动交互
public boolean getAndMove(WebDriver driver, Integer offSet) {
   
   
		int distance = -1;
		try {
   
   
			WebElement moveElement = ChromeDriverManager.waitElement(driver, By.className("geetest_slider_button"), 1000);
			if (moveElement == null) {
   
   
				logger.error("getAndMove() moveElement=" + moveElement);
				return false;
			}

			// 下面的js代码根据canvas文档说明而来
			// 完整背景图geetest_canvas_fullbg geetest_fade geetest_absolute
			StringBuffer base64 = new StringBuffer();
			String fullName = "geetest_canvas_fullbg geetest_fade geetest_absolute";
			byte[] fullImg = GetImage.callJsByName(driver, fullName, base64);

			String bgName = "geetest_canvas_bg geetest_absolute";
			byte[] bgImg = GetImage.callJsByName(driver, bgName, base64);
			File fullFile = null, bgFile = null;
			if (fullImg != null && bgImg != null) {
   
   
				Long time = System.currentTimeMillis();

				fullFile = new File(dataPath + "geet/" + time + "full.png");
				FileUtils.writeByteArrayToFile(fullFile, fullImg);
				bgFile = new File(dataPath + "geet/" + time + "bg.png");
				FileUtils.writeByteArrayToFile(bgFile, bgImg);
				if 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值