王春苗 劉玥
摘要:本文基于實(shí)際發(fā)生的案例,介紹了在全國會(huì)計(jì)中級(jí)無紙化考試考前調(diào)試過程中,出現(xiàn)的考生端程序訪問服務(wù)端程序持續(xù)處于嚴(yán)重“卡頓”狀態(tài)的問題。文章針對(duì)出現(xiàn)的網(wǎng)絡(luò)訪問和Web應(yīng)用故障進(jìn)行逐步分析和思考,并結(jié)合Wireshark、BurpSuite和tcpdump等工具軟件進(jìn)行綜合調(diào)試,通過BurpSuite記錄了Web瀏覽器運(yùn)行“加載項(xiàng)”列表內(nèi)容是后臺(tái)進(jìn)程的全部數(shù)據(jù)訪問請(qǐng)求,并在此基礎(chǔ)上繼續(xù)通過tcpdump程序驗(yàn)證TCP協(xié)議SYN連接超時(shí)和重發(fā)時(shí)間間隔機(jī)制,從而找出故障發(fā)生的原因和原理,并最終解決問題。
關(guān)鍵詞:Wireshark;BurpSuite;代理偵聽;加載項(xiàng);tcpdump;SYN超時(shí)
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)18-0017-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
B/S架構(gòu)的Web應(yīng)用程序開發(fā)過程中,常常調(diào)用Web瀏覽器來完成向服務(wù)端的訪問請(qǐng)求。此時(shí),如果Web瀏覽器本身由于種種原因出現(xiàn)問題,那么對(duì)Web應(yīng)用程序的排障將是一個(gè)很大的挑戰(zhàn)。Burpsuite是Web滲透測(cè)試領(lǐng)域的“利器”,利用它可以實(shí)現(xiàn)對(duì)Web瀏覽器的所有數(shù)據(jù)訪問過程的監(jiān)控甚至修改,而tcpdump則是一個(gè)全方位的數(shù)據(jù)包捕獲和分析程序。結(jié)合BurpSuite和tcpdump,可以輕松實(shí)現(xiàn)對(duì)Web應(yīng)用程序進(jìn)行故障分析研究,并得出最佳的解決方案。
1 問題場(chǎng)景和故障現(xiàn)象描述
會(huì)計(jì)中級(jí)機(jī)考采用B/S網(wǎng)絡(luò)架構(gòu),考試服務(wù)端和所有考場(chǎng)機(jī)房都位于互聯(lián)互通的三層交換網(wǎng)絡(luò),考試客戶端軟件后臺(tái)通過調(diào)用IE瀏覽器的方式來訪問考試服務(wù)器的Web服務(wù),并實(shí)現(xiàn)對(duì)桌面的鎖屏以防止切換,考試主管部門要求正式考試時(shí)必須斷開考場(chǎng)機(jī)房的互聯(lián)網(wǎng)連接。
在考前調(diào)試過程中,當(dāng)配置出口防火墻策略關(guān)閉考場(chǎng)機(jī)房到互聯(lián)網(wǎng)的連接通道后,發(fā)現(xiàn)所有考場(chǎng)運(yùn)行考試客戶端軟件時(shí),均出現(xiàn)卡頓和白屏現(xiàn)象,等待大約15秒,方才出現(xiàn)考生登錄輸入框界面,登錄成功后,在模擬考試的過程中,也頻繁出現(xiàn)卡頓現(xiàn)象;當(dāng)重新配置出口防火墻策略允許考場(chǎng)機(jī)房到互聯(lián)網(wǎng)的連接后,再次重新打開考試客戶端軟件,此時(shí)登錄輸入框界面快速顯示無延遲現(xiàn)象,登錄成功后,再次模擬考試,此時(shí)操作流暢且無卡頓現(xiàn)象。
2 故障分析研究
當(dāng)斷開考場(chǎng)的互聯(lián)網(wǎng)連接時(shí),考試客戶端訪問服務(wù)端出現(xiàn)嚴(yán)重卡頓,而允許考場(chǎng)機(jī)房訪問互聯(lián)網(wǎng)時(shí),考試客戶端訪問服務(wù)端一切正常。那么首先排除內(nèi)網(wǎng)服務(wù)器故障的可能性,猜測(cè)客戶機(jī)系統(tǒng)存在某個(gè)進(jìn)程持續(xù)嘗試訪問互聯(lián)網(wǎng),網(wǎng)絡(luò)斷開時(shí),該進(jìn)程頻繁訪問失敗,導(dǎo)致考試客戶端產(chǎn)生嚴(yán)重卡頓現(xiàn)象。那么如何才能找出這個(gè)進(jìn)程,這是問題的焦點(diǎn)所在。
2.1 首先檢測(cè)客戶機(jī)系統(tǒng)是否感染了病毒
檢查內(nèi)容包括進(jìn)程占用CPU情況、進(jìn)程占用內(nèi)存大小情況、本地硬盤是否頻繁讀寫以及使用新版殺毒軟件掃描考試客戶端軟件和全盤掃描查殺等。通過實(shí)測(cè),基本可以排除客戶機(jī)系統(tǒng)感染病毒的可能性。
2.2 猜測(cè)考試客戶端軟件是否存在訪問官方服務(wù)器的行為
考試服務(wù)端和考試客戶端都位于三層交換內(nèi)部網(wǎng)絡(luò),從這個(gè)角度分析,考試客戶端沒有必要訪問考試承辦公司位于公網(wǎng)的服務(wù)器。通過木馬專殺類工具程序?qū)嶋H檢測(cè)考試客戶端,沒有發(fā)現(xiàn)此類“后門”;另外,通過和考試承辦公司技術(shù)工程師反復(fù)溝通后,確認(rèn)考試客戶端不存在訪問官方服務(wù)器的代碼;同時(shí),經(jīng)過咨詢其他考點(diǎn)學(xué)校,得知并沒有發(fā)生此類故障現(xiàn)象;
2.3 TCP數(shù)據(jù)包捕獲和分析
排除了上述2.1和2.2的可能性后,依然可以猜測(cè)該進(jìn)程存在訪問互聯(lián)網(wǎng)的行為,那么嘗試通過抓包獲得線索。在客戶機(jī)上啟動(dòng)Wireshark抓包軟件并設(shè)置偵聽網(wǎng)卡和開啟抓包,然后打開考試客戶端軟件,等待登錄窗口界面出現(xiàn)后停止抓包。由于捕獲的數(shù)據(jù)包較多,需要應(yīng)用篩選過濾才能得到有用的數(shù)據(jù)包,篩選過濾表達(dá)式如下:
?。╥p.addr == 192.168.104.249 or ip.addr == 192.168.10.1 or ip.addr == 192.168.7.84 or ip.addr == 192.168.72.255 or ip.addr == 224.0.0.252 or ipv6 or arp or lldp)
過濾表達(dá)式去除了當(dāng)前內(nèi)網(wǎng)環(huán)境的3個(gè)內(nèi)網(wǎng)服務(wù)器IP地址、一個(gè)廣播地址、一個(gè)組播地址、IPv6協(xié)議和LLDP協(xié)議,然后進(jìn)行排序,顯示結(jié)果如圖1所示:
抓包結(jié)果顯示,對(duì)于同一個(gè)目標(biāo)地址存在較多的TCP-SYN連接請(qǐng)求,即“TCP三次握手”的第一步,顯然在斷網(wǎng)的狀態(tài)下,TCP三次握手是無法完成的,上層會(huì)話也不可能建立成功,因此可以排除TCP-SYN攻擊的可能性。但是截圖中依然存在不確定的疑點(diǎn),即連續(xù)三個(gè)TCP-SYN數(shù)據(jù)包之間的時(shí)間間隔分別為3秒和6秒,記錄下該線索,作為后續(xù)分析的參考數(shù)據(jù)。
2.4 http數(shù)據(jù)包捕獲和分析
基于tcp協(xié)議的上層應(yīng)用很多,所以上述發(fā)現(xiàn)的TCP-SYN連接疑點(diǎn)并不能準(zhǔn)確判斷故障源,故障范圍可以進(jìn)一步縮小至考試客戶端軟件本身。通過咨詢技術(shù)客服得知考試客戶端軟件的實(shí)質(zhì)構(gòu)成包括“指向內(nèi)網(wǎng)考試服務(wù)器的IP地址”“目標(biāo)HTTP端口號(hào)”“調(diào)用客戶機(jī)IE瀏覽器的代碼”以及“鎖屏防止切換的代碼”等組件,那么判斷IE瀏覽器可能會(huì)產(chǎn)生故障。
現(xiàn)場(chǎng)實(shí)測(cè)打開IE瀏覽器,發(fā)現(xiàn)長(zhǎng)時(shí)間處于卡頓的狀態(tài),甚至無響應(yīng),而IE瀏覽器首頁已經(jīng)設(shè)置為空白頁,正常情況下,不會(huì)產(chǎn)生任何到互聯(lián)網(wǎng)的訪問請(qǐng)求,那么IE瀏覽器在啟動(dòng)過程中究竟產(chǎn)生了什么行為呢?接下來通過BurpSuite捕獲http數(shù)據(jù)包并加以分析。
1) 在考試客戶機(jī)上啟動(dòng)BurpSuite軟件,首先是配置代理偵聽:選項(xiàng)標(biāo)簽Proxy ->子選項(xiàng)標(biāo)簽Options ->選中默認(rèn)的代理偵聽,點(diǎn)擊Edit->Specific address:127.0.0.1 -> OK,配置結(jié)果如圖2所示:
2) 配置IE瀏覽器的代理指向BurpSuite的代理偵聽地址和端口
首先設(shè)置起始頁為空白頁,并刪除所有的緩存文件。然后設(shè)置IE代理:工具 -> Internet 選項(xiàng)->連接->局域網(wǎng)設(shè)置->勾選啟用代理服務(wù)器,并設(shè)置地址為127.0.0.1,設(shè)置端口為8080,即保持和Burp Suite設(shè)置的代理偵聽一致。
3) 配置出口防火墻策略,斷開考場(chǎng)機(jī)房到互聯(lián)網(wǎng)的連接,并暫時(shí)關(guān)閉Burp Suite的攔截功能(設(shè)置為“Intercept is off”),然后打開IE瀏覽器,發(fā)現(xiàn)即使設(shè)置了空白首頁,瀏覽器標(biāo)簽頁依然顯示“正在連接...”,等待15秒左右后,標(biāo)簽頁顯示“空白頁”,狀態(tài)欄顯示“完成”,說明瀏覽器進(jìn)程后臺(tái)已經(jīng)完成了一系列操作。此時(shí),轉(zhuǎn)到Burp Suite,點(diǎn)擊“HTTP History”子標(biāo)簽,可以查看到IE瀏覽器所發(fā)送的一系列http請(qǐng)求數(shù)據(jù)包,顯示結(jié)果如圖3所示:
根據(jù)上圖分析可知,IE瀏覽器在啟動(dòng)后,后臺(tái)進(jìn)程不斷嘗試從windowsupdate.com站點(diǎn)下載authrootstl.cab文件,即發(fā)送HTTP請(qǐng)求報(bào)文。而HTTP請(qǐng)求報(bào)文的發(fā)送前提是需要首先使用TCP協(xié)議成功建立TCP三次握手,TCP三次握手的第一個(gè)請(qǐng)求報(bào)文為TCP-SYN,由于設(shè)置禁止訪問互聯(lián)網(wǎng),導(dǎo)致TCP-SYN連接超時(shí),最終下載失敗,顯然這是導(dǎo)致“卡頓”故障的源頭。進(jìn)一步測(cè)試驗(yàn)證和分析如下:
使用Centos系統(tǒng),運(yùn)行telnet命令向一臺(tái)斷開網(wǎng)絡(luò)連接的內(nèi)網(wǎng)PC機(jī)請(qǐng)求建立會(huì)話,然后通過運(yùn)行tcpdump輸出TCP-SYN的狀態(tài)信息,發(fā)現(xiàn)第一個(gè)TCP-SYN請(qǐng)求超時(shí)后,第二個(gè)、第三個(gè)、第四個(gè)和第五個(gè)TCP-SYN數(shù)據(jù)包的超時(shí)等待時(shí)間分別為1秒、2秒、4秒和8秒,合計(jì)為15秒(和Windows系統(tǒng)上運(yùn)行Wireshark抓包結(jié)果略有誤差)。上圖顯示IE瀏覽器啟動(dòng)后一共嘗試發(fā)送8次http請(qǐng)求,而每一次http請(qǐng)求之前,都將導(dǎo)致15秒的TCP-SYN超時(shí)等待,即IE瀏覽器至少在等待15秒之后,才能訪問內(nèi)網(wǎng)的考試服務(wù)端。調(diào)試結(jié)果如圖4和圖5所示:
3 問題結(jié)論和解決方法
那么IE瀏覽器產(chǎn)生的http下載請(qǐng)求的根源是什么呢?答案就是“瀏覽器加載項(xiàng)”,即IE瀏覽器啟動(dòng)后,首先會(huì)加載“加載項(xiàng)”列表中已啟用的所有內(nèi)容,如果“加載項(xiàng)”列表中存在互聯(lián)網(wǎng)訪問請(qǐng)求指令,并且在斷網(wǎng)的前提下,那么就會(huì)產(chǎn)生本文所描述的故障現(xiàn)象。
查看和禁用IE瀏覽器的加載項(xiàng)內(nèi)容:點(diǎn)擊命令欄的“工具”按鈕 ->管理加載項(xiàng),顯示結(jié)果如圖6所示。
分析截圖中的加載項(xiàng)列表,猜測(cè)“AccountProtectBHO Class”加載項(xiàng)可能就是發(fā)送http請(qǐng)求的源頭。點(diǎn)擊右下角的“禁用”按鈕禁用該加載項(xiàng),然后關(guān)閉IE瀏覽器,再重新打開,此時(shí)頁面顯示不再“卡頓”;再次測(cè)試打開考試客戶端軟件,登錄輸入窗口界面立即顯示無延遲;輸入賬號(hào)密碼登錄成功后,進(jìn)行模擬考試,整個(gè)過程都非常流暢……至此,問題徹底解決!
參考文獻(xiàn):
[1] 芮辰.基于WireShark和Packet Tracer軟件的域名查詢實(shí)驗(yàn)綜述報(bào)告[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2019,35(10):61-65.
[2] 俞詩源,王譽(yù)天,劉鑫.Burpsuite工具在漏洞檢測(cè)中的應(yīng)用[J].信息網(wǎng)絡(luò)安全,2016(9):94-97.
[3] 蔣小波,沈藝敏,龐富寧.Burpsuite抓包分析注入與提權(quán)技術(shù)研究[J].數(shù)字技術(shù)與應(yīng)用,2019,37(5):194,196.
[4] 姜慶民,吳寧,閆申友.網(wǎng)絡(luò)分析軟件Tcpdump的研究[J].電腦學(xué)習(xí),2007(2):21-22.
【通聯(lián)編輯:王力】