代码审计-ASP.NET项目-未授权访问漏洞

代码审计必备知识点:

1、代码审计开始前准备:

环境搭建使用,工具插件安装使用,掌握各种漏洞原理及利用,代码开发类知识点。

2、代码审计前信息收集:

审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等。

3、代码审计挖掘漏洞根本:

可控变量及特定函数,不存在过滤或过滤不严谨可以绕过导致的安全漏洞。

4、代码审计展开计划:

审计项目漏洞原理->审计思路->完整源码->应用框架->验证并利用漏洞。

代码审计两种方法

功能点或关键字分析可能存在的漏洞

   -抓包或搜索关键字找到代码出处及对应文件。

   -追踪过滤或接收的数据函数,寻找触发此函数或代码的地方进行触发测试。

 

   -常规或部分MVC模型源码可以采用关键字的搜索挖掘思路。

   -框架 MVC 墨香源码一般会采用功能点分析抓包追踪挖掘思路。

1.搜索关键字找敏感函数

2.根据目标功能点判断可能存在的漏洞

 

 

常见漏洞关键字:

SQL注入:

select insert update mysql_query mysqli等

文件上传:

$_FILES,type="file",上传,move_uploaded_file()等 

XSS跨站:

print print_r echo sprintf die var_dump var_export等

文件包含:

include include_once require require_once等

代码执行:

eval assert preg_replace  call_user_func  call_user_func_array等

命令执行:

system exec shell_exec  ` ` passthru pcntl_exec popen proc_open等

变量覆盖:

extract() parse_str() import_request_variables() $$ 等

反序列化:

serialize() unserialize()  __construct   __destruct等

文件读取:

fopen file_get_contents fread fgets fgetss file  fpassthru parse_ini_file readfile等

文件删除:

unlink() remove()等

文件下载:

download() download_file()等

通用关键字:

$_GET,$_POST,$_REQUEST,$_FILES,$_SERVER等

 

案例:.NET项目审计-启明星采购系统-未授权访问漏洞

.NET项目审计介绍

         asp.net可以用C# ,VB.NET ,Jscript.net等等来开发,但是通常首选都是C#和VB.NET

审计asp.net的时候,首先得弄明白他的结构,他并不像php那么单纯。

 

一般来说,在asp.net应用中,需要进行观察的文件有:.aspx,.cs,.ashx,dll文件

1、.aspx是页面后的代码,aspx负责显示,服务器端的动作就是在.cs定义的。

2、.cs是类文件,公共类神马的就是这个了。

3、.ashx是一般处理程序,主要用于写web handler,可以理解成不会显示的aspx页面。

4、.dll就是cs文件编译之后的程序集。

 

ASP.NETInherits、CodeFile、CodeBehind 三个属性指向解析:

Inherits

msdn解释:定义提供给页继承的代码隐藏类。 它可以是从 Page 类派生的任何类。 此特性与 CodeFile 特性一起使用,后者包含指向代码隐藏类的源文件的路径。 Inherits 特性在使用 C# 作为页面语言时区分大小写,而在使用 Visual Basic 作为页面语言时不区分大小写。

CodeFile

msdn解释:指定指向页引用的代码隐藏文件的路径。 此特性与 Inherits 特性一起使用,用于将代码隐藏源文件与网页相关联。 此特性仅对编译的页有效。

Codebehind

msdn解释:指定包含与页关联的类的已编译文件的名称。 该特性不能在运行时使用。此特性用于 Web 应用程序项目。

开始审计:

1.下载源码,搭建好网站。登录进入后台,密码:admin/123456。点击盘点单——新建,复制地址

2.退出管理员登录,再次访问地址跳转到了登录验证。说明pd.aspx文件存在登录检测代码。

3.使用Visual Sdudio Code打开源码,找到pd.aspx文件,审计发现pd.aspx文件中没有检测代码,但是代码中引用了一个purchase.Master文件,验证文件应该在其中。

4.打开purchase.Master文件发现里面还是没有检测代码,代码中Inherits指向了一个pur类,而Inherits提供的都是隐藏类(dll文件)

5.选择bin目录下的purchase.dll(因为Inherits指向的就是Purchase),使用ILSpy工具打开purchase.dll进行反编译。

ILSpy下载:https://github.com/icsharpcode/ILSpy/releases

反编译成功,根据Inherits指向的路径找到pur类,在里面成功找到检测代码。

6.检测代码表示:只要 GetUserId <= 0 就会跳转到登录验证,只要GetUserId的值>0 即可绕过验证。所以需要知道 GetUserId 的值是怎么来的。点击代码中的GetUserId成功定位到其定义代码处。

根据代码得知:GetUserId的值是由请求包中Cookies中的 userinfo和userid 传递的

7.我们就可以在没有登录管理员账户的情况下访问未授权地址——进行抓包,然后修改Cookie值实现绕过检测。

访问:http://192.168.92.249:44/purchase/pd.aspx

抓包修改值:Cookie:userinfo=userid=1

放包成功绕过登录验证,访问到了管理员后台页面

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2022年电赛C题——小车跟随行驶系统——做题记录以及经验分享

前言 自己打算将做过的电赛真题&#xff0c;主要包含控制组的&#xff0c;近几年出现的小车控制题目&#xff0c;自己做过的真题以及在准备电赛期间刷真题出现的问题以及经验分享给大家 这次带来的是22年电赛C题——小车跟随行驶系统&#xff0c;这道题目指定使用的是TI的单片…

leetcode做题笔记83删除排序链表中的重复元素

给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2] 思路一&#xff1a;模拟题意 struct ListNode* deleteDuplicates(struct ListNode* head){i…

如何使用Python编写小游戏?

大家好&#xff0c;我是沐尘而生&#xff0c;如果你是一个热爱编程的小伙伴&#xff0c;又想尝试游戏开发&#xff0c;那么这篇文章一定能满足你的好奇心。不废话&#xff0c;让我们马上进入Python游戏开发的精彩世界吧&#xff01; Python游戏开发的魅力 编写小游戏不仅仅是锻…

力扣:63. 不同路径 II(Python3)

题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。那么从…

基于深度学习的指针式仪表倾斜校正方法——论文解读

中文论文题目:基于深度学习的指针式仪表倾斜校正方法 英文论文题目&#xff1a;Tilt Correction Method of Pointer Meter Based on Deep Learning 周登科、杨颖、朱杰、王库.基于深度学习的指针式仪表倾斜校正方法[J].计算机辅助设计与图形学学报, 2020, 32(12):9.DOI:10.3724…

[自学记录06|*百人计划]Gamma矫正与线性工作流

一、前言 Gamma矫正其实也属于我前面落下的一块内容&#xff0c;打算把它补上&#xff0c;其它的没补是因为我之前写的GAMES101笔记里已经涵盖了&#xff0c;而Gamma矫正在101里面确实没提到&#xff0c;于是打算把它补上&#xff0c;这块内容并不难&#xff0c;但是想通透的理…

使用 wxPython和ECharts生成和保存HTML图表

使用wxPython和ECharts库来生成和保存HTML图表。wxPython是一个基于wxWidgets的Python GUI库&#xff0c;而ECharts是一个用于数据可视化的JavaScript库。 C:\pythoncode\blog\echartshow.py 参考网址&#xff1a;https://echarts.apache.org/v4/examples/zh/index.html 安装…

2023最新水果编曲软件FL Studio 21.1.0.3267音频工作站电脑参考配置单及系统配置要求

音乐在人们心中的地位日益增高&#xff0c;近几年音乐选秀的节目更是层出不穷&#xff0c;喜爱音乐&#xff0c;创作音乐的朋友们也是越来越多&#xff0c;音乐的类型有很多&#xff0c;好比古典&#xff0c;流行&#xff0c;摇滚等等。对新手友好程度基本上在首位&#xff0c;…

区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序…

解决内网GitLab 社区版 15.11.13项目拉取失败

问题描述 GitLab 社区版 发布不久&#xff0c;搭建在内网拉取项目报错&#xff0c;可能提示 unable to access https://github.comxxxxxxxxxxx: Failed to connect to xxxxxxxxxxxxxGit clone error - Invalid argument error:14077438:SSL routines:SSL23_GET_S 15.11.13ht…

ATF(TF-A)安全通告 TFV-5 (CVE-2017-15031)

安全之安全(security)博客目录导读 ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-5 (CVE-2017-15031) 二、CVE-2017-15031 一、ATF(TF-A)安全通告 TFV-5 (CVE-2017-15031) Title 未初始化或保存/恢复PMCR_EL0可能会泄露安全世界的时间信息 CVE ID CVE-2017-1503…

支持https访问

文章目录 1. 打开自己的云服务器的 80 和 443 端口2. 安装 nginx3. 安装 snapd4. 安装 certbot5. 生成证书6. 拷贝生成的证书到项目工作目录7. 修改 main.go 程序如下8. 编译程序9. 启动程序10. 使用 https 和端口 8081 访问页面成功11. 下面修改程序&#xff0c;支持 https 和…

Rust软件外包开发语言的特点

Rust 是一种系统级编程语言&#xff0c;强调性能、安全性和并发性的编程语言&#xff0c;适用于广泛的应用领域&#xff0c;特别是那些需要高度可靠性和高性能的场景。下面和大家分享 Rust 语言的一些主要特点以及适用的场合&#xff0c;希望对大家有所帮助。北京木奇移动技术有…

分布式 - 消息队列Kafka:Kafka 消费者的消费位移

文章目录 01. Kafka 分区位移02. Kafka 消费位移03. kafka 消费位移的作用04. Kafka 消费位移的提交05. kafka 消费位移的存储位置06. Kafka 消费位移与消费者提交的位移07. kafka 消费位移的提交时机08. Kafka 维护消费状态跟踪的方法 01. Kafka 分区位移 对于Kafka中的分区而…

Linux系统安装Google Chrome

1.进入谷歌浏览器官网 Google Chrome - Download the Fast, Secure Browser from GoogleGet more done with the new Google Chrome. A more simple, secure, and faster web browser than ever, with Google’s smarts built-in. Download now.http://www.google.cn/intl/en_…

rust入门系列之Rust介绍及开发环境搭建

Rust教程 Rust基本介绍 网站: https://www.rust-lang.org/ rust是什么 开发rust语言的初衷是&#xff1a; 在软件发展速度跟不上硬件发展速度&#xff0c;无法在语言层面充分的利用硬件多核cpu不断提升的性能和 在系统界别软件开发上&#xff0c;C出生比较早&#xff0c;内…

零售行业供应链管理核心KPI指标(三)

完美订单满足率和退货率 完美订单满足率有三个方面的因素影响&#xff1a;订单按时、足量、无损交货。通常情况下零售企业追求线上订单履行周期慢慢达到行业平均水平&#xff0c;就是交付的速度变快了&#xff0c;这个肯定是一件好事情&#xff0c;趋势越来越好。 同时&#…

周期 角频率 频率 振幅 初相角

周期 角频率 频率 振幅 初相角 当我们谈论傅里叶级数或波形分析时&#xff0c;以下术语经常出现&#xff1a; 周期 T T T: 函数在其图形上重复的时间或空间的长度。周期的倒数是频率。 频率 f f f: 周期的倒数&#xff0c;即一秒内波形重复的次数。单位通常为赫兹&#xff…

【NLP】训练LLM的不同方式

一、说明 在大型语言模型&#xff08;LLM&#xff09;领域&#xff0c;有各种各样的 训练机制&#xff0c;具有不同的手段&#xff0c;要求和目标。由于它们服务于不同的目的&#xff0c;因此重要的是不要将它们相互混淆&#xff0c;并了解它们适用的不同场景。 在本文中&#…

JavaWeb-Listener监听器

目录 监听器Listener 1.功能 2.监听器分类 3.监听器的配置 4.ServletContext监听 5.HttpSession监听 6.ServletRequest监听 监听器Listener 1.功能 用于监听域对象ServletContext、HttpSession和ServletRequest的创建&#xff0c;与销毁事件监听一个对象的事件&#x…
最新文章