日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

测试过程中如何分析抓包工具抓的HTTP或TCP包

發布時間:2024/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 测试过程中如何分析抓包工具抓的HTTP或TCP包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.docin.com/p-101479451.html


工作中遇到C/S的通訊接口測試,經常會遇到由于請求的結構不對或者包發送錯誤,導致很多問題,通常需要通過抓包工具,把發送的包抓下來,然后做進一步的分析,就可以一很容易看出存在的錯誤。 ? 根據自己的總結和經驗,整理了一個簡單的分析方法,做為自己的知識積累,便于以后參考。 ?

這是一個登陸請求的抓包:

0x0010???0a01 03a6 50a5 2d6f df20 f96b 2f09 fa4d????????....P.-o...k/..M
0x0020???5010 825b ec59 0000 0000 0000 0000?????????????P..[.Y........
14:23:10.184430 88.120.40.59.broad.sz.gd.dynamic.163data.com.cn.20645 > pcs3166.11631: P [tcp sum ok] 150:306(156) ack 26 win 33371 (DF) (ttl 109, id 23149, len 196)
0x0000???4500 00c4 5a6d 4000 6d06 f19f 3b28 7858????????E...Zm@.m...;(xX
0x0010???0a01 03a6 50a5 2d6f df20 f96b 2f09 fa4d????????....P.-o...k/..M
0x0020???5018 825b afcc 0000?0001 9c00 0100 0000????????P..[............
0x0030???0100 0000 0000 0000?3c72 6571 3e3c 6d73????????........<req><ms
0x0040???6973 646e 3e31 3336 3332 3631 3734 3339????????isdn>13632617439
0x0050???3c2f 6d73 6973 646e 3e3c 7077 643e 3733????????</msisdn><pwd>73
0x0060???3432 3830 3c2f 7077 643e 3c75 613e 506f????????4280</pwd><ua>Po
0x0070???636b 6574 5f50 433c 2f75 613e 3c76 6572????????cket_PC</ua><ver
0x0080???3e6d 7075 7368 2e31 2e31 2e31 2e30 3835????????>mpush.1.1.1.085
0x0090???3c2f 7665 723e 3c63 6f6d 6d5f?7665 723e????????</ver><comm_ver>
0x00a0???313c 2f63 6f6d 6d5f 7665 723e 3c6d 6574????????1</comm_ver><met
0x00b0???6169 643e 303c 2f6d 6574 6169 643e 3c2f????????aid>0</metaid></
0x00c0???7265 713e??????????????????????????????????????req>

?

那么根據自定義的接口文檔來參考:

登陸的消息包頭組建格式為:

CLIENT->CSVR的消息的接口格式

Protocal Version

2字節,數字

Length

4字節,數字

Type

2字節,數字

TransactionID

4字節,數字

Session ID

4字節,數字

MSG BODY

XML格式,長度不定

Length:表示整條消息的總長度,包括protocal version, length, type, session id及msg body字段。

Type表示消息類型,其類型和取值為 登錄請求:1(Client->Server)

?

按照以上的協議分析:

MSGBODY前面的共:2+4+2+4+4=16個字節

所以找到從MSGBODY向前找,找到16個字節,就正確了,

下面的就是從<req>向前找,??就可以找到這16個字節:

0001??9c00??0100 ?0000??0100 0000 0000 0000

?

對比協議可以看出:

0001 ??????9c00 0100???0000?????0100 ?0000 ???????????0000 ?0000

nVersion???nLength?????nType????nTransactionID;4??????nSessionId

?

由于網絡字節序與主機字節序的區別,不同CPU的字節序不一樣,有些CPU是高字節在前面,有些是低字節在前面。網絡上傳輸的消息碼流是網絡字節序的,

我們如果分析抓包工具的消息,由于主機是奔騰的CPU,先要將網絡序轉換為主機序,需要前后左右置換一下。置換后為:

?

0100 ??????0001 009c???0000?????0000 ?0001 ???????????0000 ?0000

nVersion???nLength?????nType????nTransactionID;4??????nSessionId

?

轉化為10進制分別為:256 、65692、0、1、0

而實際的length的值我們可以數一下: 16+MSGBODY包共(140字節)= 156

而且也看出ntype不對,實際上應該是1。版本也不對。

?

通過這樣一分析,就知道是登陸請求發錯了,而且知道了錯誤的原因。

?

(一般抓包:我是用root用戶直接用命令行抓,沒有用相關工具)

?抓包命令為:

??/usr/sbin/tcpdump/ -vvx -s 2048 -i etho port?端口號


總結

以上是生活随笔為你收集整理的测试过程中如何分析抓包工具抓的HTTP或TCP包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。