前言
由于网站注册入口容易被黑客攻击,存在如下安全问题:
1. 暴力破解密码,造成用户信息泄露
2. 短信盗刷的安全问题,影响业务及导致用户投诉
3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞
所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如何? 请看具体分析
一、 去哪儿PC 注册入口
简介:去哪儿(包含去哪儿旅行APP及去哪儿网Qunar.com)是中国领先的一站式旅行平台。去哪儿网站上线于2005年5月,2010年去哪儿旅行App面世。成立至今,去哪儿坚持以低价为核心竞争力,帮助更多用户解锁“人生第一张机票”。截至目前,去哪儿已拥有超两亿交易用户,并以年新增交易用户逾千万的规模持续增长。
去哪儿与全球超过100家航空公司、9000家旅行代理商达成了深度合作,为用户提供更低的价格、更全的覆盖以及更好的服务。截至目前,可实时搜索预定全球范围内超68万条航线机票、320万家境内外酒店、100多个国家及地区的签证服务、100万条度假线路、近2万个全球目的地景区门票等,支持火车票7*24小时无间断出票,并提供租车、接送机等地面交通服务。
二、 安全性分析报告:
去哪儿研发的滑动条,存在一定的设计缺陷,缺少滑动条最重要的参数滑动轨迹的采集。
三、 测试方法:
前端界面分析,这是去哪儿自己研发的滑动条,网上没有现成的教学视频,但形式都差不多,连滑动轨迹都没采集的滑动条:
1 模拟器交互部分代码
private static String INDEX_URL = "https://user.qunar.com/passport/register.jsp";
private final static Logger logger = LoggerFactory.getLogger(Qunar.class);
@Override
public RetEntity send(WebDriver driver, String areaCode, String phone) {
try {
RetEntity retEntity = new RetEntity();
driver.get(INDEX_URL);
// 输入手机号
WebElement phoneElement = driver.findElement(By.id("telphone"));
phoneElement.clear();
phoneElement.sendKeys(phone);
// 获取验证码
driver.findElement(By.className("codeButton")).click();
Thread.sleep(1000);
// 向右滑动滑块
WebElement moveElement = driver.findElement(By.xpath("//div[@class='captchaContainer']/div/div/i"));
ActionMove.move(driver, moveElement, 500);
Thread.sleep(1000);
WebElement msgElement = ChromeDriverManager.waitElement(driver, By.className("codeTime"), 10);
String msg = (msgElement != null && msgElement.isDisplayed()) ? msgElement.getText() : null;
retEntity.setMsg(msg);
if (msg != null && msg.contains("重新获取")) {
retEntity.setRet(0);
}
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 driver
* @param moveElemet
* @param distance
* @throws InterruptedException
*/
public static void move(WebDriver driver, WebElement moveElemet, List<Integer> trackList) {
Actions actions = new Actions(driver);
actions.clickAndHold(moveElemet).perform();// 按住鼠标左键不释放
for (Integer distance : trackList) {
actions.moveByOffset(distance, 0).perform();// 移动
}
actions.release(moveElemet).perform();// 释放鼠标左键
}
3 测试结果
四丶结语
去哪儿(包含去哪儿旅行APP及去哪儿网Qunar.com)是中国领先的一站式旅行平台。去哪儿网站上线于2005年5月,2010年去哪儿旅行App面世。成立至今,去哪儿坚持以低价为核心竞争力,帮助更多用户解锁“人生第一张机票”。截至目前,去哪儿已拥有超两亿交易用户,并以年新增交易用户逾千万的规模持续增长。作为航旅行业知名的在互联网线订票平台,拥有雄厚的技术研发实力,记得上次测试时用的是图形验证码,这回改进了, 采用的是自己研发的滑动条, 有胜过没,应该是参考了滑动条的代表是阿里, 可惜只学到表面,连滑动轨迹的数据都没采集,明明白白的样子工程, 用户体验一般,容易被破解, 一旦被国际黑客发起攻击,将会对老百姓形成骚扰,影响去哪儿网自己的品牌声誉。
很多人在短信服务刚开始建设的阶段,可能不会在安全方面考虑太多,理由有很多。
比如:“ 需求这么赶,当然是先实现功能啊 ”,“ 业务量很小啦,系统就这么点人用,不怕的 ” , “ 我们怎么会被盯上呢,不可能的 ”等等。有一些理由虽然有道理,但是该来的总是会来的。前期欠下来的债,总是要还的。越早还,问题就越小,损失就越低。
所以大家在安全方面还是要重视。(血淋淋的栗子!)#安全短信#
戳这里→康康你手机号在过多少网站注册过!!!
谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务, 那么当所有的图形验证码都被破解时,大家又该如何做好防御呢?
>>相关阅读
《腾讯防水墙滑动拼图验证码》
《百度旋转图片验证码》
《网易易盾滑动拼图验证码》
《顶象区域面积点选验证码》
《顶象滑动拼图验证码》
《极验滑动拼图验证码》
《使用深度学习来破解 captcha 验证码》
《验证码终结者-基于CNN+BLSTM+CTC的训练部署套件》