久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

      01 背景

      近日奇安信發(fā)布了 ThinkPHP 6.0 “任意”文件創(chuàng)建漏洞安全風(fēng)險通告,對此,DYSRC第一時間對該漏洞進(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ù)字組成,由此看來問題更加明顯。

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

      03 原理分析

      先拋開上面的問題,我們看一下thinkphp是如何存儲session的。

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

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

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

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

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

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

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

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

      04 演示

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

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

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

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