简单文件传输协议TFTP分析还原
“?介紹TFTP協(xié)議及傳輸內(nèi)容的還原。”
TFTP,全稱為Trivial File Transfer Protocol,即簡(jiǎn)單文件傳輸協(xié)議,是一個(gè)用來在客戶端與服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議,UDP承載,它真的很簡(jiǎn)單。其協(xié)議標(biāo)準(zhǔn)為RFC1350,以及一系列補(bǔ)丁RFC。
01
—
協(xié)議介紹
TFTP有如下特征:
1、UDP承載,請(qǐng)求端口固定為69;
2、沒有列出目錄內(nèi)容功能;
3、無驗(yàn)證和加密機(jī)制;
4、僅有讀取或?qū)懭胛募δ?#xff1b;
5、支持三種不同的傳輸模式:"netascii","octet"和"mail",其中第三種已廢棄。
TFTP會(huì)話流程如下:
1、客戶機(jī)A送一個(gè)讀請(qǐng)求(RRQ)或?qū)懻?qǐng)求(WRQ)包給服務(wù)器B,包含了文件名和傳輸模式;
2、B向A發(fā)一個(gè)ACK包應(yīng)答,同時(shí)也通知了A其余送往B包應(yīng)該發(fā)送的端口號(hào);
3、源主機(jī)向目的主機(jī)送編過號(hào)的數(shù)據(jù)包,除了最后一個(gè)都應(yīng)該包含一個(gè)全尺寸的數(shù)據(jù)塊。目的主機(jī)用編號(hào)的ACK包應(yīng)答所有的數(shù)據(jù)包;
4、最終的數(shù)據(jù)包必須包含少于最大尺寸的數(shù)據(jù)塊以表明這是最后一個(gè)包。如果被傳輸文件正好是尺寸塊的整數(shù)倍,源主機(jī)最后送的數(shù)據(jù)包就是0字節(jié)。
很多軟件都內(nèi)嵌了TFTP功能。
(上圖來自網(wǎng)絡(luò))
TFTP數(shù)據(jù)包的前兩個(gè)字節(jié)為Opcode,不同的值代表不同的數(shù)據(jù)類型,協(xié)議共定義了五種類型:
1、 讀文件請(qǐng)求:Read request(RRQ),對(duì)應(yīng)Opcode字段值為1
2、 寫文件請(qǐng)求:Write requst(WRQ),對(duì)應(yīng)Opcode字段值為2
3、 文件數(shù)據(jù):Data(DATA),對(duì)應(yīng)Opcode字段值為3
4、 回應(yīng):Acknowledgement(ACK),對(duì)應(yīng)Opcode字段值為4
5、 錯(cuò)誤信息:Error(ERROR),對(duì)應(yīng)Opcode字段值為5
02
—
協(xié)議解析
TFTP按數(shù)據(jù)包類型進(jìn)行解析,不同類型格式不同。
讀文件和寫文件請(qǐng)求格式如下:
一個(gè)讀文件請(qǐng)求例子如下:
一個(gè)寫文件請(qǐng)求例子如下:
文件數(shù)據(jù)格式:
一段文件數(shù)據(jù)報(bào)文例子如下:
回應(yīng)格式:
一個(gè)回應(yīng)報(bào)文如下:
錯(cuò)誤信息格式:
對(duì)還原TFTP傳輸?shù)奈募?nèi)容,關(guān)鍵點(diǎn)是:
1、文件數(shù)據(jù)與文件請(qǐng)求不在一條鏈內(nèi),它們通過客戶機(jī)所用的端口建立關(guān)聯(lián),文件名在文件請(qǐng)求報(bào)文內(nèi)。
2、文件數(shù)據(jù)需要根據(jù)Block值進(jìn)行拼接,才能構(gòu)成一個(gè)完整的文件。
3、文件數(shù)據(jù)塊的Block值從1開始,由于UDP的不可靠性,需要在內(nèi)容拼接時(shí)根據(jù)Block值去除重傳內(nèi)容以及進(jìn)行排序。
對(duì)TFTP協(xié)議的介紹就到這里了,在Wireshark官網(wǎng),有TFTP的pcap供下載學(xué)習(xí),如果有疑問,可以聯(lián)系我共同探討。
長(zhǎng)按進(jìn)行關(guān)注。
總結(jié)
以上是生活随笔為你收集整理的简单文件传输协议TFTP分析还原的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 协议分析中的TCP/IP网络协议
- 下一篇: Wireshark使用技巧:提取VOIP