<?php

#flag in http://192.168.7.68/flag
if(isset($_GET['url'])){
    $url = $_GET['url'];
    $protocol = substr($url, 0,7);
    if($protocol!='http://'){
        die('仅限http协议访问');
    }
    if(preg_match('/\.|\;|\||\<|\>|\*|\%|\^|\(|\)|\#|\@|\!|\`|\~|\+|\'|\"|\.|\,|\?|\[|\]|\{|\}|\!|\&|\$|0/', $url)){
        die('仅限域名地址访问');
    }
    system('curl '.$url);
}

分析代码得知:

⚪必须以get形式传入$url

⚪$url的前七位必须是http://

⚪$url的值必须是http://192.168.7.68/flag

想到可以对ip进行进制转换:

: (非常不凑巧preg_match过滤了0。

后来查找资料学到了一个知识点,“.”可以用“。”进行代替:

http://192。168。7。68/flag

⚪参考:

https://www.jianshu.com/p/b9b32bfc1bab