<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>

    盲猜包體對上傳漏洞的艱難利用過程

    一顆小胡椒2022-07-24 16:14:58

     Part1 前言 

    大家好,上期分享了一個IIS短文件名猜解在實戰中拿權限的利用,本期將會分享一個特殊的上傳漏洞的利用案例。很多時候遇到一個存在漏洞的點,只要有一線希望,就不愿意輕言放棄。對一個網站進行測試前,掃描目錄和掃描敏感文件是經常使用的方法,有時候會掃描出上傳功能的后端頁面,這時候不知道包體是怎么構造的,也不知道上傳漏洞需要提交哪些參數,所以就需盲猜包體了。類似的案例我成功過好幾次,接下來詳細說一下具體方法及詳細過程。

     Part2 技術研究過程 

    • 掃描目錄

    首先,目標網站就是一個空白頁面,對于這種網站,只能對URL進行目錄掃描了,最后一層層掃目錄得到類似于如下URL地址(以下是虛擬機環境的截圖):

    http://www.xxx.com/Temp/servlet/UploadFile,打開頁面如下:

    做過Javaweb的朋友一眼就能看出這是Java站點的常見提示,通過URL的路由地址UploadFile猜測,這可能是一個上傳功能的后端頁面。由于沒有前端的用戶交互頁面,就無法得到具體需要提交哪些參數。接下來講講如何對這個功能頁面進行利用。

    • 本地搭建環境

    首先拿一個本地搭建的網站舉例說明一下,我們平常見到的可能存在上傳漏洞的頁面是如下所示的一個前端頁面:

    查看瀏覽器源碼,可以得知,真正處理用戶上傳數據的URL實際上是以下這個地址:

    直接瀏覽器打開,頁面如下,很多都是一個空白頁面:

    上傳一個文件,使用burpsuite抓包,得到如下數據包,發現filepath和FileName是常見的用戶提交給上傳功能后端頁面去處理的參數。其中,filepath是Web應用保存上傳文件的地址,FileName是文件名稱。

    接下來我就想了,可不可以盲猜一下上傳功能的包體呢?上傳功能的POST包體常用的參數就是那幾個。萬一猜對了,就可以直接上傳webshell了。

    • 盲猜包體過程

    于是使用burpsuite手工嘗試filename、FileName、fileName、name、Name、FilePath、filePath等參數名,不斷地構造上傳包體,不斷地進行變換構造,當構造出如下包體時,提示“文件上傳成功”,這同時也說明這是一個存在未授權訪問功能的上傳頁面。這個案例是好多年前的了,當時具體是哪幾個參數我也不記得了,大致與以下截圖類似。

    當構造出如上圖包體時,該頁面提示“文件上傳成功!”。上述包體的那個name字段應該是沒起什么作用,但是不影響上傳功能的正常使用。

    • 尋找Webshell路徑

    接下來難點就來了,Web應用雖然提示“文件上傳成功”,但是沒給出文件上傳的路徑,那這個webshell傳到哪里去了呢?接下來又得猜解目錄及文件地址了。

    假設掃描到了如下敏感目錄(以下虛擬機環境的截圖,項目圖就不放出來了),/images/、/files/顯得尤為重要。

    于是打開網站訪問/images/test123.txt,/files/test123.txt等等,發現均提示404,頁面不存在,這就麻煩了。Webshell究竟傳到哪里去了呢?

    • 按照研發人員的思維滲透

    后來思路轉變了一下,既然是Java站點,而且目錄中又有一個/temp/目錄,程序員估計會以時間戳去重命名文件名做測試用。

    于是打開IDE,找了一篇Java生成時間戳的文章,照著寫了幾行代碼,生成了一個時間戳:

    如下圖所示,本地生成了一個時間戳:

    由于本地操作時間與服務器文件落地的時間肯定不能完全一致,一定是有差別的,所以需要以當前時間戳為基準,前后取一定的時間差,生成一個幾萬行的字典,用burpsuite枚舉一下:

    結果沒有那么簡單,發現均是404響應碼,沒有找到響應碼200的記錄,也就是說沒有找到webshell的地址。原因可能是時間戳不對,也可能是存放上傳文件的目錄沒有找到,也可能是服務器壓根就沒有以此時間戳命名的文件。后來重新理了一下思路,我本地先生成了一個時間戳字典,然后使用burpsuite發上傳數據包,再用burpsuite枚舉時間戳文件名,中間大概有個幾秒鐘甚至是10秒鐘的間隔,可別小看這個時間間隔,做個涵蓋這個時間間隔的字典,也得上百萬行、上千萬行字典了。

    后續為了加快掃描速度,也為了減少服務器的壓力,我將GET請求轉換成了HEAD請求,然后經過幾百萬行字典的爆破,成功找到了webshell地址,最終getshell成功。

    • 尋找準確時間戳的新思路

    后續經過Magic_Zero的提醒,他給出了一個更好用的思路,可以先查看服務器返回的Date響應頭的時間,然后做成時間戳字典地址,這樣準確度更高。這個思路真的沒想到,感謝提供。

     Part3 總結 

    1.  理解一個技術問題要理解它的實質。

    2.  按照程序員、研發人員的思維去搞站,事半功倍。

    3.  大批量掃目錄、掃文件時,記得把GET請求換為HEAD請求,有些網站可能不支持HEAD請求,需要提前手工判斷一下。

    時間戳webshell
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    WebLogic是由美國Oracle公司出品的一application server,準確的說就是一個基于JAVAEE而開發的一個中間件,類似Tomcat,WebLogic是一個用于開發,集成,部署與管理大型分布式Web應用,網絡應用和數據庫的java應用服務器。將java動態功能與java Enterprise標準的安全性引入大型網絡應用的開發,集成,部署與管理之中。
    溯源排查中比較重要的一環是web突破口排查,攻擊者通過web突破口入侵時,有極大的概率會寫入webshell,本文介紹下常見的webshell排查方法和流程。
    通過URL信息獲取如果能獲取到惡意請求的URL信息,就可以根據URL信息定位到Webshell文件。URL信息可以通過態勢感知、WAF等監測預警系統獲取,也可以通過對系統異常時間段的Web日志進行審計獲取。通過掃描工具掃描獲取通過Webshell查殺工具進行掃描,可以定位到部分免殺能力不強的Webshell文件。默認情況下,Windows將僅在索引位置中查找最近修改的文件。
    8、獲取文件目錄,dir9、利用模塊收集信息WIN-5FMG87H62FN:C:\phpstudy_pro\WWW $ :system_info -info uname
    JSP內存馬研究
    2021-10-16 07:49:21
    最近在研究webshell免殺的問題,到了內存馬免殺部分發現傳統的Filter或者Servlet查殺手段比較多,不太容易實現免殺,比如有些工具會將所有注冊的Servlet和Filter拿出來,排查人員仔細一點還是會被查出來的,所以 我們要找一些其他方式實現的內存馬。比如我今天提到的JSP的內存馬(雖然本質上也是一種Servlet類型的馬) 。
    linux常見backdoor技術
    2021-09-02 07:33:03
    最近遇到一些和后門相關的技術,所以把之前linux backdoor相關筆記重新學習和整理了一下。在這里做一下記錄,后續有時間整理一下windows backdoor方面的技術。 在服務器被入侵后進行應急響應無非通過文件排查、網絡排查、進程排查、系統信息排查等方法進行入侵排查。下面就一些常見留后門技巧以及公開的工具進行剖析介紹。
    域滲透實戰之 vsmoon
    2023-11-14 10:40:10
    域滲透實戰之 vsmoon
    但是實際上踩坑無數,弄了很久,因為分析的時候有意思,利用的也有點意思,所以分享出來。代碼分析1、首先查看漏洞點,downpic方法獲取了一個參數$url,未進行過濾,獲取URL文件內容后進行文件寫入。其中寫入后的文件后綴即為傳入的URL中的文件后綴。傳入URL,生成以時間+隨機字符的文件名,獲取遠程文件內容,寫入文件。漏洞利用1、構造惡意請求,向外請求index.phpGET /admin/ajax.php?
    萬一猜對了,就可以直接上傳webshell了。當構造出如上圖包體時,該頁面提示“文件上傳成功!”。
    通常我們在滲透過程中從外圍打點進入內網后拿到主機提升到system權限,這一臺主機就已經拿下。但是我們進入內網的目標還是拿下盡可能多的主機,這時候選擇橫向移動的方法就尤為重要。今天就對一些常用的橫向手法進行一個總結,有不足之處歡迎師傅們進行斧正。
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类