1.为什么要利用phar
一些题目需要用到反序列化去读取文件,但是却没有提供unserialize()时就可以利用phar
2.利用php生成phar文件
1 | class TestObject { |
通过上述代码生成的文件如图,可以看到已经将TestObject类序列化了,此时上传再去用phar协议读取就会触发反序列化
3.受影响的函数
当看到这些函数时就表明可以用phar这种方法了
例子如下,当去用file_get_contents去读取phar包中的test.txt文件时,就会触发反序列化 ,调
用TestObject类,于是TestObject中的的魔术方法就被调用了,会输出Destruct called
4.总结
总算是对phar有了一定的了解,关于如何去构造pop链,提高代码审计能力才是最关键的一点,努力去学php吧,接下来应该还会做几道关于反序列化的题