文件上传过程:
客户端与服务端建立TCP连接后,客户端发起HTTP协议发送文件至服务端,文件传输通常使用POST请求。
文件上传HTTP协议字段解析
HTTP请求头部: 1,Content-Type:multipart/form-data 代表这是一个文件上传的HTTP请求 2,boundary:分隔符,用来区分POST数据,boundary中的值代表的是POST数据的开头,最后标识结束的boundary值尾部默认会多出两个– 3,Content-Length:上传的文件大小
HTTP请求主体: 1,文件上传请求主体以boundary的值开始,结束以boundary的值尾部加–结束 2,content-disposition参数名称 name:前端参数 filename=上传的文件名称(WAF识别文件扩展名既通过这个字段) 3,content-type:MIME类型,客户端浏览器通过这个字段判断文件是图片还是需要打印的postscript文件,客户端通过这个字段说明希望收到的数据类型,服务端通过这个字段来说明发出的数据类型 4,文件的数据正文内容
HTTP数据包涉及的绕过文件上传的方法: 1,JS前端绕过。修改filename字段 1,MIME类型验证。修改Content-Type字段 3,结束符%00,0x00截断绕过白名单和黑名单
本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/weixin_44431280/article/details/123237941