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 studio出现 Could not initialize class com.android.sdklib.repository.AndroidSdkHandler

    新的android studio  (4.2)已经不支持旧有的 com.android.tools.build:gradle:2.3.3 了,有些方法和类会找不到. 去build.gradle中把这个 ...

  2. Chrome导出导入书签

    Chrome导出标签 Chrome导入书签

  3. docker部署验证码项目报错:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

    如果docker部署启动报错 java.lang.NullPointerException: nullat sun.awt.FontConfiguration.getVersion(FontConfi ...

  4. docker启动redis报错 oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

    docker启动redis报错 1:C 17 Jun 08:18:04.613 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo1:C 17 Jun 08 ...

  5. Linux宝塔面板部署运行jar包

    登录面板 安装插件 把jar包上传上去 设置jar包 填写项目启动的端口 然后点击确定 会自动启动 然后浏览器打开 ip:端口 即可

  6. 给初学者的STM32(Cortex-M3)中断原理及编程方法介绍 [原创www.cnblogs.com/helesheng]

    本人编著的<基于STM32的嵌入式系统原理及应用>(ISBN:9787030697974)刚刚在科学出版社出版.这本书花费了半年以上的时间,凝聚了笔者作为高校教师和嵌入式工程师的一些经验, ...

  7. 【LeetCode】205. Isomorphic Strings 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典保存位置 字典保存映射 日期 题目地址:http ...

  8. Redis -使用 Bitmap

    redis数据类型 String.Set.Zset.List.hash       Bitmap . 四种统计类型: 二值状态统计: 聚合统计: 排序统计: 基数统计 二值状态统计: 就是集合中的元素 ...

  9. 初遇NFT-IPFS

    初遇NFT-IPFS 本次学习如何使用Hardhat框架制作可预售的NFT并利用IPFS存储元数据. NFT简介 NFT全称Non-fungible Token(即非同质化通证).不可分割性(目前有碎 ...

  10. 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行

    需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...