感觉这样效率好低哦,67字节,68字节的数据,只是为了传输一个字节(l),传出去然后,回显到终端,然后本地再回一个ACK。
另外的感想:哦,原来不用HTTP,也可以直接在TCP的数据部分传数据啊,当然需要设置FLAG为PUSH啦。
另外Wireshark的小技巧
当wireshark选项为show data as [ASCII]
时,有些字符无法正常显示出来,而是用一个.
代替,但是也许每个用.
代替的字符背后却是不一样的,这时,可以用show data as [Hex Dump]
选项来读出藏在.
号背后的字符。
其中0d
表示\r
, 0a
表示\n
7f
表示删除(具体什么意思我也不太了解)
比如这里真实的过程是
backdoor(删除)(删除)(删除)00Rm8(删除)ate
比如这里其实真正发出去的字符串为
backd00Rmate
使用strings来查找数据包
➜ ~/GitProjects strings -a /Users/caiqiqi/Downloads/ctf_wireshark/passwd.pcap |grep "Password"
Password: Nf&Nat
➜ ~/GitProjects strings -a /Users/caiqiqi/Downloads/ctf_wireshark/passwd.pcap |grep "back"
这里可以找到包含Password
字符串的数据包,这是因为包含这个字符串的数据包是在一个TCP数据包里的,
所以可以找到,而对于back
字符串,由于这四个字符分散在多个TCP包中,于是并不能通过strings找到,所以这样直接用strings还是有些缺陷的。