ACTF2020back up file

  • backup file指的是备份文件,一般备份文件的后缀有“.git” 、“.svn”、“ .swp” “.~”、“.bak”、“.bash_history”、“.bkf”

    根据题目的hint,随便访问一个index.php.bak,下载得到备份文件

  1. 此处为弱比较,要求just num,所以传入key=123,得到flag

  • 极客2019php

    dirsearch备份文件爆破

  • php反序列化函数漏洞绕过

  • __sleep() 序列化函数调用时自动执行的函数,可以限定要序列化的属性
    __wakeup()//反序列化时优先调用执行的函数
  • private声明的字段类型

  1. 先试了几个备份文件名都没有用,于是用dirsearch爆破,找到www.zip

  1. 访问/www.zip,得到文件,解压,得到index.php flag.php class.php打开flag.php,哈哈被骗辣

  1. 看index.php,调用了class.php,且需要用get方式传递经过反序列化之后的select。

    再看class.php,select需要满足usename=admin&password=100

  2. 查了一圈资料,发现class.php里用到的_wakeup函数在反序列化时会优先执行,覆盖掉之前输入的username和password。解决办法就是写脚本重新构造序列化(脚本是上网找的,我还是太菜了)

<?php
class Name{
private $username = 'nonono';
private $password = 'yesyes';
public function __construct($username,$password){
$this->username = $username;
$this->password = $password;
}
}
$a = new Name('admin', 100);//重新构造序列化
var_dump(serialize($a));
?>

输出的结果

  1. 此处为了绕过_wakeup函数,要把’2‘改成一个大于真实类型数的值,但改了之后上传还是没有反应

  1. 又查了一圈资料,发现是因为private声明的字段前面都有/0前缀,不能直接复制 字段前加上%00后上传成功,得到flag

极客2019secret file

  • php://filter伪协议

    1. 先随便访问个flag.php,发现什么都没有

    2. 从头开始,在源码里一步一步找到文件夹,访问,直到action.php的时候出了问题,访问之后立即跳转成end.php了

    3. 抓包,在action.php这里发现有个secr3t.php,访问查看源码,发现让我们传入file

  1. 这里用到php伪协议php://filter,把flag.php的源码通过base64编码之后读取

    ?file传入php://filter/convert.base64-encode/resource=flag.php

  2. 解码,得到源码

ctf--web刷题记录 ACTF2020back up file 、极客大挑战2019php、secret file的更多相关文章

  1. BUUOJ [极客大挑战 2019]Secret File

    [极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...

  2. [极客大挑战 2019]Secret File

    0x00知识点 没有过滤file 使用php的file伪协议去读取文件 ?file=php://filter/convert.base64-encode/resource=flag.php 0x01解 ...

  3. [极客大挑战 2019]Secret File 1

    题目的名字就暗示我们考点文件隐藏进入页面查看源码 得到隐藏的界面点击访问 点击给的"SECRET"按钮页面出现提示"没看清么?回去再仔细看看吧.",说明响应的时 ...

  4. [极客大挑战 2019]Secret File wp

    通过标题考虑可能为文件包含漏洞方面 打开网页 从页面并没任何思路,查看源代码 得到有一个跳转到./Archive_room.php的超链接,打开Archive_room.php 中央有一个secret ...

  5. 攻防世界Web刷题记录(进阶区)

    攻防世界Web刷题记录(进阶区) 1.baby_web 发现去掉URLhttp://111.200.241.244:51461/1.php后面的1.php,还是会跳转到http://111.200.2 ...

  6. 攻防世界Web刷题记录(新手区)

    攻防世界Web刷题记录(新手区) 1.ViewSource 题如其名 Fn + F12 2.get post 3.robots robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个 ...

  7. 2020极客大挑战Web题

    前言 wp是以前写的,整理一下发上来. 不是很全. 2020 极客大挑战 WEB 1.sha1碰撞 题目 图片: 思路 题目说,换一种请求方式.于是换成post.得到一给含有代码的图片 图片: 分析该 ...

  8. [原题复现][极客大挑战 2019]BuyFlag

    简介  原题复现:[极客大挑战 2019]BuyFlag  考察知识点:php函数特性(is_numeric().strcmp函数())  线上平台:https://buuoj.cn(北京联合大学公开 ...

  9. web刷题记录 极客大挑战2019Knife upload buy a flag

    极客2019Knife webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理.服务器管理.权限管理等操作.使用方法简单,只需上传一个代码文件,通 ...

随机推荐

  1. android 基于dex的插件化开发

    安卓里边可以用DexClassLoader实现动态加载dex文件,通过访问dex文件访问dex中封装的方法,如果dex文件本身还调用了native方法,也就间接实现了runtime调用native方法 ...

  2. uni-app + Cloudbase——uni-app 项目中如何使用腾讯云开发后端服务

    1 基本介绍 uni-app 是一个基于 Vue.js 的跨端开发框架,一套代码可以发布到 App.小程序.Web 等不同平台 腾讯云开发平台 Cloudbase 提供的 @cloudbase/js- ...

  3. java 理论基础 类的初始化(加载、连接(验证、准备、解析)、初始化)

    一个进程就有一个JVM,每个进程之间资源独立 当调用java命令来启动某个Java程序的时候,该命令创建一个独立的进程来运行我们的Java程序.而这个独立的进程里面就包含一个Java虚拟机.不管该程序 ...

  4. 为什么需要两次eval才转化为需要的JSON数据,好奇怪

    为什么需要两次eval才转化为需要的JSON数据,好奇怪

  5. PSpiceAA-高级分析例程

    一.高级分析应用例程 1.1.例程电路原理图(同向放大电路) 器件模型使用PSpice-ELEM库中的模型. 1..1.1.仿真测试波形图 1.2.灵敏度分析 1.2.1菜单选择:PSpice-> ...

  6. JAVA地址通过百度地图API转化为经纬度

    public static Map getLngAndLat(String address) { Map map = new HashMap(); String url = "http:// ...

  7. wayne编译支持k8s1.16+

    GitHub: https://github.com/Qihoo360/wayne 文档: 由于wayne 官方文档链接已经失效了,我们可以通过这里查看 wayne 文档, 除了这个地方,我们询问之前 ...

  8. 【LeetCode】1110. Delete Nodes And Return Forest 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcode ...

  9. MySQL 中 count(*) 和 count(1)

    一张有 100W 条数据的表 CREATE TABLE `user` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `username` var ...

  10. C++ std-11 常用方法

    对多个值取最值 C++标准库提供了获取最大值和最小值的方法: int mi = std::min(x1, x2); int ma = std::max(x1, x2); 如果想获取超过两个数的最值呢? ...