RCE-Labs超详细WP-Level10(无字母命令执行_二进制整数替换)

温馨提示

  • 这关涉及的知识点较多, 写的很长, 中间留了很多错误引导(本人在实验时遇到的问题, 或许你们也会遇到), 在后文才逐步解释

源码分析

  • 跟前几关一样, 更改了 WAF 的过滤字段
  • 这个关卡, 只有0, 1, '(单引号), $, <, \ , ( , )可以用

解题分析(实验这些命令, 可以先在自己本地的Bash试试)

  • 上一关使用 八进制, 而这一关只有 01, 难道使用二进制?
    • 没错
  • bash 终端中, 支持使用 $((2#binary))来通过二进制表示十进制数
    • 比如
      $((2#10011010)) -> 154
      
  • 虽说知道了 $((2#binary)) 可以把二进制转为十进制, 但是还是把它拆分开来分析一下
    • 首先是 $((...))
      • bash$((...))算术扩展(Arithmetic Expansion) 的语法
      • 比如
        echo $((3 + 5))   # 输出 8
        echo $((10 / 2))  # 输出 5a=10
        b=5
        echo $((a + b))  # 输出 15
        
    • 2#binary进制表示法(Base Notation), 表示把后面的二进制串, 转化为十进制
      • 同理 # 前面的 2 也可以是 8, 16, 36, 如下
      echo $((8#72))  # 输出 58
      echo $((16#1A))  # 输出 26
      echo $((36#Z))  # 输出 35
      
  • 熟知 $((2#binary)) 的原理, 是否会发现, 这里不是有个 2 吗, 怎么绕过 WAF 呢
    • 其实只要在嵌套一层 $((...)) 就可以
    • 可以只使用 1< 通过左移运算得到 2
      • $((1<<1))
    • 所以 $((2#binary)) 可以写为 $(($((1<<1))#binaryStr))
  • 然后把 $(($((1<<1))#binaryStr)) 套入到八进制转义中, 这里拿 ls 举例
    • 注意的是, 这里的 $((2#binary)) 不是直接转为八进制数, 而是转为十进制的数, 而这个十进制数当做八进制使用, 转换步骤详细如下
      ls 转为八进制 -> \154\163
      使用八进制转义 -> $'\154\163'
      使用二进制替换 154 和 163, 这两个数现在当做十进制154 -> $((2#10011010)) -> $(($((1<<1))#10011010))163 -> $((2#10100011)) -> $(($((1<<1))#10100011))
      于是 $'\154\163' -> $'\$(($((1<<1))#10011010))\$(($((1<<1))#10100011))'
      
  • 但是使用 $'\$(($((1<<1))#10011010))\$(($((1<<1))#10100

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ctfshow-xxs-316-333-wp

316.反射型 XSS&#xff08;-326都是反射型&#xff09; js恶意代码是存在于某个参数中&#xff0c;通过url后缀进行get传入&#xff0c;当其他用户点进这个被精心构造的url链接时&#xff0c;恶意代码就会被解析&#xff0c;从而盗取用户信息。 来看题&#xff0c;先简单测试…

easypoi导入Excel兼容日期和字符串格式的日期和时间

问题场景 在使用easypoi导入Excel时&#xff0c;涉及到的常用日期会有yyyy-MM-dd HH:mm:ss、yyyy-MM-dd和HH:mm:ss&#xff0c;但是Excel上面的格式可不止这些&#xff0c;用户总会输入一些其他格式&#xff0c;如 如果在定义verify时用下面这种格式定义&#xff0c;那么总会…

基于yolo11+flask打造一个精美登录界面和检测系统

这个是使用flask实现好看登录界面和友好的检测界面实现yolov11推理和展示&#xff0c;代码仅仅有2个html文件和一个python文件&#xff0c;真正做到了用最简洁的代码实现复杂功能。 测试通过环境&#xff1a; windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.…

R语言零基础系列教程-01-R语言初识与学习路线

代码、讲义、软件回复【R语言01】获取。 R语言初识 R是一个开放的统计编程环境&#xff0c;是一门用于统计计算和作图的语言。“一切皆是对象”&#xff0c;数据、函数、运算符、环境等等都是对象。易学&#xff0c;代码像伪代码一样简洁&#xff0c;可读性高强大的统计和可视…

AI重塑视觉艺术:DeepSeek与蓝耘通义万相2.1的图生视频奇迹

云边有个稻草人-CSDN博客 近年来&#xff0c;深度学习、计算机视觉和生成模型在多个领域取得了突破性进展。其中&#xff0c;DeepSeek与蓝耘通义万相2.1图生视频的结合为图像生成与视频生成技术提供了新的发展方向。DeepSeek作为一个图像和视频生成的工具&#xff0c;能够利用深…

ELK+Filebeat+Kafka+Zookeeper安装部署

1.安装zookeeper zookpeer下载地址:apache-zookeeper-3.7.1-bin.tar.gzhttps://link.csdn.net/?targethttps%3A%2F%2Fwww.apache.org%2Fdyn%2Fcloser.lua%2Fzookeeper%2Fzookeeper-3.7.1%2Fapache-zookeeper-3.7.1-bin.tar.gz%3Flogin%3Dfrom_csdn 1.1解压安装zookeeper软件…

历年云南大学计算机复试上机真题

历年云南大学计算机复试机试真题 在线评测&#xff1a;传送门&#xff1a;pgcode.cn 喝饮料 题目描述 商店里有 n 中饮料&#xff0c;第 i 种饮料有 mi 毫升&#xff0c;价格为 wi。 小明现在手里有 x 元&#xff0c;他想吃尽量多的饮料&#xff0c;于是向你寻求帮助&#x…

怎么有效降低知网AIGC率

在学术创作日益规范且数字化检测技术不断发展的当下&#xff0c;知网 AIGC 检测成为了众多创作者关注的焦点。许多人苦恼于如何有效降低知网 AIGC 率&#xff0c;让自己的作品在通过检测的同时&#xff0c;彰显出真实的创作水平与独特性。接下来&#xff0c;我们就深入探讨降低…

代码随想录day17 二叉树part05

654.最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums …

【Python入门】一篇掌握Python中的字典(创建、访问、修改、字典方法)【详细版】

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;《Python/PyTorch极简课》_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目…

LeetCode 环形链表II:为什么双指针第二次会在环的入口相遇?

快慢指针 为什么相遇后让快指针回到起点&#xff0c;再让快指针和慢指针都一步一步地走&#xff0c;它们就会在环的入口相遇&#xff1f; 复杂度 时间复杂度: O(n) 空间复杂度: O(1) public ListNode detectCycle(ListNode head) {ListNode slow head, fast head;ListNode …

HarmonyOS第24天:鸿蒙应用安全秘籍:如何为用户数据筑牢防线?

开篇引入 在数字化时代&#xff0c;我们的生活越来越依赖各种应用程序。从社交娱乐到移动支付&#xff0c;从健康管理到工作学习&#xff0c;应用已经渗透到生活的方方面面。然而&#xff0c;随着应用使用的日益频繁&#xff0c;用户隐私数据泄露的风险也在不断增加。 前几年&…

P2730 魔板 (写了巨久..有一些数字,字符,字符串之间的转换规则)

ac代码&#xff1a; #include<iostream> #include<map> #include<queue> using namespace std; map<string,int>mp1,mp2; map<string,string>mp3; queue<string>q; string str,res"12345678"; void pri(string str){if(resstr)…

Centos7使用docker搭建redis集群

前置准备&#xff1a; Centos7安装docker就不多说了… 本次目的是搭建3主3从&#xff08;当然你也可以按需扩展&#xff09;准备三台服务器&#xff0c;假定IP分别为&#xff1a;192.168.75.128、192.168.75.129、192.168.75.130安装 redis&#xff1a; #拉取redis docker p…

Java 用While语句判断密码是否输入正确

package com.MyJava; import java.util.Scanner;public class While {public static void main(String[] args) {Scanner Myscan new Scanner(System.in); int i 0,n 3; //n为有效密码次数System.out.print("请输入密码&#xff1a;");String Password Myscan.ne…

Browser Copilot 开源浏览器扩展,使用现有或定制的 AI 助手来完成日常 Web 应用程序任务。

一、软件介绍 文末提供源码和开源扩展程序下载 Browser Copilot 是一个开源浏览器扩展&#xff0c;允许您使用现有或定制的 AI 助手来帮助您完成日常 Web 应用程序任务。 目标是提供多功能的 UI 和简单的框架&#xff0c;以实现和使用越来越多的 copilots&#xff08;AI 助手&…

探索Maas平台与阿里 QWQ 技术:AI调参的魔法世界

摘要&#xff1a;本文介绍了蓝耘 Maas 平台在人工智能领域的表现及其核心优势&#xff0c;包括强大的模型支持、高效的资源调度和友好的操作界面。文章还探讨了蓝耘 Maas 平台与阿里 QWQ 技术的融合亮点及应用拓展实例&#xff0c;并提供了调参实战指南&#xff0c;最后对蓝耘 …

3.2 组件Props的TS高级类型校验模式

文章目录 1. 组件Props校验的核心价值2. 基础类型校验回顾2.1 基本类型声明2.2 类型系统限制3. 高级类型校验模式3.1 类型模板字面量3.2 条件类型约束3.3 递归类型结构4. 泛型组件模式4.1 基础泛型定义4.2 泛型约束扩展5. 高级联合类型应用5.1 动态表单校验5.2 状态机驱动类型6…

Vim软件使用技巧

目录 Demo Vim怎么看一个文件的行号&#xff0c;不用打开文件的前提下&#xff1f;进入文件后怎么跳转到某一行? 不打开文件查看行号&#xff08;查看文件的方法&#xff09; 方法1、使用命令行工具统计行数 方法2、通过vim的 - 参数查看文件信息 进入文件后跳转到指定行…

C 语 言 --- 二 维 数 组 的 应 用

C 语 言 --- 二 维 数 组 的 应 用 第 一 题 - - - 冒 泡 排 序冒 泡 排 序冒 泡 排 序 的 原 理 第 二 题 - - - 回 型 矩 阵特 点 第 三 题 - - - 蛇 形 矩 阵总结 &#x1f4bb;作者简介&#xff1a;曾 与 你 一 样 迷 茫&#xff0c;现 以 经 验 助 你 入 门 C 语 言 &…