從密碼重置打到Getshell和其它漏洞打包
前言:
前幾天是準備上點edusrc的分的所以就準備用手上還沒刷的Nday繼續上分,然后就有了今天這個案例:
信息收集:
之前在挖某體育學院證書的時候就挖到過一個通過修改html文件更改密碼修改步驟的漏洞

所以就準備測繪一下這個資產繼續看看能不能上分


挑一個打開:

沒有背景圖了但還是同資產,因為在測試某體育學院的時候是有賬戶的,所以直接輸入那個賬戶就能進行下一步操作了,但是這個資產無賬戶,所以我打算去在搜集一下學號 之類的


學號這塊都是一無所獲,然后正準備想其它切入點的時候就突然發現

這塊的要求是輸入學號后5位,而學號通常是有規律的,所以就去生成字典FUZZ了一下

Python輸出從00000~99999字典的程序為:
dictionary = {}
for i in range(100000):
key = str(i).zfill(5)
value = \"Value \" + key
dictionary\[key\] = value
with open(\'dict.txt\', \'w\') as file:
for key, value in dictionary.items():
file.write(key + \'\\')

載入字典后還要設置下時間

最后成功拿到幾個賬戶

EDUSRC不收爆破類漏洞所以這個學號不能算是漏洞,但最后學號總歸是出來了
隨后直接輸入FUZZ出的5位學號把
https://1.test.edu.cn/passworf/find1_html
后的find1_html改為find2_html

直接輸入我們要重置的密碼更改成功后去登錄后臺:

持續瀏覽功能點尋找突破點:

發現一個活動添加點

不存在上傳點但是存在描述功能,直接構造xss的payload試試:
alert("1)

存儲XSS+1
此處的payload:alert("1)
采用大小寫繞過
隨后又發現一個信息上傳點:
這幾塊點是透明沒開bp,然后就打算開BP看看能不能拿到些什么突破口

點擊這塊的【添加簡歷信息】下面的標題處的第一個點

發現是個信息編輯界面但它這塊是跳出個小窗口的所以前面沒怎么注意到開了BP抓包時才發現這塊點:

點擊右側的修改抓包后:


發現id值,直接單引號閉合查看:

瀏覽器端:

發現執行了sql語句
且發現是GET請求:

所以把這塊的路徑拉到瀏覽器直接訪問

這樣就不用擔心防sqlmap表單了,且不用打包數據包更快捷了


Sqlmap成功跑出數據!
Sql注入+1
隨后繼續到【會員注冊】處


直接在搜索處單引號閉合:


成功執行查詢語句

F12調出網絡又發現也是GET請求方式,復制請求URL直接查看回顯

直接sqlmap跑

Sql注入+2
然后點擊右上角【管理員】三個字

一開始沒發現這三個字還能點擊,點擊后發現到了信息上傳點:

這塊可以上傳文件先上傳個php試試

提示只能上傳上面列出的文件類型,正要準備想其它辦法繞過的時候突然發現這塊允許上傳的文件類型中包括pdf,所以直接上傳一個pdf-xss試試:

成功上傳然后瀏覽器訪問試試:

但瀏覽器提示沒有文件,然后仔細看了一下文件上傳回顯:

這里的uploadfile/16893293978.pdf的路徑是跟在了?value=參數后面的然后這塊參數給完后還在后面又跟了個參數:

?file=url=uploadfile/16893293978.pdf,再回到請求包中的參數:

發現此處的有個&field=url的參數嘗試把參數改成1


瀏覽器回顯不存在"1",所以這塊就明了的,參數&field=后面應該接的參數是文件上傳后的路徑,因為我們這塊輸入1,不存在1這個文件所以回顯Not Found ,明了了這塊所以我們那文件試試:


放包:

成功觸發XSS
存儲xss+2
但是這塊的任務是getshell所以還是繼續嘗試文件上傳

修改MIME信息且php5分段繞過但還是提示不能上傳,傳了圖片馬但是不能解析

這塊上傳應該是寫死了,所以繼續找其它突破口,查看參數發現存在"filename"

問題參數啊,迅速添加延時命令試試:
`sleep 7`


回顯處成功延時:

命令執行成功!進一步探測:

Curl命令探測ngrok.io


成功回顯!
命令執行+1,最后相對應的用命令獲取shell就行
總結:整體難度適中只不過這次測試后臺功能點有點多需要仔細觀察測試,后臺的信息收集做好了Getshell難度瞬間就變小了。