打開一看提示說有備份網站習慣,用工具掃一下發現了www.zip得到了網站備份,
得到了3個php 直接看到了flag.php打開一看

結果錯誤,怎么可能這么簡單,orz
直接看另外兩個php中的原始碼

index.php和class.php
一看就是反序列化
index.php在傳入select時會將select進行反序列化,而class.php中的wekeup會在select被序列化的時候執行,把你傳入的username改為guest導致無法訪問
O:4:"Name":2:{s:14:"%00Name%00username";s:5:"asdfa";s:14:"%00Name%00password";i:100;}
讀代碼可以看見username必須為admin&password必須為100
username和password是私有變數,變數中的類名前后會有空白符,而復制的時候會丟失,所以要加上%00這里可以看下大佬的博客
因為私有和protect序列化之后格式不一樣所以要加入%00Name%00然后%00不可以替換為空格,應為這里的%00表示不可見字符
這時候可以看見

沒有繞過_wakeup替換成了guest而導致無法訪問
__wakeup()函式漏洞原理:當序列化字串表示物件屬性個數的值大于真實個數的屬性時就會跳過__wakeup的執行
這里只需要將Name后面2改為大于2的就行了

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298303.html
標籤:其他
上一篇:DVWA 命令執行
