当前位置: 首页 > news >正文

代码审计 | .NET SqlSugar框架注入漏洞

01阅读须知

此文所节选自小报童《.NET 代码审计》专栏,主要内容有涉及的.NET目录和文件操作、SQL注入方向的敏感函数、还有不安全的配置导致的漏洞挖掘思路,对.NET代码审计感兴趣的朋友们可以解锁该电子报刊,解锁更多的报刊内容。

02基本介绍

03漏洞敏感函数

SqlSugar 是一款针对国内.NET环境的开源ORM框架,支持多库架构,兼容众多数据库系统,包括MySql、SqlServer、PostgreSQL、Oracle、Sqlite、Firebird、ClickHouse、QuestDB、达梦、南大通用GBase、神通、人大金仓、虚谷、翰高、华为GaussDB以及MsAccess等,同时允许用户自定义适配其他数据库。

以下是一个以GetList方法为例的示例代码,展示了攻击者如何向MappingColumn方法注入SQL

public IActionResult GetData(string name)
{var list = _db.Queryable<UserInfo>().Where(it => it.NickName.Contains(SqlFunc.MappingColumn<string>(name)))return Ok(list);
}

这段代码是一个ASP.NET Core控制器中的方法,用于从数据库中获取与给定名称匹配的用户信息,并将其作为响应返回。其中_db是一个数据库上下文对象,用于与数据库进行交互。在这里,它应该是通过依赖注入获得的数据库上下文实例。

SqlFunc.MappingColumn<string>(name)是一个映射函数,用于将传入的name参数映射为SQL查询中的列,而SqlSugar的SqlFunc.MappingColumn方法具有在查询中禁用参数化查询的功能。若开发者在使用此方法时从外部传入参数,则会产生SQL注入的风险。当我们提交包含注入的负载时,便会返回当前数据库版本号,如图所示。

想要了解更多内网权限维持的文章,可以移步订阅小报童《.NET 代码审计》电子报刊。

04.NET 电子报刊

电子报刊【.NET代码审计】正式运营,该专栏也是为了广大安全爱好者搭建一个深度交流与学习的平台,本专栏致力于审计或挖掘.NET Web应用中的安全漏洞,通过分享最新的审计技术、不安全配置及敏感函数,助力读者快速掌握.NET漏洞挖掘的精髓。引入小报童也是为了弥补知识星球对于轻量级阅读支持的不足,为用户读者提供更佳的阅读体验。

本次电子报刊《.NET代码审计》专栏,内容主要介绍.NET代码审计时需要注意的漏洞函数,具体可细分为以下3个方向。

1) 介绍.NET审计思路之配置项引发的漏洞
2) 触发.NET SQL注入漏洞敏感函数
3) 触发.NET 目录和文件操作漏洞函数。

我们会长期更新,初步计划保持每周更新1-2篇新内容,与.NET代码审计感兴趣的安全的朋友们一起成长。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java 哈希表
  • 如何在Linux上使用Ansible自动化部署
  • NOI大纲——普及组——素数筛法
  • CentOS搭建Apache服务器
  • 【深度学习】yolov8-det目标检测训练,拼接图的分割复原
  • 网络安全防御【IPsec VPN搭建】
  • 环信+亚马逊云科技服务:助力出海AI社交应用扬帆起航
  • Python3网络爬虫开发实战(3)网页数据的解析提取
  • SSIS_SQLITE
  • 【数据结构--查找】
  • 【反证法】932. 漂亮数组
  • 使用php adodb5连接人大金仓数据库
  • 揭秘Django与Neo4j:构建智能知识图谱的终极指南
  • Adam 和 RMSprop优化算法
  • 每日任务:HTTP状态码详解及强缓存与协商缓存的区别
  • 深入了解以太坊
  • 【mysql】环境安装、服务启动、密码设置
  • Android单元测试 - 几个重要问题
  • crontab执行失败的多种原因
  • Javascript 原型链
  • JavaScript服务器推送技术之 WebSocket
  • MySQL的数据类型
  • Python - 闭包Closure
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • spring cloud gateway 源码解析(4)跨域问题处理
  • vue-router 实现分析
  • zookeeper系列(七)实战分布式命名服务
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 复习Javascript专题(四):js中的深浅拷贝
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 聚簇索引和非聚簇索引
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 来,膜拜下android roadmap,强大的执行力
  • 如何在GitHub上创建个人博客
  • 使用SAX解析XML
  • 听说你叫Java(二)–Servlet请求
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​iOS实时查看App运行日志
  • ​ubuntu下安装kvm虚拟机
  • ​什么是bug?bug的源头在哪里?
  • !!java web学习笔记(一到五)
  • #if #elif #endif
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (06)Hive——正则表达式
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (WSI分类)WSI分类文献小综述 2024
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (离散数学)逻辑连接词
  • (推荐)叮当——中文语音对话机器人
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验