时间:2021-05-26
我们先看个代码片段:
复制代码 代码如下:
$ip="1.1.1.255".chr(0)."haha";
if(ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)){
echo$ip;
}else{
echo"unknown";
}
这个ereg正则限制了$ip的数据为xxx.xxx.xxx.xxx这样的形式,表面上看上面的代码应该输出"unknown",而实际却输出了"1.1.1.255haha",因为ereg函数存在NULL截断漏洞,导致了正则过滤被绕过。4\2n+Y6|;Z7O
6e&b6C5F-W-F$z我们在利用时必须要引入\x00(%00),而在GPC为ON的情况下%00会被转义导致无法利用。但是如果被ereg()处理的是$_SERVER(在PHP5下可以绕过GPC)或是被urldecode这样的函数处理导致GPC被绕过的数据呢?比如有些程序就用上面的方法验证$_SERVER提交上来的IP,那么我们就可以利用NULL截断绕过正则过滤来构造我们需要的数据了:)
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了php中正则替换函数ereg_replace用法。分享给大家供大家参考。具体如下:下面的实例是利用php正则替换函数ereg_replace来把指
本文实例讲述了php使用ereg验证文件上传的方法。分享给大家供大家参考。具体分析如下:ereg格式如下:复制代码代码如下:ereg(正规表达式,字符串,[匹配
在php5.3被放弃的函数有:ereg();//直接用mb_ereg代替,或是preg_match代替,但是匹配规则需要用/包括起来eregi();//preg
正则表达式在PHP中的应用在PHP应用中,正则表达式主要用于:•正则匹配:根据正则表达式匹配相应的内容•正则替换:根据正则表达式匹配内容
本文实例讲述了PHP简单实现正则匹配省市区的方法。分享给大家供大家参考,具体如下:省市区正则匹配复制代码代码如下:preg_match('/(.*?(省