filter_var函数缺陷

今天学习了一下PHP中filter_var()函数漏洞,来写下自己的第一篇博客,记录一下自己的菜鸟时光。


首先看看filter_var吧:
filter_var: (PHP 5 >= 5.2.0, PHP 7)
功能 :使用特定的过滤器过滤一个变量
定义 :`mixed filter_var ( mixed$variable [, int $filter = FILTER_DEFAULT [, mixed$options ]] )`

常用的过滤器有:
FILTER_SANITIZE_EMAIL:删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_{|}~@.[]
FILTER_SANITIZE_URL:删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\\^~[]<>#%";/?:@&=

网上找了道CTF练习题,是红日安全的PHP代码审计中的Day2,题目如下:

// index.php

You have curl {$site_info['host']} successfully!