PHP头条
热点:

CTF中遇见的PHP伪协议运用,ctfphp伪协议


关于PHP伪协议中的总结网上已经有很多文章了
LoRexxar的PHP伪协议总结
PHP伪协议
官方文档

以下都是在做CTF题目的时候遇见的一些知识点,每遇到一点就会在这面做一些总结



php://input



php://input 是个可以访问请求的原始数据的只读流。因为它不依赖于特定的 php.ini 指令。
注:enctype=”multipart/form-data” 的时候 php://input 是无效的。

使用实例

// [POSTDATA] 123456
echo file_get_contents("php://input", "r"); //123456

看了一些文章,使用方式好像就这样一种
主要还是对于伪协议的理解不够,当初比较傻,没看其他文章的前提下自我推测了一下为什么这样用,自己推测的原理附在这下面了


在文章PHP伪协议有这么一个实际例子

实例源码

<!--
$user = $_GET["user"];
$file = $_GET["file"];
$pass = $_GET["pass"];

if(isset($user)&&(file_get_contents($user,'r')==="the user is admin")){
    echo "hello admin!<br>";
    include($file); //class.php
}else{
    echo "you are not admin ! ";
}
 -->
// 解法为  url/index.php?user=php://input  
// [POSTDATA] the user is admin
// 最后输出为hello admin!并且包含对应文件

原理过程

自己猜的,求大佬指点

首先先对以下两点进行了解
1. file_get_contents()
2. php://input (开头已经提到了)

file_get_contents()

在官方手册中file_get_contents()是用来将文件的内容读入到一个字符串中的首选方法,并且给出了几个运用实例。
在实例中可以发现,file_get_contents()的$filename参数不仅仅为文件路径,还可以是一个URL(伪协议)。

echo file_get_contents('http://www.baidu.com', 'r');
// 将会在该页面中输出一张和百度一模一样的页面

这个URL应该也是PHP伪协议中http://中的运用


接下来过程就很好理解了
file_get_contents() 解析传入字符串发现是伪协议中的php://input,便读取了[POSTDATA]的数据保存为一个字符串。
既通过了验证。




php://filter

php://filter是我们常常使用的一个伪协议,在任意文件读取,甚至getshell的时候都有利用的机会。
在include函数的使用上,经常会造成任意文件读取漏洞
file_get_contents()和file_put_contents()这样函数下,常常会构成getshell等更严重的漏洞。

更具体的可以看LoRexxar的PHP伪协议总结
这边说CTF中遇到的使用实例

任意文件读取

实例为bugKu中WEB的welcome to bugkuctf

$user = $_GET["txt"];  
$file = $_GET["file"];  
$pass = $_GET["password"];  

if(isset($user)&&(file_get_contents($user,'r')==="welcome to the bugkuctf")){  
    echo "hello admin!<br>";  
    include($file); //hint.php  
}else{  
    echo "you are not admin ! ";  
}  
// 条件一使用php://input即可绕过,上面有介绍
// 这边发现include()动态包含了$file参数
// 传入file=php://filter/read=convert.base64-encode/resource=index.php 即可得到index.php的BASE64加密的源码







关于其他的一些应用,在做记录….

www.phpzy.comtrue/php/4784.htmlTechArticleCTF中遇见的PHP伪协议运用,ctfphp伪协议 关于PHP伪协议中的总结网上已经有很多文章了 LoRexxar的PHP伪协议总结 PHP伪协议 官方文档 以下都是在做CTF题目的时候遇见的一些知识点,每遇到一...

相关文章

相关频道:

PHP之友评论

今天推荐