Web-Day9

本文详细介绍了PHP中的命令执行函数,如system和shell_exec,以及文件包含函数,如include和highlight_file,强调了它们在利用时的安全风险,并提供了利用示例。提醒开发者注意防止敏感信息泄露和防止代码注入攻击。
摘要由CSDN通过智能技术生成

 二、命令执行

2.2 rce中常用的包含文件函数

2.2.1 include 函数

当包含 .php 文件时,可同时运行。

利用方式:

include('flag.php');
//或者
include 'flag.php';

//姿势绕过

include $_GET[1]?>&1=flag.php

2.2.2 highlight_file 函数

语法高亮⼀个文件,即将⽂件内容全部展示出来。

语法:

highlight_file(filename,return)
参数描述
filename必需。要进行高亮处理的 PHP 文件的路径。
return可选。如果设置 true,则本函数返回高亮处理的代码。

这个函数被ban掉的可能性较小,可以尝试高亮 flag 文件。

注意:需要注意的是,在使用 highlight_file() 函数时,请不要因为疏忽而泄露诸如密码或其他类型的敏感信息,否则会出现潜在的安全风险。

利用方式:

highlight_file 'flag.php'

('' show_source 函数" ==> " highlight_file 函数"的别名)

2.3 常见的系统执行函数

2.3.1 system 函数

字符串 作为 OS命令 去执行,并且带 输出功能 。

system(string $command, int &$return_var = ?): string
//同 C 版本的 "system() 函数"一样, 本函数执行 "command 参数"所指定的命令, 并且输出执行结果。
//如果 PHP 运行在服务器模块中,"system() 函数"还会尝试在每行输出完毕之后, 自动刷新 web 服务器的输//出缓存。
//如果要获取一个命令未经任何处理的 原始输出, 请使用 "passthru() 函数"。

利用方式:

<?php 
//a = system('ls')
$a = $_REQUEST[a];
eval($a);
?>

例:

<?php
echo '<pre>';
// 输出 shell 命令 "ls" 的返回结果
// 并且将输出的最后一样内容返回到 $last_line。
// 将命令的返回值保存到 $retval。
$last_line = system('ls', $retval);

// 打印更多信息
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>

//警告:当传入用户提供的数据到本函数时,应使用 escapeshellarg() 或 escapeshellcmd() 来防止用户欺骗系统执行任意命令

注:如何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。否则会导致 PHP 挂起,直至程序执行结束。

2.3.2 shell_exec() 函数

通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
  • 只返回字符串,不会进行输出
  • 该函数和 反引号 `` 的执行效果⼀致

说明:

shell_exec(string $cmd): string

利用方式:

<?php 
$output = shell_exec('ls -lart'); 
echo "<pre>$output</pre>"; //需要输出显示结果
//print($output);
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值