命令执行漏洞笔记 7.17~7.24

1.PHP命令执行的常见函数

1.system函数。  用于执行外部程序并显示输出。

string system ( string $command [,int $return_var ])
//index.php
<?php system('whoami');?>
//执行后输出root

2.exec函数。  用于执行一个外部命令。

string execstring $command[,array &$output[,ubt &$return_var]])
//index.php
<?php echo exec('whoami');?>
//执行时加上echo 才会输出whoami的结果root

3.shell_exec函数。  通过shell环境执行命令且将完整的输出以字符串方式返回

string shell_exec(string $cmd)
//index.php
<?php echo shell_exec('whoami');?>
//执行时加上echo 才会输出whoami的结果root

4.passthu函数。  用于执行外部程序并显示原始输出

void passthru(string $command[,int &$return_var])
//index.php
<?php passtru('whoami');?>
//执行后默认输出root

5.popen函数。  打开进程文件指针

resource popen (string $command,string $mode)
//index.php
<?php popen("touch test.txt","r")?>
//执行该代码后会在当前文件夹下创建test.txt文件

6.proc_poen函数。  用于打开文件进程指针

复制代码
resource proc_popen (string $cmd,string $descriptorspec,array&$pipes[, string $cwd[,array $other_potions]])
//index.php
<?php 
$proc=proc_poen("whoami",
array(
      array("pipe","r"),
      array("pipe","w"),
      array("pipe","w")
),
      $pipes);
print stream_get_contents($pipes[1]);
?>
//执行后输出结果root
复制代码

 

CTFBUU

1.[ACTF2020 新生赛]Exec

cat
查看文件内容

ls
显示当前目录下的文件

先输入127.0.0.1|ls /看目录下的文件

 

 找flag.格式总是输不对,试了几次,空格不能少,斜杠方向不能错  127.0.0.1|cat \flag

 

 出来喽

 

2.[极客大挑战 2019]Havefun

 

 这次学聪明了,查看页面源代码。密密麻麻的看不懂,还是求助了,这才发现最下面有猫腻.提示如下

 

 

3.

php://filter与包含函数结合时,php://filter流会被当作php文件执行。
所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。

php://filter 伪协议文件包含读取源代码,加上read=convert.base64-encode,
用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。

php://input 伪协议 + POST发送PHP代码 (不行)

 

 

 看到=用Base64解密

 

posted @   clyhys  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示