HTTP的上传文件实例分析
这个是http文件传输的一种格式,当时不知道这种格式,废弃。
HTTP的上传文件实例分析
由于论坛不支持Word写文章发帖。
首先就是附件发送怎么搞,这个必须解决。论坛是php的。我用Chrome类浏览器跟踪请求,但是上传的文件流怎么发过去没找到,估计流可能多或者什么的不好显示,只知道发送了文件名字。需要实际了解下post文件,不能只会后台或界面不了解前台数据处理和协议怎么传送数据。
图中:有些相关文章 HTTP请求中的form data和request payload的区别 AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
Multipart/form-data POST文件上传详解 《RFC 1867 -Form-based File Upload in HTML》
结构和我曾经通过Smtp提交带有软件BUG附件的形式相似。。。有边界。。。

所以使用抓包工具,如WireShark。机器64位。Ip = 118.192.48.35.

WireShark过滤下好看。前两个是删除文件,后两个才是上传,可以看到有个GIF89a字样。

然后选择后两个其中一个右键菜单-选择Follow TCP Stream,做的事情就是TCP数据包重组。弹出对话框如下:


流的内容出现的顺序同他们在网络中出现的顺序一致。从A到B的通信标记为红色,从B到A的通信标记为蓝色。即请求request为红色,response为蓝色。
从中看出有两次完整来回交互,其中第二个才是文件流。

GIF89a.......^K..w............h......!..NETSCAPE2.0.....!...d...,..........&h..*0.%....1,...u..a...U.X.....f. *Mo$.!.......,...........XS....I. ....!.......,..............A.H...!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........X.V.....!.......,............U
..;
文件内容格式Content-Type为image/gif,然后是流数据(标头+回车换行(0x0d+0x0a)+文件二进制),这里ASCII展示了,不可打印字符为点号表示。
这里把选中内容直接复制出来到WinHex粘贴不行,复制到点号时就不行了。
需要点选Save As保存Raw形式文件,然后到winhex打开找到它。
步骤是Ctrl+F输入gif。

继续找到目标,然后选择目标内容,ODOA(出车换行)开始和结束,如图。

选中后就会一直选中,在任意位置右键保存到文件就可以dump出来了。文件为
。

对于后面的html以gzip编码一样,步骤dump出来,保存为windows保存为zip后缀吧,这样直接rar打开。

至http解压出文件结束。
增强域名注册账户和DNS管理账户安全-防止域名被盗和域名恶意解析
站长故事:网站域名被盗的经历 http://www.williamlong.info/blog/archives/99.html
HTTP的上传文件实例分析的更多相关文章
- PHP+ajaxForm异步带进度条上传文件实例
在使用ajaxForm方法之前,首先需要安装form.js的插件,网上有: 一.首先说用法,ajaxForm可以接收0或1个参数,该参数可以是一个变量.一个对象或回调函数,这个对象主要有以下参数: v ...
- jQuery ajax上传文件实例
jQuery ajax上传文件实例 <form id="form" enctype="multipart/form-data"><input ...
- php 上传文件实例 上传并下载word文件
上传界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- JSP通过SmartUpload上传文件实例
httpRequest.setCharacterEncoding("gbk"); String preName = genName.doMake();//设置文件前缀名 Strin ...
- HttpClient 测试web API上传文件实例
1.使用HttpClient 测试上传文件并且设置header信息: using Lemon.Common; using Newtonsoft.Json; using System; using Sy ...
- jquery插件--ajaxfileupload.js上传文件原理分析
英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的. jQuery.extend({ createUploadIframe: function (id, u ...
- php 上传文件实例 注册账号
注册界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- vue axios上传文件实例
<head> <title></title> <meta charset="UTF-8"> <meta name=" ...
- MVC 上传文件实例
http://www.cnblogs.com/leiOOlei/archive/2011/08/17/2143221.html
随机推荐
- 模板<最小生成树>
转载 最小生成树浅谈 这里介绍最小生成树的两种方法:Prim和Kruskal. 两者区别:Prim在稠密图中比Kruskal优,在稀疏图中比Kruskal劣.Prim是以更新过的节点的连边找最小值,K ...
- debian 9 安装AMD驱动
目录 debian 9 安装AMD驱动 安装驱动之前: 安装驱动: 安装驱动之后: debian 9 安装AMD驱动 需求说明: 安装完成debian系统后独显驱动未安装 操作系统版本: kyeup@ ...
- mongodb权限机制以及扩展
mongodb权限机制 启动权限机制之前要先在MONGODB中添加管理员账号: 1. 创建账号 重装安装一个mongodb,安装时添加一个 --auth参数: 先把安装好的从服务中删除掉(删除之后数据 ...
- Java日志实战及解析
Java日志实战及解析 日志是程序员必须掌握的基础技能之一,如果您写的软件没有日志,可以说你没有成为一个真正意义上的程序员. 为什么要记日志? • 监控代码 • 变量变化情况, ...
- 九度oj 题目1352:和为S的两个数字
题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输入: 每个测试案例包括两行: 第一行包含一个整数n和k, ...
- 【BZOJ3143】【HNOI2013】游走 && 【BZOJ3270】博物馆 【高斯消元+概率期望】
刚学完 高斯消元,我们来做几道题吧! T1:[BZOJ3143][HNOI2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小 ...
- R语言入门--画图(一)--ggplot2
先写一些需要用到的知识点,比如包.函数 dplyr 很好用的包 经常与ggplot2连用 mutate:用于对数据框的列进行重新处理,或者用处理的结果添加新列 数据清洗: 1.na.omit() ...
- 用GDB远程调试android native程序
上次写了几个native程序,想着如何调试,经过一阵子搜索和测试,终于完成了.有几个关键点: 1 gdb和gdbserver 因为这两个需要配套,建议使用同一个ndk下面的gdb和gdbserver ...
- curl抓取数据
抓取数据的代码: $url='抓取数据的网站路径'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //参数为1表示传输数据,为0表示 ...
- django学习之- simple_tag
如何将前端的数据直接通过python模块进行渲染,使用django的simple_tag功能,如下 django后端编写: 1:在对应的app目录下创建目录:templatetags 2:在templ ...