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 通过阅读题目描述分析,我们需要查看源码,但是鼠标右键 ...
随机推荐
- Java Socket编程之UDP
UDP编程: 将要传输的数据定义成数据包(Datagram),在数据报中指明所要到达的Socket(主机地址和端口号),然后再将数据报发送出去. 相关操作类: DatagramPacket ...
- java基础之日期时间工具类
package zy.test; import java.sql.Timestamp; import java.text.ParseException; import java.text.ParseP ...
- git服务器搭建问题
CentOS6.5本地搭建. 对于图形化的系统,可以联网,然后CTRL+ALT+F2可以切换到命令行,CTRL+ALT+F1可以切换回桌面图形化. 可以用SSH和FTP来连接服务器和传文件. (1 ...
- JS回调函数深入篇
<有些错别字> 在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中 ...
- GRUB使用说明
从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO成为了默认的启动装载程序.相信LILO对于大家来说都是很熟悉的.这次Red Hat Li ...
- activeMQ集群搭建及高可用
三台服务器搭建如下的集群,达到了高可用.也同时达到了负载的目的: /****************************************************************** ...
- 移动端flexbox的小tips
我也是看了腾讯isux的博客,解答了我关于flexbox一个很长时间的疑惑,就是flex布局在安卓手机会出现内容长短不同导致不均分的现象. 具体的内容可以去看腾讯isux的博客,地址在这:https: ...
- C#中一个窗口是一个类呢,还是一个窗口类的实例呢?(转)
C#中一个窗口是一个类呢,还是一个窗口类的实例呢? 答: 没有一个人说到重点上. 一个窗口,它不是仅仅用一个类可以描述的: 首先,这个窗口的数据类型类型,是从Form类派生下来的,也就是说它的定义是一 ...
- Mcrosoft中间语言的主要特征
Mcrosoft中间语言显然在.NET FrameWork中起着非常重要的作用.现在讨论一下IL(Intermideate Language)的主要特征.因为面向.NET的所有语言在逻辑上都需要支持I ...
- mysql基础操作记录
安装mysql Mac使用homebrew安装mysql,命令行执行以下命令:brew install mysql 启动mysql服务 安装完成后执行start 命令. ➜ ~ mysql.serve ...