[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}

相关推荐
心中有国也有家6 小时前
AtomGit Flutter 鸿蒙客户端:Canvas 绘制进阶-路径、渐变与混合模式
android·javascript·flutter·华为·harmonyos
爱吃牛肉的大老虎6 小时前
rust基础之环境搭建
java·开发语言·rust
openKylin6 小时前
与全球技术演进同频,openKylin 3.0从C迈向Rust
c语言·开发语言·rust·开源·开放原子·openkylin
tellmewhoisi7 小时前
多版本共用redis的token有效期校验(过期重新登录)
java·redis·缓存
疯狂打码的少年7 小时前
【软件工程】结构化设计:模块独立性与耦合内聚
java·开发语言·笔记·软件工程
hunterandroid7 小时前
WorkManager 可靠性实战:唯一任务、重试与幂等设计
android·前端
乐观的Terry7 小时前
3、数据库设计与领域实体
java·数据库·spring boot·spring cloud·ai编程
程序员老刘8 小时前
Android 17的10个AI功能,国内用户真正能用的有几个?
android·flutter·ai编程
程高兴8 小时前
PMSM基于在线转动惯量辩识的滑模负载转矩观测器MATLAB-SIMULINK仿真模型
开发语言·matlab
kisloy8 小时前
【python零基础教程第24讲】代码规范与质量管控
开发语言·python