CTFshow php特性 web150plus
生活随笔
收集整理的這篇文章主要介紹了
CTFshow php特性 web150plus
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 源碼
- 思路
- 題解
- 總結
源碼
<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 11:25:09 # @Last Modified by: h1xa # @Last Modified time: 2020-10-19 07:12:57*/ include("flag.php"); error_reporting(0); highlight_file(__FILE__);class CTFSHOW{private $username;private $password;private $vip;private $secret;function __construct(){$this->vip = 0;$this->secret = $flag;}function __destruct(){echo $this->secret;}public function isVIP(){return $this->vip?TRUE:FALSE;}}function __autoload($class){if(isset($class)){$class();} }#過濾字符 $key = $_SERVER['QUERY_STRING']; if(preg_match('/\_| |\[|\]|\?/', $key)){die("error"); } $ctf = $_POST['ctf']; extract($_GET); if(class_exists($__CTFSHOW__)){echo "class is exists!"; }if($isVIP && strrpos($ctf, ":")===FALSE && strrpos($ctf,"log")===FALSE){include($ctf); }思路
log不能用了,不過如果有足夠權限的話包含/proc/self/environ也能getshell,可惜這題不行
仔細查看源碼,會發現 class在
public function isVIP(){return $this->vip?TRUE:FALSE;}已經閉合了.
__autoload() //在代碼中當調用不存在的類時會自動調用該方法。
class_exists也能觸發,不過在于怎么給$__CTFSHOW__賦值,因為下劃線被過濾了,只要能繞過下劃線就可以了
之前的題遇見這個問題,記錄下了
這里我們可以用.來轉換
題解
?..CTFSHOW..=phpinfo成功顯示phpinfo頁面,
發現cleanup是開啟的
下一步也沒辦法了,題庫限制速率
看了一下wp,發現flag在phpinfo里,害
總結
以后看到phpinfo就找下有沒有flag
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的CTFshow php特性 web150plus的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CTFshow php特性 web150
- 下一篇: CTFshow 反序列化 web254