如何通过 wireshark 捕获 C# 上传的图片

这篇具有很好参考价值的文章主要介绍了如何通过 wireshark 捕获 C# 上传的图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一:背景

1. 讲故事

这些天计划好好研究下tcp/ip,以及socket套接字,毕竟工控中设计到各种交互协议,如果只是模模糊糊的了解,对分析此类dump还是非常不利的,而研究协议最好的入手点就是用抓包工具 wireshark,废话不多说,这篇通过 wireshark 提取一个小图片作为入手。

二:wireshark 图片抓包

1. 捕获图片

为了方便演示,我们就用最简单的 http 上传图片的方式,客户端代码如下:


<form method="post" action="/Home/Upload" enctype="multipart/form-data">
    <input type="file" name="file" />
    <button type="submit">Upload</button>
</form>

接下来是server端代码,用 chatgpt 吐出来的代码做了一点简单修改。


    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;
        private readonly IWebHostEnvironment _env;

        public HomeController(IWebHostEnvironment env)
        {
            _env = env;
        }

        [HttpPost]
        public async Task<IActionResult> Upload(IFormFile file)
        {
            if (file == null || file.Length == 0)
            {
                return BadRequest("Please select a file to upload.");
            }

            // 生成唯一的文件名
            var fileName = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName);

            // 拼接文件保存路径
            var filePath = Path.Combine(_env.WebRootPath, "uploads", fileName);

            // 保存文件到磁盘
            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                await file.CopyToAsync(stream);
            }

            return Ok("File uploaded successfully.");
        }
    }

接下来将 asp.net core 部署在虚拟机上,修改端口为80,appsettings.json 修改如下:


{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://0.0.0.0:80"
      }
    }
  }
}

运行之后,一切正常,截图如下:
如何通过 wireshark 捕获 C# 上传的图片

2. wireshark 捕获

这里我们将 wireshark 部署在 server (192.168.25.133)端,不过在开启之前有两点要注意:

  • 寻找到你需要采集流量包的网卡,比如我这里的 Ethernet0
  • 设置一个捕获过滤器,这样就不会把你的 wireshark 采集界面给卡死。

参考截图如下:

如何通过 wireshark 捕获 C# 上传的图片

启动捕获后,在首页开始上传一个 1M左右的图片,在 wireshark 中可以看到这 1M 的图片被切割成了 791 个 tcp segment 发送。

如何通过 wireshark 捕获 C# 上传的图片

接下来在 上图中的 Http 请求上点击右键,选择 Follow -> TCP Stream ,会自动打开本次 http 传输的全部内容,接下来记得做下面三个选择:

  • 选择正确的数据包流向
  • 数据格式为原始的Raw格式
  • Save as 保存到本地

详情截图如下:

如何通过 wireshark 捕获 C# 上传的图片

根据 http 上传图片的格式,把内容中换行符之前和之后的二进制都去掉,而这个换行符的二进制表示为 0D0A,接下来打开 winhex,删掉 0D0A 之前和之后的所有多余字符。截图如下:

  1. 之前

如何通过 wireshark 捕获 C# 上传的图片

  1. 之后

如何通过 wireshark 捕获 C# 上传的图片

如果大家有点懵,可以观察一个正确的 PNG 在 WinHex 上的表现,选中多余的二进制之后做一个 delete 操作,然后重命名为 test.png,截图如下:

如何通过 wireshark 捕获 C# 上传的图片

哈哈,一张图片映入眼帘,打完收工!

三:总结

wireshark 还是非常强大有意思的,相比呈现工具更多的还是需要对协议的理解,希望能对dump分析提供一些原料动力!文章来源地址https://www.toymoban.com/news/detail-746289.html

如何通过 wireshark 捕获 C# 上传的图片

到了这里,关于如何通过 wireshark 捕获 C# 上传的图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT通过styleSheet样式表设置按钮背景图片自适应大小

    默认按钮效果   鼠标移动到按钮上的效果     鼠标按住不放的效果      1.添加背景图片资源

    2024年02月11日
    浏览(21)
  • 【机器学习故事】“超市货架上的智慧:如何通过机器学习优化商品布局,引爆销售热潮“

    在一个明媚的早晨,阳光洒在你刚刚开张的超市上,货架上整齐地摆放着各式各样的商品,等待着顾客的光临。 你站在超市的入口,满怀期待地想象着顾客们满载而归的场景。然而,生意并没有你想象的那么好。你发现有些商品似乎总是卖不出去,而有些商品则经常缺货。你

    2024年01月21日
    浏览(12)
  • C# MVC 多图片上传预览

    开发框架:MVC,Layui 列表主界面这里就不展示了,可以去看看这篇文章:Layui项目实战,这里讲的是“上传Banner”界面功能: 其中包括, 多文件上传,预览,后台接收,保存 ,仅此而已 1.前端Html代码 head头部代码块: 注意:这里引用的是Layui和jQuery插件,不过重点功能还是

    2024年02月17日
    浏览(14)
  • 用Wireshark或MNM捕获WIFI包

                    wireshark官网:Wireshark · Go Deep.                 MNM官网:Download Microsoft Network Monitor 3.4 (archive) from Official Microsoft Download Center         wireshark要有Npcap工具包才能抓WiFi包,没有是抓不了也做不了以下几个步骤的,解决办法就是把wireshark卸载之后重新安装,

    2023年04月27日
    浏览(13)
  • JAVA通过阿里云OSS存储实现图片上传功能

    首先我们需要在阿里云注册账号,实名认证后开通OSS功能,点击进入OSS功能的管理平台 进入概览页面后,点击Bucket列表,创建一个Bucket(相当于一个存放文件的文件夹)  关键是要获得下面几个关键的信息,只有拥有这些信息才能连接上这个Bucket进行操作: 添加对应依赖  

    2024年02月05日
    浏览(12)
  • 5.2.4 IP数据报(二)分析Wireshark捕获的数据帧

    5.2.4 IP数据报(二)分析Wireshark捕获的数据帧 为了更好的理解IP数据报的格式,我们通过一个实例学习IP数据报的格式 例:使用数据报捕获工具Wireshark采集我自己主机传输的一条报文,其中有个数据帧的内容如图所示(均用16进制表示),这里我们分析这个帧中分装的IP数据报

    2024年02月07日
    浏览(12)
  • pygame如何添加背景图片

    Pygame可以使用pygame.image模块来添加背景图片,方法如下: 使用pygame.image.load( )加载图片; 使用pygame.transform.scale( )缩放图片; 使用pygame.display.set_mode( )创建一个新的显示窗口; 使用pygame.display.get_surface( )获取窗口表面; 使用pygame.display.update( )更新窗口表面; 使用pygame.display

    2024年02月11日
    浏览(22)
  • VSCode 如何设置背景图片

     VSCode 设置背景图片 1.打开应用商店,搜索 background ,选择第一个,点击安装。 2. 安装完成后点击设置,点击扩展设置。 3.点击在 settings.json 中编辑。    4.将原代码注释后,加入以下代码。   5. 保存后重启 VSCode 就能看到设置的背景图片啦。 6.最后再点击设置,点击颜色主

    2024年02月06日
    浏览(12)
  • 6.3.5 利用Wireshark进行协议分析(五)----捕获并分析ICMP报文

    6.3.5 利用Wireshark进行协议分析(五)----捕获并分析ICMP报文 一、捕获ICMP报文 打开Wireshark,选择网络接口并点击开始按钮。分组列表面板不断刷新抓渠道的数据包,为了过滤出我们所要分析的ICMP报文,我们在过滤框中输入icmp,为了生成icmp报文,我们需要运行系统自带的ping程

    2024年02月16日
    浏览(13)
  • 【五一创作】网络协议与攻击模拟-01-wireshark使用-捕获过滤器

    网络接口层(没有特定的协议)PPPOE 物理层 数据链路层 网络层:IP (v4/v6) ARP (地址解析协议) RARP ICMP (Internet控制报文协议) IGMP 传输层:TCP(传输控制协议) UDP(用户数据报协议) 应用层:都是基于传输层协议的端口,总共端口0~65535 0~1023 HTTP—tcp80 HTTPS-----TCP443 DHCP DNS HTTP HTTPS FTP SMTP POP3 I

    2024年02月02日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包