BUGKU 文件包含+备份是个好东西

文件包含

打开题目,发现什么都没有,就只有一个index.php文件,题目又提示你说文件包含,我就想到了php伪协议

用其中的php://filter伪协议去查看这道题的源码,

?file=php://filter/read=convert.base64-encode/resource=index.php

转换出来的用base64解码得到:

里面就有flag

备份是个好东西

这道题打开里面其实什么都没有

习惯性用dirsearch看看有没有其他的文件(我尝试了F12和CTRL+u都没有什么用),果然有东西

我一个一个试了一下,在/index.php.bak有源文件包,打开看一下

<?php
/**
 * Created by PhpStorm.
 * User: Norse
 * Date: 2017/8/6
 * Time: 20:22
*/

include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str); //str_repalace是把key给过滤了(这里的考点就是把key给绕过)
parse_str($str);
echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}
?>

其实这道题本质上是一个代码审计的题目,其中str_replace函数说明将key给替换了(过滤),那么我们所想的第一步就是应该双写key绕过,再看下面的要求,md5数组key的值要相等,但是key1和key2的值不能相等,所以我想到了md5数组绕过,构造以下函数

?kkeyey1[]=1&kkeyey2[]=2

即可获得flag的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值