<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    實戰滲透-從敏感文件泄露到Getshell

    Simon2021-08-20 15:09:00

    目標站點如下:

    是一個大型儀器預約平臺,先簡單通過信息收集得到以下信息

    中間件:IIS 開發語言: .NET (MVC)


    該系統提供兩個功能,注冊以及登錄。由于這套系統比較常見,基本每個知名高校都有這么一個儀器平臺。所以注冊后的功能點就沒必要再去花功夫探測了(有的話也被大佬交完了)。

    這里我直切主題:

    先FOFA搜索相同站點。

    由于是NET平臺,可以先搜集以下所有相同系統的站點。然后掃一掃備份之類的。常見的字典如: web.rar 備份.rar

    等等。.具體看運維的習慣(部分運維喜歡用bak)。

    使用某大佬的FOFA提取工具提取下結果

    然后使用御劍(由于御劍好像不支持https,所以這里我指定了協議為http。如果大佬們有支持https或者可以批量掃描的工具可惜推薦下(造輪子太麻煩,性能渣))

    在某站點下發現疑似備份文件bak.rar, 先下載下來。

    解壓后發現里面都是一些dll文件。由于是NET平臺,源代碼都會打包成dll文件。也就是說這些dll文件里面存放著網站的源代碼。

    那么直接逆向編碼,開始代碼審計~~~~

    發現有點多。。。。由于是MVC模式,我們可以直接搜索Controller(控制器)

    開始審計~這里先挨個探索(我個人比較喜歡直切主題:未授權的文件上傳-日志寫入(部分系統是由請求頭決定文件名-反序列化-SQL注入))

    未授權的文件上傳,這個比較好找。。有沒有進行文件效驗一看就知道。部分程序員都是把操作寫成了一個方法,統一調用。

    如:

    在UserController下面的IniUserPhotoUpload 方法就是一處文件上傳的操作

    這里表面看著并沒有什么文件屬性效驗的操作。但是最終寫入是由MakeThumbnail操作的。

    在MakeThumbnail下面

    第151行,可以看到將參數傳遞給了MakeThumbnailByImg 方法。追蹤此方法

    在186行可以明顯的看出這里進行了文件效驗,且規定了后輟為jpg,jpeg,bmp,gif,png,ico 才可以成功上傳

    那么這里無果,繼續探索下一個。

    最終在Lab下面發現一處疑似上傳LOGO的操作。

    UploadLabOrg

    寫入操作最終是由SaveLabOrganization進行寫入操作。

    追蹤此方法。

    主要操作在這里

    if (base.Request.Files.Count > 0)
                {
                    fileSizeStr = FileUtility.GetFileSizeStr((double)base.Request.Files[0].ContentLength);
                    string fileNameWithExtensionByPath = FileUtility.GetFileNameWithExtensionByPath(base.Request.Files[0].FileName);
                    fileExt = FileUtility.GetFileExtByPath(base.Request.Files[0].FileName);
                    if (!this.ValidateLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileExt, fileSizeStr, out errorMessage))
                    {
                        result = false;
                    }
                    else
                    {
                        this.IniLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileId, fileExt, fileSizeStr, out saveImgPath, out errorMessage);
                        result = true;
                    }
                }
                else
                {
                    result = false;
                }
                return result;
    

    當上傳的文件大于0時,執行if里面的語句

    if (!this.ValidateLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileExt, fileSizeStr, out errorMessage))
                    {
                        result = false;
                    }
                    else
                    {
                        this.IniLabOrganizationLogoUpload(System.Web.HttpContext.Current.Request, fileId, fileExt, fileSizeStr, out saveImgPath, out errorMessage);
                        result = true;
                    }
    

    其中ValidateLabOrganizationLogoUpload是判斷文件內容大小是否超出以及擴展名是否正確的。

    其中并沒有進行白名單效驗~只是進行了一些判空以及移除符號的操作

    找到了一處無效驗上傳點,開始構造POC:

    路由地址為:/控制器名/方法名

    使用HTML構造提交表單內容:

    <form action="地址" method="post" enctype="multipart/form-data" >
        <input type="file" name="Filedata"/>
        <input type="submit" value="提交"/>
    form>
    

    然后開始上傳。

    但是他返回了一個出錯。。。有點無解,是不是要登陸??

    注冊了一個賬戶,發現仍然出錯,再次回到代碼層,可能是監聽器的問題。找到filter

    發現了要驗證Referer,在原有POC上添加一個Referer

    成功Getshell

    文章來源:先知社區
    文章作者:遠海


    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    個人比較偏向于滲透NET開發平臺的站點,因為其不區分大小寫,在生成字典的時候不需要花費太多時間。
    信息收集首先針對?子域名 IP段 端口?
    所以滲透測試是安全評估的方法之一。隨著信息技術的發展,網絡已成為一個新的戰場。美國智庫蘭德公司稱網絡戰為信息時代的核武器,能夠在網絡上引發核爆的網絡戰,過去的網絡威懾已經開始向實戰邁進。中國也是遭受網絡攻擊最多的國家之一,特別是在一些關鍵時期,例如每年兩會期間、G20期間、以及這次新冠病毒疫情期間,我國遭受的網絡攻擊都要比正常事情多的多。xxx.xxx.22.0/24確認這c段ip有可能就是目標單位的資產ip段。
    紅隊之信息收集
    2021-09-22 12:30:38
    企業信息收集拿到一個目標,不考慮釣魚的情況下。如果正常web入手,至少需要收集以下的信息。一般經過上面的收集以后,我們能夠獲取一系列的ip,域名信息。此時需要針對這些進行排除。碰到過一次有個隊伍打供應鏈下載源碼審計的這種屬于非常態暫不討論。用戶級別主要是涉及拿到一些用戶的用戶名等。便于進行暴力破解。利用app查詢公司的域名。是在于跑一下子域名。先不要急著跑子域名。
    重新抓包改包登入系統,在burp里仔細看了下用戶管理api返回的json發現所有用戶的密碼都是統一的,都是該公司旗下某產品的英文名。猜測可能是為了防止密碼被泄露,后端對返回的密碼進行了過濾了,統一修改了。
    接口未授權在嘗是了一波js接口后沒有發現什么漏洞,但是查找了一些信息泄露。sql注入(兩枚)在剛剛注冊了用戶,登錄進去。第一處將url和參數進行拼接。第二處第二處同樣是js文件內找到。在圖片中間的地方插入xss語句但是如果沒有找到可以注冊的api,則這個漏洞無法利用,為了擴大漏洞危害,嘗試刪除cookie,是否可以未授權文件上傳。
    所謂打點,就是拿到一臺機器的shell。對個體而言,這種條件下,個人技術成為了主導因素,也就是說,一個紅隊人員快速打點能力的強悍與否,成為了一個普通紅隊和優秀紅隊的差別所在。這其中最肝的一個部分,莫過于信息搜集了,純體力活。三板斧其三 sql注入:這個更加老熟人了,注入之后,低權限,直接gg,高權限,試試吧,看能不能上shell。
    對這段時間做的一次攻防演練做一個記錄,這次給我們分了三個目標,一個目標是甲方單位自己的一個自建系統,其余兩個是甲方的下級單位的系統。開始之前覺得不好做,因為攻防演練跟HW有些差別,HW可以不限制攻擊手法,可以上游供應鏈,社工、釣魚多種角度出發來挖掘漏洞。這次攻防演練給我們三個目標、兩個web系統、一個app,可以利用的點非常少,不可以攻擊其他的系統,只能搞這幾個目標,要不是這次運氣好真的就拉垮了
    此類問題主要存在于后臺登陸頁面以及類似網頁內引入的JS文件中。根據此類漏洞,說不定登陸頁面下引入的js文件暴露的后臺路徑會成為突破口。因為此類問題利用方式和造成的危害與即將談論的第三類問題不同,所以把這類問題單獨拿出來講一講。部分廠商更是因此降低了對XSS的評級。
    Simon
    暫無描述
      亚洲 欧美 自拍 唯美 另类