`
txf2004
  • 浏览: 7041925 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP下ereg实现匹配ip的正则

 
阅读更多
<script type="text/javascript"><!-- google_ad_client = "pub-4490194096475053"; /* 内容页,300x250,第一屏 */ google_ad_slot = "3685991503"; google_ad_width = 300; google_ad_height = 250; // --></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

$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 /2 n+ Y6 |; Z7 O
6 e& b6 C5 F- W- F$ z我们在利用时必须要引入/x00(%00),而在GPC为ON的情况下%00会被转义导致无法利用。但是如果被ereg()处理的是$ _SERVER(在PHP5下可以绕过GPC)或是被urldecode这样的函数处理导致GPC被绕过的数据呢?比如有些程序就用上面的方法验证$ _SERVER提交上来的IP,那么我们就可以利用NULL截断绕过正则过滤来构造我们需要的数据了:)

分享到:
评论

相关推荐

    php正则表达式

    - **模式匹配**:可以快速找出文本中的特定模式,如日期格式、IP地址等。 #### 三、PHP中的正则表达式 PHP支持两种类型的正则表达式:Perl兼容正则表达式(PCRE)和POSIX兼容正则表达式。 1. **Perl兼容正则...

    正则表达式实例 网页前端开发

    `getQQ` 函数利用 `ereg`(正则表达式匹配函数)从文本中提取5-9位的数字,即QQ号。`([0-9]{5,9})` 匹配5到9个连续的数字。 3. **解析HTML中的标签**: 通过正则表达式 `/(.+?)&gt;/is`,可以找到所有 `img` 标签...

    封IP的脚本

    函数的主要任务是通过正则表达式验证这些参数是否符合IPv4地址的格式,并进一步比较客户端IP地址与预设的IP模式和掩码是否匹配,以决定是否封锁该IP。 #### 3. IP模式与掩码的理解 - **IP模式**:指的是用于匹配的...

    PHP采集程序大全 菜鸟必看 包含思路 小偷程序

    - **正则调试**:使用`preg_quote`和`ereg`系列函数进行正则测试和优化。 4. **DOM解析与XPath/CSS选择器** - **DOMDocument**:PHP提供的DOM解析器,用于加载HTML或XML文档并进行操作。 - **XPath**:基于路径...

    PHP工程师面试笔试真题(某知名手机制造商)-附解析.doc

    - `ereg_replace`函数是PHP中的正则替换函数,但在PHP 7中已被弃用。题目中的代码段涉及了字符串替换,但具体输出结果需要根据正则表达式的匹配和替换规则来分析,此处不做详细解答。 3. PHP面向对象相关: - `...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP的先进之处 应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度...

    [PHP]实用函数2

    `ereg()`是PHP的正则匹配函数,用于匹配字符串。 5. 分页 ```php function getpage($sql, $page_size=20) { // ... } function showPage($totalpage, $page, $url, $page_size=20) { // ... } ``` 这两个函数...

    php实现从ftp服务器上下载文件树到本地电脑的程序

    在示例代码中,还涉及到PHP的ereg和ereg_replace函数,它们用于字符串的模式匹配和替换,但因为ereg函数已被废弃,建议使用preg_match和preg_replace替代。 在程序的执行流程上,首先定义了download_file函数,该...

    一些使用频率比较高的php函数

    checkemail($inaddress)函数利用正则表达式来匹配邮箱地址的格式,从而验证邮箱地址是否符合标准格式。 ```php function checkEmail($inaddress){ return(ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_...

Global site tag (gtag.js) - Google Analytics