亚洲国产精品乱码一区二区,美景房屋2免费观看,哎呀哎呀在线观看视频高清国语,从镜子里看我是怎么C哭你

Article / 文章中心

短信測(cè)評(píng)系列:孔夫子舊書網(wǎng)短信接口安全測(cè)試,你的短信接口被攻擊到底有多危險(xiǎn),可能瞬間損失過(guò)萬(wàn),短信接口防盜刷測(cè)試

發(fā)布時(shí)間:2021-04-10 點(diǎn)擊數(shù):3430

– “隱患險(xiǎn)于明火,防范勝于救災(zāi),責(zé)任重于泰山”

 

安全問(wèn)題不容忽視,不要亡羊補(bǔ)牢!

 

前言

本文詳細(xì)介紹了針對(duì)發(fā)送短信驗(yàn)證碼接口的安全性測(cè)試過(guò)程,包含思路、部分測(cè)試代碼已經(jīng)測(cè)試結(jié)果。
本次測(cè)試網(wǎng)站 —孔夫子舊書網(wǎng)(kongfz.com)
孔夫子舊書網(wǎng)是國(guó)內(nèi)領(lǐng)先的古舊書交易平臺(tái),匯集全國(guó)各地13000家網(wǎng)上書店,50000家書攤,展示多達(dá)9000萬(wàn)種書籍;

一丶找到對(duì)外短信接口

從該網(wǎng)站注冊(cè)入口可以發(fā)現(xiàn),有提供發(fā)送短信驗(yàn)證碼的服務(wù)。
在這里插入圖片描述

二丶分析外部防御措施

  1. 輸入手機(jī)號(hào)
    在這里插入圖片描述

  2. 點(diǎn)擊發(fā)送驗(yàn)證碼
    在這里插入圖片描述

發(fā)現(xiàn)需要先輸入圖片驗(yàn)證碼,輸入后才可點(diǎn)擊發(fā)送

在這里插入圖片描述

外部防御措施:圖片驗(yàn)證碼

三丶查看請(qǐng)求報(bào)文

1. 找到發(fā)送短信的請(qǐng)求

按下F12打開(kāi)瀏覽器控制臺(tái),再次點(diǎn)擊發(fā)送驗(yàn)證碼按鈕通過(guò)控制臺(tái)找出發(fā)送短信的請(qǐng)求。
在這里插入圖片描述

2. 查看請(qǐng)求方式
在這里插入圖片描述

3. 查看請(qǐng)求報(bào)文頭
在這里插入圖片描述

4. 查看請(qǐng)求參數(shù)
在這里插入圖片描述
captchaCode為圖片驗(yàn)證碼的值
5. 查看返回值
在這里插入圖片描述

四丶分析測(cè)試

1. 分析測(cè)試要點(diǎn)

  • 請(qǐng)求須攜帶圖形驗(yàn)證碼參數(shù)
  • 請(qǐng)求為post請(qǐng)求無(wú)法在地址欄直接訪問(wèn)測(cè)試

2. 編寫代碼模擬請(qǐng)求進(jìn)行測(cè)試

該網(wǎng)站的圖形驗(yàn)證碼為普通的數(shù)字加字母或者簡(jiǎn)單計(jì)算題的驗(yàn)證碼:

在這里插入圖片描述
解決方案:通過(guò)機(jī)器學(xué)習(xí),圖像處理等方法創(chuàng)建識(shí)別庫(kù)。

大致思路:

  • 處理圖片,將圖片通過(guò)降噪,二值化等方式處理
  • 將字符分割,學(xué)習(xí)訓(xùn)練
  • 最終識(shí)別出圖片中的各個(gè)字符

這里不做贅訴,感興趣可以看下相關(guān)驗(yàn)證碼識(shí)別的文章:

接著利用Java模擬報(bào)文請(qǐng)求 ,進(jìn)行測(cè)試。部分代碼如下:

//配置請(qǐng)求頭
	public Object setHeads(CloseableHttpClient httpclient, CookieStore cookieStore, Hashtable<String, String> inheads,
			LinkedHashMap<String, String> outheads, Hashtable<String, String> input) {
		getCookie(cookieStore, httpclient, "https://login.kongfz.com/register/index.html", inheads, outheads);
		String cookieStr = GetCookieHead.CookieHashToString(outheads);
		if (cookieStr != null) {
			inheads.put("Cookie", cookieStr);
		}
		inheads.put("Host", "login.kongfz.com");
		inheads.put("Accept", "application/json, text/javascript, */*; q=0.01");
		inheads.put("Origin", "https://login.kongfz.com");
		inheads.put("X-Requested-With", "XMLHttpRequest");
		inheads.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		inheads.put("Referer", "https://login.kongfz.com/Pc/Login/iframe");
		return inheads;
	}
//配置請(qǐng)求參數(shù)
public Object setParams(CloseableHttpClient httpclient, CookieStore cookieStore, Hashtable<String, String> inheads, LinkedHashMap<String, String> outheads, Hashtable<String, String> input, String phone) {
		List<BasicNameValuePair> paramList = new ArrayList<>();
		paramsList.add(new BasicNameValuePair("mobile", phone));
			paramsList.add(new BasicNameValuePair("captchaCode", input.get("imgCode")));
			paramsList.add(new BasicNameValuePair("bizType", "2"));
		return paramList;
	}
//配置請(qǐng)求
public RetEntity reg(CloseableHttpClient httpclient, CookieStore cookieStore, Hashtable<String, String> input, String phone) {
		Hashtable<String, String> inheads = new Hashtable<>();
		LinkedHashMap<String, String> outheads = new LinkedHashMap<>();
		String imgCode = this.getImgeCode(phone, httpclient, cookieStore, "get", imgUrl, inheads, outheads, input,
				imgOutMap);
		input.put("imgCode", imgCode != null ? imgCode : "");
		retEntity = this.userClick(httpclient, cookieStore, "post", smsUrl, inheads, outheads, input, phone);
		return retEntity;
	}

啟動(dòng)測(cè)試:

1次:

在這里插入圖片描述
手機(jī)號(hào)碼唯一,IP唯一:

10次 --間隔時(shí)間1秒:

在這里插入圖片描述

10次 --間隔時(shí)間60秒:
在這里插入圖片描述

手機(jī)號(hào)碼不唯一,IP唯一:

10次 --間隔時(shí)間1秒:

在這里插入圖片描述

10次 – 間隔時(shí)間10秒:

在這里插入圖片描述

10次 – 間隔時(shí)間20秒:

在這里插入圖片描述

五丶結(jié)果分析

測(cè)試目標(biāo):

針對(duì)發(fā)送短信驗(yàn)證碼接口進(jìn)行安全性測(cè)試。

測(cè)試思路:

1.找到請(qǐng)求接口
2.分析請(qǐng)求報(bào)文
3.模擬請(qǐng)求測(cè)試

測(cè)試結(jié)果:

1.單手機(jī)號(hào)頻率限制(1次/分鐘)兼次數(shù)限制
2.單IP頻率限制(3次/分鐘)

測(cè)試結(jié)論:

前臺(tái)通過(guò)圖形驗(yàn)證碼進(jìn)行限制,后臺(tái)手機(jī)號(hào)和Ip均有頻率限制或次數(shù)限制,當(dāng)遇到大量更換手機(jī)號(hào)以及IP的攻擊時(shí),該網(wǎng)站的所有防御措施均無(wú)效。

風(fēng)險(xiǎn)等級(jí): 

六丶結(jié)語(yǔ)

很多人在短信服務(wù)剛開(kāi)始建設(shè)的階段,可能不會(huì)在安全方面考慮太多,理由有很多。
比如:“ 需求這么趕,當(dāng)然是先實(shí)現(xiàn)功能啊 ”,“ 業(yè)務(wù)量很小啦,系統(tǒng)就這么點(diǎn)人用,不怕的 ” , “ 我們?cè)趺磿?huì)被盯上呢,不可能的 ”等等。

有一些理由雖然有道理,但是該來(lái)的總是會(huì)來(lái)的。前期欠下來(lái)的債,總是要還的。越早還,問(wèn)題就越小,損失就越低。

所以大家在安全方面還是要重視。(血淋淋的栗子?。?a style="box-sizing: border-box; text-decoration-line: none; background-color: transparent; color: #4ea1db;" >#安全短信#

谷歌圖形驗(yàn)證碼在AI 面前已經(jīng)形同虛設(shè),所以谷歌宣布退出驗(yàn)證碼服務(wù), 那么當(dāng)所有的圖形驗(yàn)證碼都被破解時(shí),大家又該如何做好防御呢?