开发知识点-dotnet/.Net+C#
System_dll
System.dll 是一个动态链接库(DLL),
它是 .NET Framework 的一部分,包含了许多基本的类和接口,
例如 System.Object、System.String、System.IO、System.Collections、System.Net 等
System.dll 不像 mscorlib.dll 那样紧密地绑定到 CLR(公共语言运行时),
它不需要调用运行时的任何功能
System.dll 可以被不同版本的 CLR/mscorlib.dll 使用,
也可以被不同的 .NET Framework SKU
(如 .NET Client Profile、Silverlight 等)使用
如果你的程序需要使用 System.dll,你可以在项目的引用中添加它,或者在代码中使用 using System; 语句。
Microsoft.Win32.UnsafeNativeMethods 是一个包含了许多 Windows API 函数的 .NET 类,
它们使用 P/Invoke(平台调用)技术来调用本地代码
这些函数被声明为 extern,
并且使用 DllImport 属性来指定要调用的 DLL 和函数名
这些函数被认为是不安全的,因为它们可能会破坏托管代码的内存安全性和类型安全性
Microsoft.Win32.UnsafeNativeMethods 类是私有的,不能直接访问,
但是你可以在你自己的类中复制它们的声明,或者从网站如 pinvoke.net 上找到它们的签名
环境安装
https://dotnet.microsoft.com/en-us/learn/dotnet/hello-world-tutorial/install
dotnet -h
打开Vscode并下载扩展
安装C#、C# Extensions、C/C++
终端中输入dotnet new console
第一种情况是生成obj文件夹、C#.csproj、Program.cs、bin文件夹,同时会有弹窗提示生成不知道什么文件,点击“YES”便可生成.vscode文件夹,里边包含配置
第二种情况是仅生成obj文件夹、C#.csproj、Program.cs
第一种情况中生成的bin文件夹应该是空的,相当于没有,需要继续在终端中输入dotnet run,
bin文件夹中即有出现一些正确的文件
第二种情况相较于第一种情况多一步,
首先仍是在终端中输入dotnet run,
生成bin文件夹;
其次在所打开的文件夹中新建.vscode文件夹,在.vscode文件夹中应再写两个json文件:
按下键盘Ctrl+Shift+P,选择.Net:Generate Assets for build and Debug即可
Ctrl+F5
简介
.NET(读作"dot net")是由微软公司开发的一种广泛使用的软件开发平台。
它提供了一个统一的编程模型,用于构建各种类型的应用程序,包括桌面应用、Web 应用、移动应用和云服务。
.NET 平台包括一系列的工具、库和语言,其中最常用的编程语言包括C#、VB.NET 和 F#。
这些语言可以与.NET提供的大型类库结合使用,以实现各种功能,如数据访问、GUI开发、安全性、网络通信等。
除了传统的.NET Framework之外,微软还推出了.NET Core和最新的.NET 5+,这些版本具有更高的性能、更好的跨平台支持以及更多的开源特性。
总的来说,.NET 是一个功能强大且灵活的开发平台,提供了各种工具和资源,用于简化软件开发过程,并使开发人员能够构建高效、可靠并且安全的应用程序。
Core 与 Framework 的 区别
.NET Framework 是最早发布的版本,它是一个用于构建 Windows 应用程序的平台。
它提供了广泛的类库、运行时环境和工具,
包括ASP.NET、Windows Forms、ADO.NET等。
.NET Framework 需要在 Windows 操作系统上安装并运行。
.NET Core 是一个跨平台的开源平台,用于构建应用程序,可以在 Windows、Linux 和 macOS 上运行。
与 .NET Framework 相比,.NET Core 更轻量级、高性能,并且支持更多的部署选项。
.NET Core 也提供了类库、运行时环境和工具,但与 .NET Framework 不完全兼容。
而 .NET 是一个更加通用的术语,可以指代整个 .NET 平台的生态系统,包括 .NET Framework、.NET Core 和其他相关技术和工具。.NET 平台旨在提供一致的开发体验,无论是在 Windows 还是跨平台环境中。
总结起来,.NET Framework 是一个用于构建 Windows 应用程序的平台,.NET Core 是一个跨平台的开源平台,而 .NET 则是整个 .NET 平台的统称。
常用版本
.Net Framework4.8 (Win10/11无需安装,win7需要下载)
漏洞复现-.Net-ueditor上传
UEditor是由百度web前端研发部开发的所见即所得的开源富文本编辑器,
具有轻量、可定制、用户体验优秀等特点。
基于MIT开源协议,所有源代码在协议允许范围内可自由修改和使用。
百度UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,
有效降低了企业的开发成本。
- 定制化:
全新的分层理念,满足多元化的需求。
采用三层架构:
- 核心层: 为命令层提供底层 API,如 range/selection/domUtils 类。
- 命令插件层: 基于核心层开发 command 命令,命令之间相互独立。
- 界面层: 为命令层提供用户使用界面。
满足不同层次用户的需求。
- 浏览器兼容
兼容 Mozilla, MSIE, FireFox, Maxthon,Safari 和 Chrome,实现浏览器无差别化。
- 注重细节
统一不同浏览器下表格选取方式。
提供黑 / 白名单的过滤机制。
更好的 word 支持,实现粘贴转换机制。
影响范围
该漏洞影响UEditor的.Net版本,其他的php,jsp,asp版本不受此UEditor的漏洞的影响。
asp(.net)环境安装,win2008,漏洞版本只支持.net 4.0,选择net4.0
https://pan.baidu.com/s/1ntG3Tsl#list/path=%2F ueditor历史版本
http://fex.baidu.com/ueditor/#server-net UEditor文档
发布时间:2018-08-03
公开时间:2018-08-21
漏洞类型:逻辑漏洞
危害等级:高
漏洞编号:xianzhi-2018-08-16052905(不收取 驳回)
测试版本:github最新版
ueditor1_4_3-utf8-net.zip
fofa 指纹
body="UE.getEditor('editor').setHide()"
漏洞介绍
Ueditor是百度开发的一个网站编辑器,目前已经不对其进行后续开发和更新,
.net存在任意文件上传,导致可以绕过文件格式的限制达到任意文件上传 ,在获取远程资源的时候并没有对远程文件的格式进行严格的过滤与判断。
漏洞的成因是在获取图片资源时仅检查了ContentType,
Crawler方法对source[]的检查仅仅是一个ContentType。
if (response.ContentType.IndexOf