首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP filter_var 函数绕过

PHP filter_var 函数绕过 今天在日报看到了有关PHP函数绕过的文章就去学习了一下,但是有点尴尬的是文章是纯英文的直接翻译有很多地方会导致理解出问题,所以最后硬着头皮通过看原文学习, 所以这也可以说是一个简单的翻译文章吧...---- 关于filter_var函数 在官方文档中的介绍: 大概就是可以使用php内置的一些过滤器对字符串进行检验, 起初我看官方文档和一些代码示例也还是挺懵的, 不过了解了第二个filter参数之后对这个函数的了解就简单很多了..., 第二个参数就是指定一个内置的过滤器, 过滤器 ID 可以是 ID 名称(比如 FILTER_VALIDATE_EMAIL)或 ID 号(比如 274), 如果没设置的话默认使用字符串过滤器FILTER_SANITIZE_STRING...过滤标志 在filter中我们一般是使用Sanitize filters ,以下是一部分内容可供参考(见名知意了已经) 第三个参数options是一个可选项,用于规定一个包含标志/...正如我们所看到的,这仅在以下情况下才会进行检验: s小于 e。 简单来说:如果使用 PHP 的 filter_var函数和传递给函数的值太长,和参数 l然后包装为零,将不执行检查。

95430

PHP代码审计02之filter_var()函数缺陷

> 这一关用的是PHP的一个模板引擎Twig,考察的是XSS漏洞,也就是跨站脚本攻击。虽然程序使用了escape和filter_var()两个过滤方法,但是。还是可以被绕过的。...下面我们看第一处过滤,在上面代码的第10行,使用Twig模板引擎定义的escape过滤器来过滤link。...php $url = $_GET['url']; //检查是否是合法的URL if (isset($url)&&filter_var($url,FILTER_VALIDATE_URL...而上面我们分析了,可以使用伪协议来绕过filter_var的检查,至于正则判断,只要我们结尾包含test.com,就绕过了正则检查。...,发现flag.php,然后用cat命令来查看文件,拿到flag,这里需要注意的是,如果直接使用cat是会包含空格的,这样无法绕过filter_var()函数的过滤,所以用<代替空格。

2.4K42
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP代码审计Day2 - filter_var函数缺陷

    在上图 第8行 中,程序使用 Twig 模板引擎定义的 escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的,具体可以点击...第17行 ,这里用了 filter_var 函数来过滤 nextSlide 变量,且用了 FILTER_VALIDATE_URL 过滤器来判断是否是一个合法的url,具体的 filter_var 定义如下...: filter_var : (PHP 5 >= 5.2.0, PHP 7) 功能 :使用特定的过滤器过滤一个变量 定义 :mixed filter_var ( mixed $variable [, int...$filter = FILTER_DEFAULT [, mixed $options ]] ) 针对这两处的过滤,我们可以考虑使用 javascript伪协议 来绕过。...结语 看完了上述分析,不知道大家是否对 filter_var 函数绕过有了更加深入的理解,文中用到的CMS可以从 https://github.com/anchorcms/anchor-cms/releases

    1.4K20

    由filter_var()函数引起的技术探讨

    函数的功能并不复杂,关键点在于两个过滤函数: twig的escape过滤器 filter_var()的URL判断 对于twig的escape过滤器,可以见官网的说明: escape uses the PHP...其实也就是将htmlspecialchars包装到了escape的过滤器中,换了个使用方式,真正起作用的,还是htmlspecialchars函数 htmlspecialchars(string,flags...将获取的nextSlide值传入filter_var()函数中,然后判断其是否符合URL的相关规则。...., 0) 也可以被转换为RETVAL_STRING(...);efree(...); 两者的区别就在于这里的string是否被重新分配。 那么是什么导致了同样的payload结果不同呢?...) 有兴趣的朋友可以自己去试一试看,到底是否是因为MySQL的版本问题导致出现结果不同,还是因为其他原因。我这里由于时间问题就不继续研究了。

    1.4K20

    代码审计Day2 - filter_var函数缺陷

    在上图 第8行 中,程序使用 Twig 模板引擎定义的 escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的,具体可以点击...第17行 ,这里用了 filter_var 函数来过滤 nextSlide 变量,且用了 FILTER_VALIDATE_URL 过滤器来判断是否是一个合法的url,具体的 filter_var 定义如下...: filter_var : (PHP 5 >= 5.2.0, PHP 7) 功能 :使用特定的过滤器过滤一个变量 定义 :mixed filter_var ( mixed $variable [, int...$filter = FILTER_DEFAULT [, mixed $options ]] ) 针对这两处的过滤,我们可以考虑使用 javascript伪协议 来绕过。...,具体防护代码如下: 结语 看完了上述分析,不知道大家是否对 filter_var 函数绕过有了更加深入的理解,文中用到的CMS可以从 这里 下载,当然文中若有不当之处,还望各位斧正。

    1.1K00

    filter_var函数缺陷

    在上图 第8行 中,程序使用 Twig 模板引擎定义的 escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的,具体可以点击...第17行 ,这里用了 filter_var 函数来过滤 nextSlide 变量,且用了 FILTER_VALIDATE_URL 过滤器来判断是否是一个合法的url,具体的 filter_var 定义如下...: filter_var : (PHP 5 >= 5.2.0, PHP 7) 功能 :使用特定的过滤器过滤一个变量 定义 :mixed filter_var ( mixed $variable [, int...$filter = FILTER_DEFAULT [, mixed $options ]] ) 针对这两处的过滤,我们可以考虑使用 javascript伪协议 来绕过。...结语 看完了上述分析,不知道大家是否对 filter_var 函数绕过有了更加深入的理解,文中用到的CMS可以从 https://github.com/anchorcms/anchor-cms/releases

    77630

    看代码学渗透 Day5 - escapeshellarg与escapeshellcmd使用不当

    我们先了解一下 filter_var() 函数的定义: filter_var :使用特定的过滤器过滤一个变量 mixed filter_var ( mixed $variable [, int $filter...关于 filter_var() 中 FILTER_VALIDATE_EMAIL 这个选项作用,我们可以看看这个帖子 PHP FILTER_VALIDATE_EMAIL 。...那我们前面说过了PHP的 mail() 函数在底层调用了 escapeshellcmd() 函数对用户输入的邮箱地址进行处理,即使我们使用带有特殊字符的payload,绕过 filter_var() 的检测...在上图第12行处没有对 $params 变量进行严格过滤,只是简单地判断是否为 null ,所以可以直接传入命令。...结语 看完了上述分析,不知道大家是否对 escapeshellarg() 和 escapeshellcmd() 两个函数一起使用所产生的问题,有了更加深入的理解,文中用到的代码可以从 这里 下载,当然文中若有不当之处

    2K20

    PHP如何有效处理表单数据?从基础到进阶

    在网站开发中,表单是用户与网站互动的一个重要方式。无论是注册、登录还是留言板,表单数据的处理都是开发者需要掌握的基本技能。PHP作为服务器端脚本语言,提供了多种方法来有效处理表单数据。...本文将从基础到进阶,逐步解析PHP如何处理表单数据。基础:使用$_GET和$_POST获取表单数据PHP处理表单数据的步是获取用户输入。表单数据通常通过GET或POST方法提交到服务器。...中级:表单数据验证与过滤有效的表单数据处理不仅仅是获取数据,还要确保数据的安全性和有效性。PHP提供了丰富的验证与过滤函数,如filter_var()、preg_match()等。...>通过filter_var()函数,我们可以轻松地验证邮箱的格式是否合法,从而提高数据处理的准确性和安全性。高级:防止SQL注入与XSS攻击随着表单数据的复杂性增加,安全性变得尤为重要。...总结从基础的表单数据获取到中级的验证和过滤,再到高级的安全防护,PHP在处理表单数据时提供了强大的功能。

    12310

    对于 PHP 开发的 Web 应用,怎样有效地防止 SQL 注入攻击?

    使用预处理语句可以将查询中的参数作为占位符,再将实际的参数值与占位符进行绑定。这样可以确保用户输入的数据不会被错误地解析为 SQL 语句的一部分。...输入验证和过滤:对于用户输入的数据,进行有效的验证和过滤,确保只有合法的数据才能被用于构建 SQL 查询。...可以使用 PHP 中的过滤函数(例如:filter_var())来验证和过滤用户输入的数据。 使用准确的数据类型:在构建 SQL 查询时,确保使用正确的数据类型。...例如,如果一个字段应该是整数类型,确保在构建 SQL 查询时将用户输入的数据强制转换为整数类型。 限制数据库用户的权限:为数据库用户设置最小权限原则,确保数据库用户只有必要的权限来执行操作。...定期更新和升级:及时更新和升级使用的 PHP 框架和相关库的版本,以获取最新的安全修复和漏洞修复。 综上所述,通过采取以上安全措施,可以有效地防止 SQL 注入攻击,并提高 Web 应用的安全性。

    9810

    代码审计Day5 - escapeshellarg与escapeshellcmd使用不当

    我们先了解一下 filter_var() 函数的定义: filter_var :使用特定的过滤器过滤一个变量 mixed filter_var ( mixed $variable [, int $filter...关于 filter_var() 中 FILTER_VALIDATE_EMAIL 这个选项作用,我们可以看看这个帖子 PHP FILTER_VALIDATE_EMAIL 。...: 那我们前面说过了PHP的 mail() 函数在底层调用了 escapeshellcmd() 函数对用户输入的邮箱地址进行处理,即使我们使用带有特殊字符的payload,绕过 filter_var(...下面详细看一下代码,漏洞具体位置在 class.phpmailer.php 中,我们截取部分相关代码如下 : 在上图第12行处没有对 $params 变量进行严格过滤,只是简单地判断是否为 null...所以,在最新版本中使用之前的 payload 进行攻击会失败,例如: a( -OQueueDirectory=/tmp -X/var/www/html/x.php )@a.com 但是,却可以使用下面这个

    1K30

    PHP 后端表单验证和请求处理

    (使用 PHP 内置的 filter_var 方法进行过滤,该方法通过传入的第二个验证过滤器常量参数对变量值进行验证,还可以支持 IP、URL 等其他字符串格式的校验)、手机号符合正则匹配规则,如果验证不通过会抛出...这里,对于用户名和消息内容,我们还调用了 filter_var 方法,并在第二个参数传入「消毒」过滤器常量参数对其进行处理,以避免字符串中包含 HTML 标签,出现 XSS 攻击隐患。...因此,filter_var 函数可以根据传入的第二个参数标识进行不同的操作,既可以用于字段验证,也可以用作消毒处理,还可以通过回调函数进行额外的自定义操作,更多细节请参考 PHP 官方文档关于该函数的介绍...这里,我们可以借助之前在 PHP 错误和异常处理教程中介绍的全局异常处理器来捕获程序中抛出的所有未处理异常,进行兜底处理。...当然,这里还有可以优化的地方,比如,在请求数据验证失败后,返回提交的请求数据填充对应的输入框,以免用户重新输入。 访问数据库,在 messages 表中应该可以看到最新插入的记录: ?

    2.6K30

    PHP代码审计要点

    2、代码审计思路 1)逆向追踪 检查敏感函数的参数,然后回溯变量,判断变量是否可控并且没有经过严格过滤。...2)正向追踪 先找出哪些文件在接受外部传输的函数,然后跟踪变量传递的过程,观察是否有变量传入到高危函数里边,或者传递过程中是否有代码逻辑漏洞。这种正向追踪的方式,比逆向追踪挖掘得更全。.../test.php、test.php/.windows可以通过test.php:test test.ph<来绕过文件删除 此外发现还可以使用伪协议php://filter/resource=1.php在...、php中,变量的key值不受magic_quotes_gpc影响 sprintf()格式化漏洞(可以吃掉转义后的单引号) printf()和sprintf()函数中可以通过使用%接一个字符来进行...> 不过这样容易遇到 PHP Warning: sprintf(): Too few arguments的报错 这个时候我们可以使用%1$来吃掉转移添加的\ <?

    1.5K40

    PHP SECURITY CALENDAR Writeup

    needle ,如果第三个参数 strict 的值为 TRUE ,则 in_array() 函数会进行强检查,检查 needle 的类型是否和 haystack 中的相同。...此处的 $_FILES 是 PHP 中的超级全局变量,该数组包含有所有上传的文件信息,这里可本地做做实验。 payload 构造如下表单(嫌麻烦可以直接 Burp 提交) 过滤: filter_var ( mixed $variable [, int $filter=FILTER_DEFAULT[, mixed $options ]]) :mixed 题目代码中使用的是...想深入了解可以参考 ph 师傅的这篇文章,谈一谈php://filter的妙用 get_object_vars($this) 没有采取任何过滤,可直接写入 webshell。...// 本函数可以用你自己定义的方式来处理运行中的错误, 例如,在应用程序中严重错误发生时,或者在特定条件下触发了一个错误(使用 trigger_error()),你需要对数据/文件做清理回收。

    2.1K40

    ourphp 前台注册登入前台某用戶

    在client\user\index.php文件中有大量存在直接使用$_SESSION['username']带入数据库查询的操作 if($type=='car'){ $ourphp_rs=$db->...于client\user\ourphp_play.class.php文件中的有用户注册相关的函数 if($ourphp_rs[6] =='email'){ $userloginemail=$_POST[...没有找到比较直观的东西,但是这个FILTER_SANITIZE_EMAIL却可以作为一个参考。最后测试出该过滤器可允许!#$%&'*+-/=?...二.随后注册一个恶意用户1'/**/or/**/1=1#@qq.com,因为前台有js检测防护,所以需要在注册时关闭浏览器执行js (由于该cms的验证码也是在js中,所以这样也是可以进行绕过验证码进行爆破...2.据观察,有不少cms都有这样利用filter_var($userloginemail, FILTER_VALIDATE_EMAIL);来过滤检测邮箱,这会有潜在的风险,审计时大家可以留意。

    2.3K00

    modern php 笔记(第一次阅读)

    > 标签中 编码 所有的php文件都必须使用UTF-8字符集编码,且不能有字节顺序标记 目的 一个php文件可以定义符号(类、性状、函数和常量等),或者执行有副作用的操作(例:生成结果或处理数据),...用户资料信息 php filter_var() 和 filter_input() 函数的参数能使用不同的标志,过滤不同的类型的输入:电子邮件地址、url编码字符串、整数、浮点数、HTML字符、url和特定范围内的...使用password_verify()函数 在登录之前一定要检查用户记录中现有的密码哈希值是否过期,如果过期了需要重新计算密码的hash值 password_needs_rehash() 函数检查用户记录中现有的密码的哈希值是否需要更新...调优 内存 php.ini 文件中的memory_limit选项设定单个php进程可以使用的系统内存最大值 可以使用Apache Bench 或 Seige 工具在类似生产环境的条件下对php应用做压力测试...静态类型和动态类型的之间的主要区别在于何时检查程序中的类型,以及如何测试程序使用的类型是否正确 静态语言通常都需要编译 在运行时才会检查程序中的类型 hack的模式 strict 严格模式 partial

    1.3K20

    PHP 之道笔记整理:最佳实践与安全指南

    在这篇文章中,我们将以简明易懂的语言探讨 PHP 最佳实践中的一些关键主题,包括使用当前稳定版本、日期和时间处理、UTF-8 编码以及确保 Web 应用程序的安全。...日期和时间在 PHP 开发中,经常需要处理日期和时间。PHP 的 DateTime 类提供了一个面向对象的接口,让日期和时间的读取、写入、比较和计算变得更加简单。...尽管 PHP 底层还未完全支持 Unicode,但我们可以通过使用 UTF-8 编码来处理大多数的字符编码需求。1....在使用之前应对其进行过滤和验证。filter_var() 和 filter_input() 函数可用于过滤文本并进行格式校验。...始终保持对最新版本的关注,采用最佳实践和安全措施,可以让我们构建更高效、更安全的 Web 应用。希望这篇笔记整理能够帮助你回顾和掌握 PHP 开发的关键知识点。

    17110
    领券