nginx/1.18.0PHP/7.3.22

    1. <?php
    2. error_reporting(0);
    3. highlight_file(__FILE__);
    4. $url=$_POST['url'];
    5. $x=parse_url($url);
    6. if(preg_match('/^http:\/\/ctf\..*show$/i',$url)){
    7. echo file_get_contents($url);
    8. }

    分析,
    之前一直没分析到这个 parse_url 函数的特性,有些时候有的时候 URL 会长这样
    image.png
    解析时,会把@进行分割,前面是用户,后面是主机名。

    image.png
    flag
    ctfshow{1f49948a-492e-4a59-8d9b-f5b504535ae2}