亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn)

    01 背景

    近日奇安信發(fā)布了 ThinkPHP 6.0 “任意”文件創(chuàng)建漏洞安全風(fēng)險(xiǎn)通告,對(duì)此,DYSRC第一時(shí)間對(duì)該漏洞進(jìn)行了分析,并成功復(fù)現(xiàn)該漏洞。

    漏洞影響范圍:top-think/framework 6.x < 6.0.2

    02 定位問(wèn)題

    根據(jù)任意文件創(chuàng)建以及結(jié)合近期的commit歷史,可以推測(cè)出 1bbe75019 為此次問(wèn)題的補(bǔ)丁??梢钥吹皆谘a(bǔ)丁中限制了sessionid只能由字母和數(shù)字組成,由此看來(lái)問(wèn)題更加明顯。

    thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn)

    03 原理分析

    先拋開上面的問(wèn)題,我們看一下thinkphp是如何存儲(chǔ)session的。

    系統(tǒng)定義了接口thinkcontractSessionHandlerInterface

    thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn)

    SessionHandlerInterface::write方法在本地化會(huì)話數(shù)據(jù)的時(shí)候執(zhí)行,系統(tǒng)會(huì)在每次請(qǐng)求結(jié)束的時(shí)候自動(dòng)執(zhí)行。

    再看看thinksessiondriverFile類是怎么實(shí)現(xiàn)的。

    thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn)

    先通過(guò)getFileName根據(jù)$sessID生成文件名,再writeFile寫入文件。

    跟進(jìn)getFileName,直接將傳入的$sessID拼接后作為文件名。由于$sessID可控,所以文件名可控。

    thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn)

    04 演示

    分析到這里,整個(gè)漏洞流程基本上已經(jīng)很清晰了。下面給出本地的演示結(jié)果。

    thinkphp6 任意文件創(chuàng)建漏洞復(fù)現(xiàn)

    php中文網(wǎng),大量的免費(fèi)thinkphp入門教程,歡迎在線學(xué)習(xí)!

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)