.NET 分享两个任意文件下载的漏洞场景
2024-1-7 08:52:27 Author: dotNet安全矩阵(查看原文) 阅读量:18 收藏

.NET为Response对象提供了一个新的方法TransmitFile来解决使Response.BinaryWrite下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。Response.TransmitFile可以有效地处理大文件的下载,因为它不需要将整个文件读取到服务器内存中,而是直接从硬盘上将文件内容发送给客户端,减少了服务器的内存压力和响应时间。该方法接受一个文件路径作为参数,并将指定的文件内容发送给客户端。

面是Response.TransmitFile的代码示例,复现存在文件下载漏洞的场景,具体代码如下所示

string fileName = Request.QueryString["file"]; string filePath = Path.Combine(Server.MapPath("~/Uploads/"), fileName);if (File.Exists(filePath)){     Response.Clear();     Response.ContentType = "application/octet-stream";     Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);     Response.TransmitFile(filePath);     Response.End();}

提交file参数 "../web.config",成功读取敏感文件内容。如下图

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技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展经过运营团队成员商议一致同意给到师傅们最大优惠力度,只需199元就可以加入我们。

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等,后续还会倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247490178&idx=2&sn=aa1c9098329f9501f8f91574b0134919&chksm=fbec2f5da637f8cba17e9ae250852813e27db9f36d4e7779434bcada08bb162b57f135577199&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh