打开之后是这样的,没有发现反序列化函数,但是发现有一个@eval,想到了一句话,这是用base64进行传参

首先传参phpinfo();看看,需要经过base64编码

http://e0cc90ac-d4bc-450c-a6a4-476298ce7c18.node3.buuoj.cn/?Ginkgo=cGhwaW5mbygpOw==
  • 1


找到disable_functions,发现过滤了许多危险函数

我们上传一个一句话木马看看
eval($_POST[123]);,经过base64是ZXZhbCgkX1BPU1RbMTIzXSk7
执行

http://e0cc90ac-d4bc-450c-a6a4-476298ce7c18.node3.buuoj.cn/?Ginkgo=ZXZhbCgkX1BPU1RbMTIzXSk7
  • 1

用菜刀,连不上,我呆了,还好有个蚁剑

再试一下,成功了

发现了flag,结果打不开,也修改不了权限

打开readflag看看,有乱码,想到是通过执行readflag来读取flag

然后怎么办,我在不会了。。。
看了大佬的wp后才知道做题要注意版本
通过phpinfo()知道php版本为7.3,这个版本有一个漏洞
php7-gc-bypass漏洞利用PHP garbage collector程序中的堆溢出触发进而执行命令
影响范围是linux,php7.0-7.3
给出了exp
https://github.com/mm0r1/exploits/blob/master/php7-gc-bypass/exploit.php
下载后进行修改,改为执行readflag


然后通过蚁剑进行上传这里发现tmp目录权限是1777,于是决定上传到这个目录

点击此处上传

通过之前的一句话来执行文件包含,得到flag

[GKCTF2020]CheckIN 注意了解多方面的东西的更多相关文章

  1. MZ头里面的东西。真他妈多

    最后一个字段,也就是e_lfanew,的值表示PE头相对于文件首部的偏移,也就是说,在它的值所对应的位置,就是PE头的地址, 数据结构名称 值 e_magic: 0x5A4D->‘MZ’ e_c ...

  2. String、StringBuffer、StringBuilder源码解读

    序 好长时间没有认真写博客了,过去的一年挺忙的.负责过数据库.线上运维环境.写代码.Code review等等东西挺多. 学习了不少多方面的东西,不过还是需要回归实际.加强内功,方能扛鼎. 去年学习M ...

  3. 从点击到呈现 — 详解一次HTTP请求

    一般来说,很多的参考资料上面都会说,http 是一个基于请求/响应的工作模式,然后画出一张浏览器和服务器的 b/s 结构图,再画上两个箭头,表示请求和响应,应该说这么解释是易懂的,一般也是够清楚的,但 ...

  4. 输入url到渲染出页面的过程

    输入地址 浏览器查找域名的 IP 地址 这一步包括 DNS 具体的查找过程,包括:浏览器缓存->系统缓存->路由器缓存... 浏览器向 web 服务器发送一个 HTTP 请求 服务器的永久 ...

  5. 输入一个URL到页面呈现其中发生的过程-------http过程详解

    在我们点击一个网址,到它能够呈现在浏览器中,展示在我们面前,这个过程中,电脑里,网络上,究竟发生了什么事情. 服务器启动监听模式 那我们就开始了,故事其实并不是从在浏览器的地址栏输入一个网址,或者我们 ...

  6. 前端项目优化 -Web 开发常用优化方案、Vue & React 项目优化

    github github-myBlob 从输入URL到页面加载完成的整个过程 首先做 DNS 查询,如果这一步做了智能 DNS 解析的话,会提供访问速度最快的 IP 地址回来 接下来是 TCP 握手 ...

  7. 输入URL到页面渲染

    输入网址回车或者刷新页面到页面传染出来的整个流程 DNS 解析 HTTP三次握手 -> TCP/IP连接 浏览器发送请求 服务器返回请求的文件 (html) 浏览器渲染 1. DNS 解析 查找 ...

  8. Python Web 基础向(四) 浅谈数据层

    数据层一般会给人带来一些困扰,在于其定位不准确.聚合Model的工作也可以放在逻辑层做,但会导致逻辑层变重,经常出现大段晦涩代码.因此我的建议是保留Model聚合层,尽管会导致工作量的略微增加,但却可 ...

  9. 这样理解 HTTP,面试再也不用慌了~

    开源Linux 长按二维码加关注~ 上一篇:SSH只能用于远程Linux主机? 1 HTTP HTTP 协议是个无状态协议,不会保存状态. 2 Post 和 Get 的区别 先引入副作用和幂等的概念. ...

随机推荐

  1. 面试官问我redis数据类型,我回答了8种

    面试官:小明呀,redis 有几种数据结构呀? 小明:8 种 面试官:那你说一下分别是什么? 小明:raw,int,ht,zipmap,linkedlist,ziplist,intset,skipli ...

  2. 最全总结 | 聊聊 Python 办公自动化之 Word(上)

    1. 前言 日常自动化办公中,使用 Python 真的能做到事半功倍! 在上一个系列中,我们对 Python 操作 Excel 进行了一次全面总结 最全总结 | 聊聊 Python 办公自动化之 Ex ...

  3. Spider--实战--bs静态网页爬取TOP250电影

    import requests from bs4 import BeautifulSoup def gettop250(): headers={ 'user-agent':'Mozilla/5.0 ( ...

  4. 阅源-jdk8-FunctionalInterface注解

    package java.lang; import java.lang.annotation.*; /** * An informative annotation type used to indic ...

  5. Linux 8个有力的Awk内建变量

    Awk 有几个非常强力的内置变量.通常来说,分为两种类型的内置变量: 第一种是定义的变量可以改变, 比如字段分隔(FS)与记录分隔(RS) 第二种是可以用来数据处理或者数据总结,比如记录数(NR)与字 ...

  6. linux netfilter nat1

    linux netfilter nat1 2020整理云笔记上传

  7. mysql 触发器的创建和使用

    什么是触发器 触发器(TRIGGER)是MySQL的数据库对象之一,从5.0.2版本开始支持.该对象与编程语言中的函数非常类似,都需要声明.执行等.但是触发器的执行不是由程序调用,也不是由手工启动,而 ...

  8. shell脚本的自动交互

    使用expect来自动应答shell的交互 #!/usr/bin/expect spawn openssl req -new -key server.key -out server1.csr expe ...

  9. mdtest测试工具

    软件介绍 mdstest是软件的元数据操作基准测试工具,用来模拟对文件或者目录的open.stat.close操作,然后报告性能 下载软件压缩包: yum install openmpi openmp ...

  10. Python_pycharm调试模式+使用pycharm给python传递参数

    一.通过pycharm 给python传递函数 1. 在pycharm终端中写入要获取的参数,进行获取 1>启动pycharm 中Terminal(终端) 窗口 点击pycharm左下角的图标, ...