Web.config在滲透中的作用是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
大竹ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
下面主要介紹web.config文件在滲透中的作用,即可上傳一個web.config時的思路,話不多說,開始正題。首先我們來看一下web.config是什么,援引百度百科的介紹:
Web.config文件是一個XML文本文件,它用來儲存ASP.NETWeb 應(yīng)用程序的配置信息,它可以出現(xiàn)在應(yīng)用程序的每一個目錄中。在運行時對Web.config文件的修改不需要重啟服務(wù)就可以生效.
關(guān)鍵詞:xml文本、.net配置、無需重啟,這幾個特性就決定了其在滲透中的作用,我們來看下具體操作。
以下實驗環(huán)境為:
windows server 2008
iis 7
.net 3.5
(一)使用web.config進行重定向釣魚
首先通過實驗了解什么是重定向:數(shù)據(jù)流重定向
實驗:數(shù)據(jù)流重定向(合天網(wǎng)安實驗室)
(數(shù)據(jù)流重定向就是將某個指令執(zhí)行后應(yīng)該要出現(xiàn)在屏幕上的數(shù)據(jù),將它們傳輸?shù)狡渌牡胤?。?/p>
在iis中有一項為url redirect也就是用來進行url重定向的,當(dāng)我們可以長傳一個web.config的時候我們就可以使用這種方式來進行釣魚攻擊,在這里要注意的是,不同的iis版本的配置稍有不同,以本次環(huán)境中的iis7為例,假如我們想讓目標網(wǎng)站跳轉(zhuǎn)到baidu,我們只需要這樣寫我們的web.config:
中間的一行為我們具體實現(xiàn)的代碼,即開啟重定向并重定向到百度,剩下的都是服務(wù)默認的自帶的,相當(dāng)于模板,此時我們訪問目標站點,就會跳轉(zhuǎn)到baidu了。
而大于等于iis7版本就稍微復(fù)雜一些,因為在這之后多了一個url write功能,其中包含了url重定向,所以很多開發(fā)選擇使用這個功能進行操作。我們來看一下,如果為url write該如何去做。假如我們在url write定義了一個規(guī)則為:為所有不帶斜杠(/)的網(wǎng)址,自動加上斜杠(/),比如下圖這樣:
那么我們的web.config就會自動生成以下內(nèi)容:
看起來有些難懂,下面稍微給大家說一下,首先在url write分為入站規(guī)則(
None:
Rewrite:將請求重寫為另一個URL。
Redirect:將請求重定向到另一個URL。
CustomResponse:向客戶返回自定義響應(yīng)。
AbortRequest:刪除請求的HTTP連接。
而redirectType屬性指定要使用永久重定向還是臨時重定向。剩下的大家可以查閱msdn上面的手冊,寫的非常詳細。說了這么多,估計大家就能明白怎么去寫web.config了,給出大家一個url write的web.config釣魚模板,可自行進行修改:
因為web.config不需要重啟服務(wù),所以當(dāng)我們能夠傳一個web.config上去的時候,我們也就達到了我們的目的,也有可能運維人員已經(jīng)寫好了一些規(guī)則,我們不想貿(mào)然驚動管理者的話,如果此時我們可以上傳.shtm或.shtml文件,并使用以下代碼來讀取web.config的內(nèi)容。
并根據(jù)讀取的內(nèi)容來進行后續(xù)操作。
(二)使用web.config進行xss
這是一種比較古老的技術(shù),依靠web.config的name屬性,來構(gòu)造一個xss,前提是iis6或者更低的版本不支持這類攻擊,假設(shè)我們上傳的web.config內(nèi)容如下:
則我們訪問該文件時則會彈出xss
(三)使用web.config運行asp代碼
這類攻擊方法其實也不是什么很稀奇的技術(shù),因為web.config可以操控iis服務(wù)器,那么我們可以去調(diào)用system32\inetsrv\asp.dll文件,來達到運行任意asp代碼的目的。比如下面這樣:
此時訪問文件,則會輸出3,運行其他的代碼同理哦。
(四)使用web.config繞過hidden segments
在iis7以后,微軟為了增加其安全性增加了hidden segments功能對應(yīng)請求過濾模塊,也就是對一些不想讓其他人訪問的東西進行過濾,在被訪問時返回給客戶端一個404.8的狀態(tài)碼。一般在web.config中使用
比如文件夾為_private則對應(yīng)生成的web.config內(nèi)容如下
而此時我們可以通過上傳web.config的形式,來繞過這種過濾。
因為過濾的本質(zhì)是使用的APP_Data或者App_GlobalResources進行的add,我們將其remove掉即可。
(五)使用web.config進行rce
這個跟執(zhí)行asp代碼原理上差不多,主要是使用AspNetCoreModule模塊去調(diào)用cmd進行命令執(zhí)行。
這個過程通過去訪問服務(wù)器上的backdoor.me進行觸發(fā),因為是在服務(wù)端進行執(zhí)行的,這時候我們可以如調(diào)用powershell,來返回一個反向的shell。
(六)使用系統(tǒng)秘鑰來反序列化進行rce
這個是一種.net的反序列化操作,有興趣的朋友可以參考orange師傅在hicton上出的題https://xz.aliyun.com/t/3019
(七)使用web.config啟用 XAMLX來getshell
XAMLX文件一般用于工作流服務(wù),使用消息活動來發(fā)送和接收Windows Communication Foundation(WCF)消息的工作流。而我們可以使用該文件進行命令執(zhí)行,一般有兩種方法,一種是反序列化,另一種就是其本身的文件瀏覽功能在瀏覽上傳的文件時,執(zhí)行命令。以第二種為例,代碼內(nèi)容如下:
發(fā)送一個post請求即可調(diào)用該文件進行命令執(zhí)行:
POST /uploaded.xamlx HTTP/1.1Host: 192.168.0.105SOAPAction: testmeContent-Type: text/xmlContent-Length: 94
所以我們也可以使用這種方法來進行反彈shell。
但是該文件并非全部開啟,若目標服務(wù)器啟用了WCF服務(wù)我們可以使用下面的web.config進行啟用這類文件
(八)使用web.config繞過執(zhí)行限制
在一個可讀寫的目錄里無法執(zhí)行腳本, 可以通過上傳特殊的 web.config 文件突破限制.比如這種:
上傳后即可訪問、運行代碼。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。