[BSidesCF 2020]Had a bad day1

看到页面有两个按钮

先随便点一个试一下,当我们点击之后发现url是有变动的

感觉url是有点东西的,可能是某种注入,先尝试一下sql注入,发现给出了报错

通过报错我们可以确定是文件包含漏洞,那我们试试php伪协议去读取一下index.php源代码试试,看看能不能通过源码分析出什么(这里有个php伪协议blog003-漏洞梳理篇之php伪协议_伪协议漏洞-CSDN博客

发现文件多了一个后缀哦(那有可能是直接将文件与后缀名拼接起来),那么把输入的.php删除再来一次

这次返回了base64编码,尝试解密,得到index.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.";
			}
	}
?>

可以看到通过category进行get传参,然后category中是需要包含woofers、meowers和index三个中任意一个的,否则就会返回Sorry, we currently only support woofers and meowers. 这里是存在一个php特性,当我们在进行伪协议写入的时候,php会忽略没有含义的值。这样绕过了过滤。从而可以达到读取flag的目的。可以去看一下这篇文章BSidesCF 2020Had a bad day_mb5fdcad8719a20的技术博客_51CTO博客

也就是说当我们通过category去传入文件名的时候,category=woofers/flag的时候,index.php会在参数后面直接连接.php这个后缀,因此$file=woofers/flag.php,而在php中进行文件包含的时候会把woofers/给忽略掉,找到这个有意义的flag.php,从而到达利用php伪协议去读取flag.php的目的。

所以可以试着传入category的参数为woofers/flag

可以看到flag.php是被包含进去了但是没有被读取出来,看了别人的博客才知道php伪协议还可以套协议(学到了ovo),这里payload就是利用的这个知识点去构造的

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

这个伪协议套协议也就是去寻找woofers/flag,而前面说到php会忽略woofers所以这里就可以绕过index.php的过滤,从而读取到flag了

可以看到页面是返回来了一串base64编码,解码就可以得到flag.php的源码,如下

通过解码我们就可以看到源码中的flag了。

今天又学到了哈哈哈 Ovo ovO OVO ovo 开心的一天 自嗨哈哈哈

参考文章:

003-漏洞梳理篇之php伪协议_伪协议漏洞-CSDN博客

buuctf-BSidesCF 2020Had a bad day(小宇特详解)-CSDN博客

BUUOJ记录 BSidesCF 2020Had a bad day - Ye'sBlog - 博客园 (cnblogs.com)

BSidesCF 2020Had a bad day_mb5fdcad8719a20的技术博客_51CTO博客

相关推荐
_李小白4 小时前
【android opencv学习笔记】Day 28: 滤波算法之中值滤波器
android·opencv·学习
代龙涛6 小时前
WordPress page.php 页面模板与自定义模板使用方法
android·开发语言·php
爱莉希雅&&&7 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
zfoo-framework9 小时前
理解kotlin limitedParallelism(1)与Actor模型
android·开发语言·kotlin
2401_8657213311 小时前
御网杯初赛2026
android
葱段11 小时前
【Compose】输入框(TextField)点击空白处失焦并关闭软键盘
android
刮风那天13 小时前
Android Framework 核心架构图
android
__Witheart__13 小时前
3588 安卓编译空间不足报错
android
aaajj14 小时前
【Android】手机屏幕劫持防护
android·智能手机
写做四月一日的四月一日14 小时前
在安卓手机上安装小龙虾openclaw并配置QQ机器人接入
android·人工智能