.NET代码审计之任意文件下载-BinaryWrite

admin 2023年9月5日14:25:57评论28 views字数 806阅读2分41秒阅读模式

0x01 Resonse.BinaryWrite

Response.BinaryWrite是.NET中用于将字节数据发送到客户端的方法,比如直接输出图像、音频或视频等二进制数据到客户端。下面是Response.BinaryWrite的代码示例,复现存在文件下载漏洞的场景,代码如下

string fileName = Request.QueryString["file"]; string filePath = Path.Combine(Server.MapPath("~/Uploads/"), fileName);FileStream fs = new FileStream(filePath, FileMode.Open);byte[] bytes = new byte[(int)fs.Length];fs.Read(bytes, 0, bytes.Length);fs.Close();Response.ContentType = "application/octet-stream";Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));Response.BinaryWrite(bytes);Response.Flush();Response.End();

上述代码读取文件创建一个FileStream 文件流,从文件流中读取文件内容并将存储在字节数组 bytes中。最后通过Response.BinaryWrite(bytes) 将文件的字节数组内容写入 HTTP 响应流发送到客户端。提交file参数 "../web.config",成功读取敏感文件内容。如下图

.NET代码审计之任意文件下载-BinaryWrite

 

原文始发于微信公众号(dotNet安全矩阵):.NET代码审计之任意文件下载-BinaryWrite

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月5日14:25:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   .NET代码审计之任意文件下载-BinaryWritehttps://cn-sec.com/archives/2005331.html

发表评论

匿名网友 填写信息