ctf中怎样获取php文件源码,ctf中关于php伪协议的考查

本文介绍了CTF中获取PHP文件源码的多种方法,包括php://input协议实现代码执行,php://filter/convert.base64-encode/resource=用于查看源码,file://协议读取本地文件,以及zip、bzip2、zlib和phar等协议的利用。文章强调了基础在解决复杂问题中的重要性,并指出CTF比赛趋势的变化。
摘要由CSDN通过智能技术生成

原创: Archerx 合天智汇

1

php://input协议

第一个例子

flag.php

test1.php

include('flag.php');

$a= $_GET["a"];

if(isset($a)&&(file_get_contents($a,'r'))=== 'this is test'){

echo"success\n";

echo$flag;

}

else{

echo"error";

}

看上面php代码可知当读取文件的内容是thisis test时才显示flag,我们并不知道那个文件有这个内容,我们可以使用php://这个协议php://input可以得到原始的post数据,访问请求的原始数据的只读流,将post请求中的数据作为PHP代码执行,如下操作来绕过:

使用条件:

allow_url_fopen:off/on

allow_url_include:on

第二个例子

php://input实现代码执行

test1.php改为如下

$a= $_GET["a"];

include($a);

注:只在php5.2.17 下测试成功,其他均出现报错,原因未知。

php://filter/convert.base64-encode/resource=

看另外一个代码࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值