在信息技术日新月异的时代背景下,.NET作为微软倾力打造的综合性开发平台,展现了无与伦比的强大与灵活性。.NET平台不仅为B/S(浏览器/服务器)架构提供了从WebForms到MVC,再到跨平台的.NET Core MVC等一系列成熟的Web开发框架,还在C/S(客户端/服务器)领域与Windows系统实现了深度的集成,这种融合为红队的内网安全活动与企业内部的安全评估工作带来了前所未有的便捷性。特别是AOT(Ahead-Of-Time)编译技术出现后,基于.NET开发的代码能够轻松地编译成非托管程序,从而能在不依赖.NET运行环境的Windows系统上无缝运行,这进一步拓宽了.NET的应用场景。
当前,.NET技术已经深入国内外企业级产品的各个领域,在国际市场上,微软的Exchange、SharePoint等.NET企业级产品早已声名远扬。而在国内市场上,用友软件的U9 cloud、畅捷通T+产品,金蝶软件的星空云产品,以及各类HR、OA等办公系统,也广泛采用.NET技术。无论是金融、教育、医疗还是制造业,都离不开.NET技术对企业核心业务的有力支撑。然而,在日常的渗透测试、国家级安全对抗演练中,我们却发现了一个不容忽视的问题:尽管.NET应用如此重要且广泛,但在国内信息安全领域,关于.NET安全的深入研究和资料却相对匮乏。这使得我们在面对红蓝对抗等高强度实战时,往往捉襟见肘,难以充分发挥潜力。更为严峻的是,这些承载着企业核心业务数据的.NET应用,往往是攻击者窥视的焦点和入侵的突破口。一旦它们被突破,后果将不堪设想。因此,掌握.NET安全攻防技术,不仅是对个人技能的提升,更是对我国关键信息基础设施安全防护能力的重要贡献。
正是基于这样的背景与需求,我们决定撰写本书。本书分上、下两册,通过系统而深入的学习路径,引领读者全面构建属于自己的.NET安全知识体系。上册聚焦于B/S架构下的安全实践,以.NET基础知识为起点,逐步揭开.NET Web代码审计的神秘面纱。下册将深入介绍C/S架构下的安全实践,全面解析.NET平台下的逆向工程和Windows安全技术。此外,本书还将探讨免杀技术、内存马技术、实战对抗等前沿话题,引领读者进入安全对抗的隐蔽战场。
通过系统的介绍和深入的分析,我们希望为广大安全研究人员、.NET开发者以及.NET安全爱好者提供一份.NET平台下的攻防技术宝典,让大家在实战中更加游刃有余。同时,我们也希望通过本书填补国内在.NET安全领域的某些知识空白,为提升国内信息安全水平贡献一份力量。
❑渗透测试工程师
❑信息安全研究员
❑信息安全专业学生
❑ .NET研发人员
❑企业安全负责人
❑ CTF安全参赛者
本书共17章。第1章为全书的开篇,旨在为读者搭建起对.NET安全领域的初步认知,主要内容包括搭建.NET运行环境,使用代码分析器,介绍一些对外公开的.NET平台,了解日常使用的各种渗透测试平台和安全测试工具,以及熟悉PowerShell命令行运行环境。
第2章为.NET基础知识,深入探讨.NET框架的核心技术原理,包括CLR(公共语言运行时)、.NET类库、.NET Web开发模型等关键组件。我们将通过理论讲解与实例演示相结合的方式,帮助读者理解这些技术的工作原理及其在We b应用中的作用。
第3章聚焦于.NET代码审计领域的知识,详细介绍SQL注入的原理、分类及其在.NET Web Forms、MVC及.NET Core MVC等不同框架下的表现形式。
第4章全面解析.NET XSS漏洞的原理、分类及其在.NET应用中的触发条件。重点探讨使用Response.Write和Page.ClientScript输出方法的三种不同方式、Html.Raw的潜在风险,以及通过MVC模型绑定、反序列化和控件Attribute.Add触发XSS攻击的可能性。另外,通过实例展示XSS攻击的过程与危害,并介绍几种有效的XSS修复建议,如输入验证、输出编码等。
第5章介绍.NET CSRF攻击的实施手法,并通过实例展示如何构建CSRF攻击载荷。同时,还介绍几种有效的CSRF修复建议。
第6章详细解析.NET SSRF漏洞的原理、危害及其在.NET各个版本框架应用中的表现形式,主要涉及核心网络请求组件,包括WebRequest、WebClient和HttpClient。
第7章全面剖析.NET XXE漏洞的原理,着重介绍XmlReader、XDocument、XslCompiled-Transform等类,这些类在特定的配置下对DTD(文档类型定义)解析较为宽松,因而可能带来潜在的安全隐患。
第8章主要介绍.NET文件上传和下载漏洞涉及的多个关键类和属性,如Request.Files、Request.InputStream、SendFileAsync等,深入了解它们在文件上传和下载中的角色与潜在风险。
第9章深入研究.NET文件操作中的读写漏洞,这是Web应用程序安全性的一个薄弱环节。文件的读写涉及多个关键类和属性,如StreamReader、FileStream等。这些类在文件的读取和写入中发挥着关键作用,同时也可能存在潜在的安全风险。
第10章主要介绍.NET敏感信息泄露漏洞,涵盖使用不安全的配置、生产环境不安全的部署、页面抛出的异常信息以及泄露API调试地址4个关键环节。
第11章着重介绍.NET中几种常见的失效的访问控制漏洞,包括不安全的直接对象引用漏洞、URL重定向漏洞、授权配置错误漏洞以及越权访问漏洞。
第12章深入探讨.NET代码执行漏洞,通过对Razor模板代码解析执行漏洞、原生动态编译技术运行任意代码以及第三方库动态运行.NET脚本等方面的详细研究,带领读者深入理解这些漏洞的本质、潜在的风险以及实际应用中的防范措施。
第13章通过介绍.NET命令执行漏洞的产生原理,回顾常用的Windows命令,深入了解DOS命令中的操作符,并重点介绍命令注入无回显场景。通过详细分析不同场景下的命令注入技术,帮助读者全面理解和防范这类安全威胁。
第14章深入探讨.NET身份认证漏洞,包括会话管理漏洞和凭证管理漏洞。会话管理漏洞包括伪造Cookie会话漏洞、劫持Session会话漏洞以及Cookieless无状态会话漏洞,凭证管理漏洞包括弱口令暴力破解和密钥生成弱算法。通过学习本章,读者可以全方位理解和有效防御.NET身份认证漏洞。
第15章主要介绍.NET反序列化漏洞的多个攻击链路,包括ActivitySurrogateSelector、TextFormattingRunProperties、DataSet、DataSetTypeSpoof等,揭示它们是如何被利用来触发漏洞的。我们将一一剖析这些攻击链路,让读者能够清晰地理解.NET反序列化漏洞的工作原理。
第16章主要介绍.NET中常见的反序列化漏洞触发场景,包括主流的ViewState、XmlSerializer、BinaryFormatter等技术,通过对每种场景进行详细介绍和分析,揭示潜在的安全风险和危害。
第17章深入研究多个.NET反序列化漏洞插件,如ApplicationTrust、AltSerialization、TransactionManagerReenlist等。这些插件不仅提供了更多工具和技术,还为读者提供了深入了解.NET反序列化漏洞的机会。
本书不仅将讲解每种漏洞的基本原理与防范措施,还将深入探讨如何运用代码审计技术来发现潜在的漏洞点。通过对比不同.NET框架下的敏感函数/方法,读者将能够更加精准地定位安全隐患,提升代码审计的效率与准确性。同时,书中还将介绍一些实用的安全测试工具与插件,帮助读者快速上手、高效实战。
感谢计东、侯亮、张黎元在百忙之中抽空为本书作序,同时也要感谢杨常诚、李帅臻、吕伟、凌云、何艺等为本书撰写了推荐语。
dot.Net安全矩阵是一个低调的、潜心研究技术的团队,衷心感谢每一位团队成员在技术研究领域相互帮助,也欢迎更多志同道合的朋友加入我们,一起做有意义的事!
感谢我的父母、妻子和最爱的女儿李铱晨,我的生命因你们而有意义!感谢身边每一位亲人、朋友和同事,谢谢你们一直以来对我的关心和支持!
最后,衷心希望广大信息安全从业者、爱好者以及安全开发人员在阅读本书的过程中能有所收获。在此感谢每一位读者对本书给予的支持!
李寅