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++导致的,安装下 ...
- 关于Redis的常识
原文出自:http://blog.jobbole.com/44476/ 版本:V3.0.2 2013-7-13 (江南白衣版权所有,转载请保留出处) 1. Overview 1.1 资料 <Th ...
- RedHat Linux设置yum软件源为本地ISO
先挂载ISO到某个目录下(如我的:/media/RHEL_6.0 x86_64 Disc 1) # mount –o loop rhel-server-6.4-x86_64-dvd.iso /medi ...
- Python_09-面向对象编程
目录: 1 面向对象编程1.1 简单例子1.2 调用1.3 python命名规范(约定)1.4 类的设计1.4.1 Exception 异常捕获结构1.4.2 自定 ...
- Unity3D中暂停时的动画及粒子效果实现
暂停是游戏中经常出现的功能,而Unity3D中对于暂停的处理并不是很理想.一般的做法是将Time.timeScale设置为0.Unity的文档中对于这种情况有以下描述: The scale at wh ...
- Mask_RCNN训练自己的模型(练习)
- 相机IMU融合四部曲(三):MSF详细解读与使用
相机IMU融合四部曲(三):MSF详细解读与使用 极品巧克力 前言 通过前两篇文章,<D-LG-EKF详细解读>和<误差状态四元数详细解读>,已经把相机和IMU融合的理论全部都 ...
- Openssl ec命令
一.简介 椭圆曲线密钥处理工具 二.语法 openssl ec [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-out filename] ...
- Centos6.6升级python2到python3
系统更新部分: 一.由于系统原有的源无法连接,需要更新为新的源.起初,首选163的源,但是由于更改源以后,无法使用yum等问题,所以直接使用上海交通大学提供的源. 修改前,将原来/etc/yum.re ...
- p1429 平面最近点对(加强版)
传送门 分析 我们可以枚举每一个点算它的最近点 估价函数应该分为3种情况计算: 大于max,小于min,位于min和max之间 代码 #include<iostream> #include ...