WEB新手之serialize’s revenge
最后一道题。
这道题提示比较少,一点也不友好。F12也没有什么线索。无奈之下用御剑扫下后台,发现了一个叫robots的txt文件。
打开robots.txt文件,可以得到一段代码,如下图所示。
审查代码,会发现这里有一个文件包含漏洞,我们可以利用filter以base64编码的方式读出backdoor.php。于是在url加上:
?text=php://input&file=php://filter/convert.base64-encode/resource=backdoor.php,得到一堆base64编码,如下图所示(部分截图)。
然后将得到的base64密文直接拿去解码,可以得到一份php文件的源码,如下图所示。
接着在这里可以看到有三个类,分别是Flag,Secret,和Safe。其中,可以观察到Secret类里含有file_get_contents函数,这个函数可以读取文件里面的内容,而且函数上面还有一个注释,写着“fllllllag.php”。这也提示了我们需要通过file_get_contents函数来读取这个文件。然后又观察到Flag类中有一个magic函数:_toString函数。并且函数里面有一个read操作,可以触发下面的file_get_contents函数。因此推测,在serialise的时候,应该是先定义一个Flag类,然后再定义一个Secret类,接着定义一个Flag类的变量。最后结果应该就是,通过magic函数中的read函数,调用file_get_contents函数来读取fllllllag.php。
这里补充一下,magic函数一般都是以下划线未开头命名的,在某些特殊情况会自动调用,而_toString函数是在对象被当作一个字符串使用时调用的。
根据上面的分析,利用反序列化漏洞,可以写出:
跑出“O:4:"Flag":1:{s:3:"obj";O:6:"Secret":1:{s:4:"file";s:13:"fllllllag.php";}}”,之后在backdoor.php中将这串字符赋值给secret,execute。查看源码,可以得到flag。如下图所示。
WEB新手之serialize’s revenge的更多相关文章
- WEB新手之签到题
写一写web新手赛的题. 这是签到题,开始时需要耐心等待页面中字母全部出现. 字母全部出现后,会跳转到另一个界面,如上图所示.F12没什么特别的地方,这题应该有点难度. 按往常一样,先抓包. 按英文提 ...
- 攻防世界web新手区做题记录
学校信安协会第一次培训结束后的作业,要求把攻防世界的web新手区题目做一遍并写题解. 第一题 view_source 查看源代码右键不能用,但是F12能用,于是找到源代码 输入到flag框即可 后来在 ...
- 攻防世界web新手区
攻防世界web新手区 第一题view_source 第二题get_post 第三题robots 第四题Backup 第五题cookie 第六题disabled_button 第七题simple_js ...
- 攻防世界——web新手练习区解题记录<1>(1-4题)
web新手练习区一至四题 第一题view_source: 题目说右键不管用了,我们先获取在线场景来看一看,我们看到这样一个网页,并且右键确实点了没什么反应,而用到右键一般就是查看网页源码 用快捷键(F ...
- WEB新手之do u know caidao?
继续写题. 进入该网站,可以看到显然题目给出了一个假的flag.再看第二句话,说题目里存在shell.于是用御剑扫描一下后台. 如上图所示,扫出了一个叫shell的包.于是常识性地在URL加上shel ...
- 攻防世界WEB新手练习
0x01 view_source 0x02 get_post 这道题就是最基础的get和post请求的发送 flag:cyberpeace{b1e763710ff23f2acf16c2358d3132 ...
- 攻防世界 web 新手练习 刷题记录
1.view_source 既然让看源码,那就F12直接就能看到. 2.robots 先百度去简单了解一下robots协议 robots协议(robots.txt),robots.txt文件在网站根目 ...
- 攻防世界web新手区(3)
xff_referer:http://111.198.29.45:43071 打开网址,显示出这个页面: X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP, ...
- 攻防世界--web新手练习区(1)
1. 题目描述:X老师想让小明同学查看一个网页的源代码,但小明却发现鼠标右键不管用了. http://111.198.29.45:53629 通过阅读题目描述分析,我们需要查看源码,但是鼠标右键 ...
随机推荐
- 编译gcc5.1.0时的报错
编译安装gcc5.1.0时出现如下报错: configure: error: error verifying int64_t uses long long 这是由于没有安装gcc_c++导致的,安装下 ...
- python's metaclass
[python's metaclass] 和objc中类似,metaclass用于创建一个类对象,但与objc不同的是,objc中每个类对象有各自不同的metaclass,而python中的metac ...
- Swiper thymeleaf
html页面: <div class="swiper-container swiper_tjzt"> <div class="swiper-wrappe ...
- Opencv 图片直方图
#include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; ...
- 监控服务器cpu、磁盘、模板以及自定义key
一.检测主机存活 net.tcp.service.perf[tcp,,] Float型 返回0代表端口挂了 zabbix fping要开启sudo权限之类比较不方便 二.监控CPU负载 监控load ...
- CSS中的元素分类
CSS中的元素分类 元素是文档结构的基础,在CSS中,每个元素生成了一个包含了元素内容的框(box,也译为"盒子").但是不同的元素显示的方式会有所不同,例如<div> ...
- 【转】The most comprehensive Data Science learning plan for 2017
I joined Analytics Vidhya as an intern last summer. I had no clue what was in store for me. I had be ...
- Spring Boot☞ 使用freemarker模板引擎渲染web视图
效果图 代码 package com.wls.integrateplugs.hello.controller; /** * Created by wls on 2017/8/24. */ import ...
- HUST软工1501-1503班第2周作业成绩公布
说明 本次公布的成绩对应的作业为: 第2周个人作业:WordCount编码和测试 如果同学对作业成绩存在异议,在成绩公布的72小时内(截止日期4月26日0点)可以进行申诉,方式如下: 毕博平台的第二周 ...
- STL扩展容器
string | array | hash 1. string - 可以视为以字符为元素的一种容器, 可以在字符上进行遍历, 提供begin()/end() - 为了支持迭代器和迭代器适配器 , st ...