【代码审计-.NET】基于.NET框架开发的代码审计

简介: 【代码审计-.NET】基于.NET框架开发的代码审计

一、审计方法


1、从黑盒到白盒


--->从一个网站前端

--->查看其页面的源代码,并分析关键


--->根据关键部分使用fofa等工具去搜索(所使用的关键字部分搜到的越多的,就优先考虑,毕竟出货几率就大了)


--->然后寻找到对应的开发系统(网站一多,肯定有的地方会表明某某系统,某某技术支持等待)


--->然后再寻找到对应的源码


b1942c9ef96b48d4b306b11406e8a4bf.png


(关键部分就可以搜这些URL,找到资产最多的)


2、白盒审计

直接从源码下手,结合cnvd已经爆出,但未公布的漏洞,然后尝试在修复后的新版本中继续绕过,实现新漏洞(直接代码审计也许考虑当前版本已有的漏洞,事半功倍)


3、灰盒审计

黑盒白盒相结合的动态审计


二、审计过程


1、功能点追踪

--->黑盒寻找到功能点


--->分析请求的URL所对应源码的路由(抓包分析)


--->再分析对应的Inherits、CodeFile、CodeBehind(即所指向的程序集,以及路径等信息。找到后反编译后再进行分析)


--->再对程序进行分析是否可以利用


2、功能函数

根据平时收集的功能函数,丢审计工具里面去搜


(注:源码多用几个工具打开,有的工具可能搜不到;函数开始平时日积月累的收集,也可以多查找几个相关功能的源代码,找出这个功能的所有源代码里面相同的函数,可能就是这个功能函数了)


3、目录扫描

将源码的所有目录复制下来,然后使用bp挨个跑一遍


(如果返回字节很大,就说明可能存在未授权访问)


4、getshell

如果要getshell的话,就得考虑文件上传、命令执行等可能存在严重漏洞的功能点了


5、安全模块未引用

为了节省开发成本与时间,很多功能都是基于模块开发,最后耦合在一起的,防护模块也不例外

当某些页面为调用一些安全验证模块,就会出现对应的安全问题

在源码中寻找未调用安全模块的目录(可以使用排除法,搜索安全模块的函数,然后会出现包含安全模块的目录,将包含安全模块的目录进行排除)


6、自动扫描工具

1、ILSpyi


Releases · icsharpcode/ILSpy (github.com)

a537de6e934b40c98726020e4854aed9.png


(还一直在更新,推荐使用这个)


2、dnSpy  


Releases · dnSpy/dnSpy (github.com)


a9d7418c5b5c4690aac139e0f349b0cc.png

3、Reflector


网上下载网站可以下载到


Reflector下载免费版_.NET Reflector(.NET反编译工具下载)绿色免费版11.1 - 系统之家 (xitongzhijia.net)


目录
相关文章
|
8天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
12天前
|
人工智能 量子技术 C#
【专栏】.NET 开发:开启数字化新时代
【4月更文挑战第29天】.NET开发在数字化新时代中发挥关键作用,借助跨平台能力、高性能和现代编程语言支持,如C#,助力企业实现数字化转型。通过企业级应用开发、移动应用和云计算集成,.NET加速业务流程和提升用户体验。未来,.NET将涉足AI、ML、MR/AR及量子计算,持续推动技术创新和数字化转型。开发者应提升技能,适应高性能需求,把握发展机遇。
|
12天前
|
缓存 监控 算法
【专栏】.NET 开发:实现卓越性能的途径
【4月更文挑战第29天】本文探讨了.NET开发中的性能优化,强调了理解性能问题根源和使用分析工具的重要性。基础优化包括代码优化(如减少计算、避免内存泄漏)、资源管理及选择合适算法。高级策略涉及并行编程、缓存策略、预编译(AOT)和微服务架构。持续性能测试与监控是关键,包括性能测试、监控分析和建立优化反馈循环。开发者应持续学习和实践性能优化,以构建高性能应用。
|
12天前
|
开发框架 .NET C#
【专栏】理解.NET 技术,提升开发水平
【4月更文挑战第29天】本文介绍了.NET技术的核心概念和应用,包括其跨平台能力、性能优化、现代编程语言支持及Web开发等特性。文章强调了深入学习.NET技术、关注社区动态、实践经验及学习现代编程理念对提升开发水平的重要性。通过这些,开发者能更好地利用.NET构建高效、可维护的多平台应用。
|
12天前
|
机器学习/深度学习 vr&ar 开发者
【专栏】.NET 技术:引领开发新方向
【4月更文挑战第29天】本文探讨了.NET技术如何引领软件开发新方向,主要体现在三方面:1) 作为跨平台开发的先锋,.NET Core支持多操作系统和移动设备,借助.NET MAUI创建统一UI,适应物联网需求;2) 提升性能和开发者生产力,采用先进技术和优化策略,同时更新C#语言特性,提高代码效率和可维护性;3) 支持现代化应用架构,包括微服务、容器化,集成Kubernetes和ASP.NET Core,保障安全性。此外,.NET还不断探索AI、ML和AR/VR技术,为软件开发带来更多创新可能。
|
12天前
|
物联网 vr&ar 开发者
【专栏】.NET 技术:为开发注入活力
【4月更文挑战第29天】本文探讨了.NET技术的创新,主要体现在三个方面:1) .NET Core实现跨平台开发革命,支持多种操作系统和硬件,如.NET MAUI用于多平台UI;2) 性能提升与生产力飞跃,C#新特性简化编程,JIT和AOT优化提升性能,Roslyn提供代码分析工具;3) 引领现代化应用架构,支持微服务、容器化,内置安全机制。未来,.NET 7将带来更多新特性和前沿技术整合,如量子计算、AI,持续推动软件开发创新。开发者掌握.NET技术将赢得竞争优势。
|
12天前
|
人工智能 前端开发 Cloud Native
【专栏】洞察.NET 技术的开发趋势
【4月更文挑战第29天】本文探讨了.NET技术的三大发展趋势:1) 跨平台与云原生技术融合,通过.NET Core支持轻量级、高性能应用,适应云计算和微服务;2) 人工智能与机器学习的集成,如ML.NET框架,使开发者能用C#构建AI模型;3) 引入现代化前端开发技术,如Blazor,实现前后端一致性。随着.NET 8等新版本的发布,期待更多创新技术如量子计算、AR/VR的融合,.NET将持续推动软件开发的创新与进步。
|
12天前
|
开发框架 物联网 测试技术
【专栏】.NET 开发:打造领先应用的基石
【4月更文挑战第29天】本文探讨了.NET开发框架为何成为构建领先应用的首选。高性能与稳定性是.NET的核心优势,它采用先进的技术和优化策略,如.NET Core的轻量级设计和JIT/AOT编译模式。跨平台兼容性让开发者能用相同代码库在不同操作系统上构建应用。现代化的开发体验,如C#语言的创新特性和Visual Studio的强大工具,提升了开发者生产力。丰富的生态系统和广泛支持,包括庞大的开发者社区和微软的持续投入,为.NET提供了坚实后盾。
|
12天前
|
人工智能 前端开发 Devops
【专栏】洞察.NET 技术在现代开发中的作用
【4月更文挑战第29天】本文探讨了.NET技术在现代软件开发中的核心价值、应用及挑战。.NET提供语言统一性与多样性,强大的Visual Studio工具,丰富的类库,跨平台能力及活跃的开发者社区。实际应用包括企业级应用、Web、移动、云服务和游戏开发。未来面临性能优化、容器化、AI集成等挑战,需持续创新。开发者应深入理解.NET,把握技术趋势,参与社区,共创美好未来。
|
12天前
|
机器学习/深度学习 人工智能 开发者
【专栏】.NET 技术:为开发带来新机遇
【4月更文挑战第29天】本文探讨了.NET技术如何为软件开发带来新机遇,分为三个部分:首先,.NET的跨平台革命,包括.NET Core的兴起、Xamarin与.NET MAUI的移动应用开发、开源社区的推动及性能优化;其次,介绍了云服务与微服务架构的集成,如Azure云服务、微服务支持、DevOps与CI/CD,以及Docker容器化;最后,讨论了AI与机器学习集成,如ML.NET、认知服务、TensorFlow和ONNX,使开发者能构建智能应用。面对这些机遇,开发者应不断学习和适应新技术,以创造更多价值。