王集成
【摘要】用Fiddler抓取瀏覽器與網(wǎng)絡(luò)攝像頭之間HTTP協(xié)議會(huì)話包,通過(guò)分析會(huì)話包信息,實(shí)現(xiàn)攝像頭控制,為探索網(wǎng)絡(luò)攝像頭控制提供一種實(shí)用方法。
【關(guān)鍵詞】網(wǎng)絡(luò)攝像頭? HTTP協(xié)議? 抓包軟件? Base64編碼
1、引言
海康威視的網(wǎng)絡(luò)攝像頭內(nèi)嵌Web服務(wù)器,提供Web網(wǎng)頁(yè)管控功能,用戶在瀏覽器地址欄輸入網(wǎng)絡(luò)攝像頭IP地址,經(jīng)登錄認(rèn)證后,能方便管控?cái)z像頭,因此能通過(guò)Fiddler軟件抓取瀏覽器與網(wǎng)絡(luò)攝像頭之間HTTP協(xié)議會(huì)話包,分析提取網(wǎng)絡(luò)攝像頭管控命令。
2、探索步驟和過(guò)程
本文選用海康威視DS-2DE5174-A型號(hào)網(wǎng)絡(luò)攝像頭。首先確保網(wǎng)絡(luò)攝像頭與抓包電腦處于同一IP網(wǎng)段內(nèi)。其次將Fiddler Web Debugger V2.2.2.0(中文版)安裝到抓包電腦。
2.1 Fiddler軟件設(shè)置
首先選擇“過(guò)濾器”功能選項(xiàng)頁(yè),勾選“使用過(guò)濾器”,在主機(jī)標(biāo)簽欄下輸入網(wǎng)絡(luò)攝像頭IP地址。其次選擇 “嗅探”功能選項(xiàng),該頁(yè)分為上、下兩個(gè)區(qū)域欄,分別顯示HTTP協(xié)議請(qǐng)求包(HTTP Request)和回復(fù)包(HTTP Response),在區(qū)域欄分別選擇Raw項(xiàng),能顯示HTTP協(xié)議包原始信息,方便研究數(shù)據(jù)。
2.2 ActiveX插件安裝和攝像頭控制操作
在IE瀏覽器地址欄輸入網(wǎng)絡(luò)攝像頭IP地址,經(jīng)安全認(rèn)證登錄,進(jìn)入網(wǎng)絡(luò)攝像頭的管控界面,會(huì)實(shí)時(shí)顯示攝像頭捕捉視頻畫面(首次登錄,系統(tǒng)提示下載安裝ActiveX插件WebComponents.exe),點(diǎn)擊視頻畫面右上角的“云臺(tái)”圖標(biāo)? ? ? ? ? ,右側(cè)出現(xiàn)云臺(tái)控制界面,依次點(diǎn)擊上? ? ?、下? ? 、左? ? ?、右? ? ? 方向控制以及鏡頭變焦的近? ? ? ? 與遠(yuǎn)? ? ? ? 圖標(biāo)操作攝像頭。
2.3 抓取HTTP協(xié)議包內(nèi)容
Fiddler抓取云臺(tái)控制攝像頭上下、左右和遠(yuǎn)近操作的HTTP協(xié)議包,本文僅摘取控制攝像頭向上運(yùn)動(dòng)HTTP協(xié)議包中的關(guān)鍵信息如下:
PUT? /ISAPI/PTZCtrl/channels/1/continuous? HTTP/1.1
Host: 10.28.38.48? ? ?注:網(wǎng)絡(luò)攝像頭IP地址
Authorization: Digest username="admin",realm="DS-2DE5174-A",nonce="4d6a6846
4e446b77524455364e6a526a443d",uri="/ISAPI/PTZCtrl/channels/1/continuous",cnonce="86101b61f18bd3368dda8e8aba",nc=00000001,response="838e6df0830db805fc6cb351",qop="auth"? ? ? ? ? ? ? ?注:帶下劃線部分是Digest安全認(rèn)證的信息
2.4 攝像頭控制命令
分析上述HTTP協(xié)議包可知,瀏覽器向網(wǎng)絡(luò)攝像頭(Host:10.28.38.48)的/ISAPI/
PTZCtrl/channels/1/continuous地址發(fā)送
數(shù)據(jù)。同理,其它命令如下:
向上運(yùn)動(dòng):
向下運(yùn)動(dòng):
向左運(yùn)動(dòng):
向右運(yùn)動(dòng):
拉近運(yùn)動(dòng):
推遠(yuǎn)運(yùn)動(dòng):
停止運(yùn)動(dòng):
2.5 嘗試驗(yàn)證攝像頭管控命令。
從2.3中帶下劃線的安全認(rèn)證信息可知:網(wǎng)絡(luò)攝像頭使用Digest安全認(rèn)證機(jī)制(參考RFC 2617)確保響應(yīng)合法客戶端操作,一旦安全認(rèn)證未通過(guò),立刻向客戶端發(fā)送“401未被授權(quán)”錯(cuò)誤碼,拒絕本次服務(wù)。因Digest安全認(rèn)證機(jī)制非常復(fù)雜,所以本文嘗試用Basic安全認(rèn)證機(jī)制替代Digest,看能否達(dá)到同樣效果,這會(huì)用到Fiddler軟件 “請(qǐng)求構(gòu)造”功能,先將 Authorization Basic YWRtaW46MTIzNDU2填到HTTP協(xié)議請(qǐng)求的頭部信息欄(斜體字串是Basic安全認(rèn)證機(jī)制要求提供Base64加密字符串,即對(duì)“用戶名:密碼”字符串進(jìn)行Base64編碼加密),再將控制向上運(yùn)動(dòng)命令
3、結(jié)束語(yǔ)
運(yùn)用這種方法不僅能深入挖掘控制海康威視網(wǎng)絡(luò)攝像頭的其它管控命令,而且能探索其它品牌網(wǎng)絡(luò)攝像頭的管控命令,是一種很實(shí)用的探索方法。
參考文獻(xiàn):
[1]肖佳.HTTP抓包實(shí)戰(zhàn)[M].北京:人民郵電出版社,2018.
[2]勞倫斯著,祝洪凱,李妹芳譯.Fiddler調(diào)試權(quán)威指南[M].北京:人民郵電出版社,2014.
[3]上野宣著,于均良譯.圖解HTTP[M].北京:人民郵電出版社,2014.