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

news2024/11/18 5:36:56

目录

一、审计方法

 1、从黑盒到白盒

2、白盒审计

3、灰盒审计

二、审计过程

1、功能点追踪

2、功能函数

3、目录扫描

4、getshell

5、安全模块未引用

6、自动扫描工具


一、审计方法

 1、从黑盒到白盒

--->从一个网站前端

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

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

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

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

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


2、白盒审计

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


3、灰盒审计

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



二、审计过程

1、功能点追踪

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

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

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

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


2、功能函数

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

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


3、目录扫描

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

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


4、getshell

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


5、安全模块未引用

为了节省开发成本与时间,很多功能都是基于模块开发,最后耦合在一起的,防护模块也不例外
当某些页面为调用一些安全验证模块,就会出现对应的安全问题
在源码中寻找未调用安全模块的目录(可以使用排除法,搜索安全模块的函数,然后会出现包含安全模块的目录,将包含安全模块的目录进行排除)


6、自动扫描工具

 1、ILSpyi

Releases · icsharpcode/ILSpy (github.com)

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


2、dnSpy  

Releases · dnSpy/dnSpy (github.com)


3、Reflector

网上下载网站可以下载到

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【日常系列】LeetCode《20·数据结构设计》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 lc 155 【剑指 30】【top100】&#xff1a;最小栈 https://leetcode.cn/problems/min-stack/ 提示&#xff1a; -2^31 < val < 2^31 - 1 pop、top 和…

快看梅西射门了,这是梅西的大力抽射~阿根廷加油,我们是冠军

&#x1f5b1; ⌨个人主页&#xff1a;Love And Program的个人主页 &#x1f496;&#x1f496;如果对你有帮助的话希望三连&#x1f4a8;&#x1f4a8;支持一下博主 来自梅西的大力抽射&#x1f970;致昨晚的梅西思路加入阿根廷元素加入足球元素源码致昨晚的梅西 昨晚上阿根廷…

springcloud 从头开始构建分布式微服务脚手架

必备服务&#xff08;Windows开发本机环境&#xff09; Java maven mysql&#xff1a;自启动服务&#xff0c;后台运行 127.0.0.1:3306 MySQL57 root/root Redis&#xff1a;手动运行&#xff0c;前台运行 127.0.0.1:6379 执行命令redis-server.exe redis.windows.conf na…

Weblogic漏洞 - 通杀方式

文章目录简介恶意文件把恶意文件部署到攻击机&#xff0c;并开启http服务写入文件写入反弹shell命令执行反弹shell命令拿到目标机器权限[linux] WebLogic Server 版本: 12.2.1.3简介 最早在 CVE-2019-2725 被提出&#xff0c;对于所有Weblogic版本均有效。 构造一个XML文件&…

CALC-python和shell对字符的解析差异

好久没看题了&#xff0c;记录一道感觉还挺有意思的题目 一进去题目界面非常简洁&#xff0c;一个计算器 这个简洁的界面&#xff0c;好像似曾相识&#xff0c;总感觉好像以前做题时遇到的ssti题目的界面&#xff0c;果断来一波ssti emem有WAF&#xff0c;尝试下绕过&#xff…

C++ 实现守护进程

文章目录1.守护进程概念1.什么是守护进程2.守护进程的特点3.如何查看linux系统中已存在的守护进程2.守护进程编写的步骤3.示例1.守护进程概念 1.什么是守护进程 Linux Deamon守护进程是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或者等待处理某些事…

系统小工具API接口,免费好用

1、前言 系统小工具接口&#xff0c;可生成长短不重复id&#xff0c;可获取服务器标准时间。 查看接口完整信息&#xff1a;https://www.idmayi.com/doc/detail?id23 2、接口明细 注意&#xff1a;app_id和app_secret是临时秘钥&#xff0c;如果真正使用&#xff0c;需要去 ht…

ArrayList源码解析

ArrayList源码解析 简介 ArrayList 是一种以数组实现的 List&#xff0c;与数组相比&#xff0c;它具有动态扩展的能力&#xff0c;因此也可称之为动态数组。 ArrayList 线程不安全&#xff0c;除该类未实现同步外&#xff0c;其余跟 Vector 大致相同。 Java 泛型只是编译器…

赛先生的新旅行:昇腾AI带来的科学智能变革

《三体》动画即将开播&#xff0c;又一次引发了全球科幻迷的无限热情。提到《三体》&#xff0c;大家有很多深刻记忆。其中之一是三体人在入侵地球之前&#xff0c;首先是派智子锁死地球的基础科学进步&#xff0c;从而限制人类的整体发展。很多人会担心&#xff0c;物理、化学…

LeetCode题解12 (146,97) LRU缓存<HashMap + 双向链表>,二叉树的中序遍历

文章目录LRU缓存(146)完整代码解答:二叉树的中序遍历(94)完整代码解答:LRU缓存(146) 从题上看存在Key和Value因此我们采用HashMap来进行存储,这里我们采用HashMap双向链表来实现,我们需要实现里面的get,put方法。 我们需要先创建1个链表节点 //先定义一个节点类 class ListNode…

一个合格的程序员也是一名合格的侦探---Debug篇

调试 文章目录调试1.什么是bug&#xff1f;1.1bug概念1.2bug的起源2.什么是调试&#xff0c;调试的重要性2.1调式的概念2.2 调试的基本步骤2.3Debug版本和Release版本2.3.1Debug版本2.3.2Release版本2.3.3区别2.3.4同一代码在Debug和Release下的差别3.Windows下visual stdio的调…

ioDraw - 免费的在线图表制作工具

介绍&#xff1a; ioDraw是一款数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表&#xff0c;支持折线图、柱状图、饼图、散点图等 地址&#xff1a;https://www.iodraw.com/chart 特点&#xff1a; 图表…

springboot实现License证书的授权和许可到期验证

前言 在客户服务器部署软件项目后&#xff0c;为了项目版权管控或者对项目进行授权收费处理的&#xff0c;就需要实现项目的授权和许可验证。 在这里讲解的是使用 license证书 的形式实现授权和许可验证&#xff08;已通过测试&#xff09;。 主要是通过 IP地址、MAC地址、CP…

PyTorch - 线性回归

文章目录普通实现准备数据反向传播构建模型 实现实例化模型、损失函数、优化器训练数据评估模型普通实现 准备数据 import torch import matplotlib.pyplot as plt # 1、准备数据 # y 2 * x 0.8 x torch.rand([500, 1]) y_true 2 * x 0.8 # 2、通过模型计算 y_predict …

MyBatis面试题(2022最新版)

整理好的MyBatis面试题库&#xff0c;史上最全的MyBatis面试题&#xff0c;MyBatis面试宝典&#xff0c;特此分享给大家 MyBatis简介 MyBatis是什么&#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;一个半 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它…

Kotlin 开发Android app(二十一):协程launch

什么是协程&#xff0c;这可是这几年才有的概念&#xff0c;我们也不用管它是什么概念&#xff0c;先看看他能做什么。 创建协程 添加依赖&#xff1a; implementation org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9implementation org.jetbrains.kotlinx:kotlinx-cor…

DCDC电感下方铜箔如何处理

挖&#xff1a;电感在工作时&#xff0c;其持续变化的电流产生的电磁波会或多或少的泄露出来&#xff0c;电感下方的铜箔受电磁波影响&#xff0c;就会有涡流出现&#xff0c;这个涡流&#xff0c;①可能对线路板上的信号线有干扰&#xff0c;②铜箔内的涡流会产生热量&#xf…

申请阿里云域名SSL证书步骤

1.【点击登录】 阿里云 2.选择 DV单域名证书 3.确定购买&#xff0c;支付。 4.完成后&#xff0c;跳转回控制台。 5.点击 证书申请。 6.填写域名、申请人姓名、手机号、邮箱、所在地 7、选择域名验证方式&#xff0c;官方提供了三种验证方式&#xff0c;根据自身情况选择其中…

【Linux】Linux的常见指令详解(下)

目录 前言 head/tail 命令行管道 date sort cal 搜索指令 find which whereis alias grep zip tar file bc history 热键 前言 之前讲了Linux的常见指令详解&#xff08;上&#xff09;&#xff0c;这次终于把下也补齐了。如果对你有帮助还麻烦给博主一个…

Netty_05_六种序列化方式(JavaIO序列化 XML序列化 Hessian序列化 JSON序列化 Protobuf序列化 AVRO序列化)(实践类)

文章目录一、普通的序列化方式(bean对象有直接的java类)1.1 普通的java io byteArray输入输出流的序列化方式1.2 xml序列化方式&#xff08;xml用来做配置文件&#xff0c;这样序列化出来长度很大&#xff09;1.3 Hessian序列化方式&#xff08;这个Dubbo中使用的序列化方式&am…