[BUUCTF][Zer0pts2020]Can you guess it?

    科技2022-07-11  98

    文章目录

    前置知识一些学到的新函数与新变量新变量属性-PHP_SELF新php函数-basenamebasename broken with non-ASCII-chars WP部分

    前置知识

    一些学到的新函数与新变量

    新变量属性-PHP_SELF

    $_SERVER['PHP_SELF'] 表示当前 php 文件相对于网站根目录的位置地址,与 document root 相关 下面是本地测试截图,也就是http://.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']

    新php函数-basename

    basename() 函数会返回路径中的文件名部分 假如路径是/index.php/config.php 浏览器的解析结果都是index.php 而basename会返回config.php 就算后面跟上多余的字符也会返回文件名部分

    basename broken with non-ASCII-chars

    下面是来自[官方网站](https://bugs.php.net/bug.php?id=62119)的英语描述

    With the default locale setting “C”, basename() drops non-ASCII-chars at the beginning of a filename.

    var_dump(basename("xffconfig.php")); // => config.php var_dump(basename("config.php/xff")); // => config.php

    简单来说basename()函数存在一个问题,它会去掉文件名开头的非ASCII值

    WP部分

    这道题其实很简单,知道了上面的函数了以后,代码审计以后其实最主要的部分就是正则过滤了/config.php/*$/i,我们只需要绕过它即可,道理也很简单 它是匹配尾部 因此我们只要构造xxxxx.node3.buuoj.cn/index.php/config.php/

    转载请注明原文地址:https://blackberry.8miu.com/read-2882.html
    最新回复(0)