Ereg()

ereg有两个漏洞

%00截断及遇到%00则默认为字符串的结束 当ntf为数组时它的返回值不是FALSE

例题:

<?php
if (isset ($_GET['nctf'])) {
         if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)
             echo '必须输入数字才行';
         else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)   
             die('Flag: '.$flag);
         else
             echo '骚年,继续努力吧啊~';
     }
?>  
解:

令nctf=1%00%23biubiubiu 令nctf为数组则,nctf[]=111