攻防世界unserialize3
又来了我的攻防世界
原题:攻防世界
怎么说呢...先看一下题目吧
看到题目的时候我第一反应是无从下手,之前说过博主是个刚起步的新手而且对php不是特别了解...这真的是难度一的题嘛...不过!在查找了很多资料后我逐渐理解了一切,也给大家分享一下并且记录自己做题的过程。
首先这个题的题目为unserialize3,这个单词在php中代表反序列化,所以这个题基本就是和反序列化有关的题目。
序列化的意思是:是将变量转换为可保存或传输的字符串的过程
那么反序列化就是将字符串在转化回变量。这种方式能轻松的存储和传输数据,但反序列化有一个漏洞,通过这个漏洞我们可以跳过反序列化的操作的执行。这样就不会执行后面的exit函数。
但是原代码中并没有序列化所以我们无法进行反序列化,所以我们需要添加一个序列化来将我们的变量变成字符串。
在php中序列化和反序列化函数分别为serialize,__wakeup。下面就要将代码补充完整(即添加序列化)
博主是在sublime然后通过phpstudy配置php变量然后直接在网页打开
另外不要忘记在php的同一个文件夹添加初始界面文件
添加后我们在网页中输入本地回环地址和文件名即可看到:
对于这个字符串我们可以看到它有一个变量值("xctf":后面的1)。而对于反序列化来说如果字符串中的变量的数目和真实的数目不一样那么__wakeup会出现错误,我们就造成了反序列化漏洞。
所以我们在填写字符串时将变量值的数目从1改成2
输入网页网址后即可获得flag
攻防世界unserialize3相关推荐
- [CTF/网络安全]攻防世界unserialize3解题详析及php序列化反序列化实例讲解
[CTF/网络安全]攻防世界unserialize3解题详析及php序列化反序列化实例讲解 _wakeup()及php序列化反序列化 序列化字符串结构分析 _wakeup()的利用 解题思路 伪属性数 ...
- 攻防世界writeup
攻防世界writeup 前言 web 新手练习 view_source get_post robots backup cookie disabled_button simple_js xff_refe ...
- 攻防世界各类题目相关
攻防世界 全沾菜鸡一枚的学习记录,如有冒犯还请大佬们多多指正. 这里面的题目自己再写的时候和复现的时候,有许多的是借鉴的大佬们的文章进行复现的,但是由于太多,并没有完整的记录下那些大佬们的博客的文章, ...
- 攻防世界-web高手进阶区
文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...
- 【攻防世界001】Guess-the-Number
攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...
- 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制
ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...
- 攻防世界(Pwn) forgot---栈溢出;(方法二)
攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...
- 攻防世界(Pwn) forgot---栈溢出;(方法一)
攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...
- 攻防世界misc新手_[攻防世界]mobile新手练习区easy-apk
[攻防世界]mobile新手练习区easy-apk easy-apk最佳Writeup由129师386旅独立团 • devi1提供 难度系数: 7.0 题目来源: 暂无 题目描述:无 题目场景: 暂无 ...
最新文章
- 敏捷软件开发实践——估算与计划02
- c保留小数点后三位数没有则为0_哪位老师整理的,这么齐全?赶紧存下为孩子期末考试助力...
- 用php生成html文件,怎样用PHP生成html文件
- SAP系统内部顾问如何培养
- linux下安装树梅派系统,优麒麟树莓派系统(优麒麟 for Raspberry Pi)的安装方法...
- python观察日志(part9)--数据库与pickle模块
- 一种在未来互联网中的面向用户的云操作系统体系
- 2018年度计算机视觉GtiHub top开源项目!
- getParameterMap()的返回值为MapString, String[],从其中取得请求参数转为MapString, String的方法如下:...
- ipython和python是不是同一个软件_为什么SciPy在IPython和Python中的行为有很大不同?...
- 数据结构与算法课程作业--奇数个数的数的查找方法-异或
- C/C++ 变参函数
- 小米系统服务器,小米服务框架
- 用jquery编写简易计算器
- PV3D的小练习~太阳系八大行星
- Bouncy Castle使用(一)【开始】
- linux修复win10启动失败,win10自动修复失败开不了机解决方法
- d2l.train_ch3函数,将输入数据转化为该函数所接受的格式
- 论文浅尝 | ERNIE-ViL:从场景图中获取结构化知识来学习视觉语言联合表示
- Vue中router-view和子路由的使用方法