亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Phar反序列化超詳細(xì)介紹

瀏覽:88日期:2022-06-05 18:00:37
目錄
  • Phar是什么
  • 如何創(chuàng)建一個(gè)Phar 文件
  • 如何反序列化利用

Phar是什么

在百度中得到介紹是這樣的:

在軟件中,PHAR(PHP歸檔)文件是一種打包格式,通過(guò)將許多PHP代碼文件和其他資源(例如圖像,樣式表等)捆綁到一個(gè)歸檔文件中來(lái)實(shí)現(xiàn)應(yīng)用程序和庫(kù)的分發(fā)。phar文件本質(zhì)上是一種壓縮文件,會(huì)以序列化的形式存儲(chǔ)用戶自定義的meta-data。當(dāng)受影響的文件操作函數(shù)調(diào)用phar文件時(shí),會(huì)自動(dòng)反序列化meta-data內(nèi)的內(nèi)容。

理解為php特有的一種打包方式,需要使用php代碼進(jìn)行大包,且無(wú)法通過(guò)普通的工具進(jìn)行解壓解包。

如何創(chuàng)建一個(gè)Phar 文件

創(chuàng)建之前了解Phar文件的組成結(jié)構(gòu):

stub:phar文件的標(biāo)志,必須以 <?php xxx; __HALT_COMPILER();?>, 結(jié)尾,否則無(wú)法識(shí)別。xxx可以為自定義內(nèi)容。
stub這一部分,在了解時(shí)發(fā)現(xiàn)其實(shí)這樣寫(xiě) < __HALT_COMPILER();> 也是可以正常解析的
manifest:phar文件本質(zhì)上是一種壓縮文件,其中每個(gè)被壓縮文件的權(quán)限、屬性等信息都放在這部分。這部分還會(huì)以序列化的形式存儲(chǔ)用戶自定義的meta-data,這是漏洞利用最核心的地方。
content:被壓縮文件的內(nèi)容
signature (可空):簽名,放在末尾。

開(kāi)始之前需要修改配置php.ini配置文件,修改phar.readonly 配置為Off,之后重啟生效

最常見(jiàn)的創(chuàng)建Phar 文件php代碼

<?phpclass Test{   public  $test="test";}$p = new Test();$phar = new Phar("test.phar");//要?jiǎng)?chuàng)建的Phar文件名,必須是phar后綴$phar->startBuffering();//寫(xiě)入之前開(kāi)始緩沖Phar寫(xiě)入操作$phar->setStub("<?php __HALT_COMPILER();?>");//設(shè)置stub$phar->setMetadata($p);//將自定義的meta-data存入manifest,這一部分就是把序列化的對(duì)象加入到meta-data$phar->addFromString("test.txt", "test");//添加要壓縮的文件(這一步必須要有,如果不設(shè)置就無(wú)法生成phar文件,文件隨便)$phar->stopBuffering();//簽名自動(dòng)計(jì)算?>

執(zhí)行代碼后會(huì)在當(dāng)前代碼目錄下生成test.phar文件,以文本格式查看test.phar文件,在內(nèi)容中可以看到Test類被序列化寫(xiě)入了。O:4:“Test”:1:{s:4:“test”;N;}

如何反序列化利用

我們?cè)跇?gòu)造特殊的meta-data數(shù)據(jù)后,在php中如果使用一些文件系統(tǒng)函數(shù)去引用調(diào)用phar文件就會(huì)觸發(fā)反序列化,下面是知道創(chuàng)宇測(cè)試確認(rèn)受影響的函數(shù)。

這里使用is_dir函數(shù),這是一個(gè)判斷傳入的是否是一個(gè)目錄的函數(shù),創(chuàng)建與之前設(shè)置meta-data 的一個(gè)Test類,__wakeup魔術(shù)方法與__destruct 魔術(shù)方法在反序列化對(duì)象時(shí)都會(huì)觸發(fā),__destruct 魔術(shù)方法是在銷毀時(shí)觸發(fā)。

<?phpclass Test{    function __wakeup()    {echo($this ->test) ;    }}is_dir("phar://test.phar");//以phar偽協(xié)議的格式傳入?>

輸出結(jié)果,meta-data中的數(shù)據(jù)被反序列化觸發(fā)了__wakeup魔術(shù)方法,打印了test

在學(xué)習(xí)過(guò)程中,發(fā)現(xiàn)存在偽協(xié)議phar://關(guān)鍵詞不能出現(xiàn)在開(kāi)頭的情況,師傅們的繞過(guò)方法是,使用下面的方式也能達(dá)到一樣的效果。

如果在上傳對(duì)phar文件頭進(jìn)行校驗(yàn)的檢測(cè),可以根據(jù)相應(yīng)的文件修改添加文件頭,如gif(GIF89a)

compress.bzip://phar:///test.phar/test.txt
compress.bzip2://phar:///test.phar/test.txt
compress.zlib://phar:///home/sx/test.phar/test.txt
php://filter/resource=phar:///test.phar/test.txt

到此這篇關(guān)于Phar反序列化超詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Phar反序列化內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产成人香蕉久久久久 | 91精品国产综合久久福利 | 91sao在线看片水片 | 一级全黄男女免费大片 | 国语自产偷拍精品视频偷最新 | 大片黄色 | 免费啪视频观在线视频在线 | 国内精品久久影视免费 | 亚1洲二区三区四区免费 | 成人网在线视频 | 麻豆视频www | 综合天天色 | 欧美成a人片在线观看久 | 久久国产精品视频 | 免费观看黄色在线视频 | 嫩草影院麻豆久久视频 | 毛片免费观看的视频在线 | 成人a影片在线观看 | 国产成年女人免费视频播放a | 日本xxxxbbbb| 国产欧美精品系列在线播放 | 免费播放欧美毛片 | 亚洲国产精品成人久久 | 色婷婷社区 | 国产精品亚洲片在线观看麻豆 | 久久青草91线频免费观看 | 三上悠亚vr| 国产一区二区亚洲精品 | 免费黄色的视频 | 风间由美理伦片在线观看 | 成人激情站 | 天天草夜夜骑 | 日韩精品视频在线播放 | 国产ar高清视频+视频 | 三级在线免费看 | 视频免费网站 | 国产精品合集一区二区三区 | 国产高清美女一级a毛片久久w | 国内精品一区二区在线观看 | 日韩欧美一区在线观看 | 国产成人自拍视频在线观看 |