本篇文章給大家分享的是有關(guān)如何進(jìn)行thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn),小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
目前創(chuàng)新互聯(lián)建站已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、禪城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。01 背景
近日奇安信發(fā)布了 ThinkPHP 6.0 “任意”文件創(chuàng)建漏洞安全風(fēng)險(xiǎn)通告,對此,DYSRC第一時(shí)間對該漏洞進(jìn)行了分析,并成功復(fù)現(xiàn)該漏洞。
漏洞影響范圍:top-think/framework 6.x < 6.0.2
02 定位問題
根據(jù)任意文件創(chuàng)建以及結(jié)合近期的commit歷史,可以推測出 1bbe75019 為此次問題的補(bǔ)丁??梢钥吹皆谘a(bǔ)丁中限制了sessionid只能由字母和數(shù)字組成,由此看來問題更加明顯。
03 原理分析
先拋開上面的問題,我們看一下thinkphp是如何存儲(chǔ)session的。
系統(tǒng)定義了接口thinkcontractSessionHandlerInterface
SessionHandlerInterface::write方法在本地化會(huì)話數(shù)據(jù)的時(shí)候執(zhí)行,系統(tǒng)會(huì)在每次請求結(jié)束的時(shí)候自動(dòng)執(zhí)行。
再看看thinksessiondriverFile類是怎么實(shí)現(xiàn)的。
先通過getFileName根據(jù)$sessID生成文件名,再writeFile寫入文件。
跟進(jìn)getFileName,直接將傳入的$sessID拼接后作為文件名。由于$sessID可控,所以文件名可控。
04 演示
分析到這里,整個(gè)漏洞流程基本上已經(jīng)很清晰了。下面給出本地的演示結(jié)果。
以上就是如何進(jìn)行thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站標(biāo)題:如何進(jìn)行thinkphp6任意文件創(chuàng)建漏洞復(fù)現(xiàn)-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article44/csdeee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、定制網(wǎng)站、微信公眾號(hào)、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容