PHP供给了escapeshellcmd()和escapeshellarg()函数用来过滤用户的输入,防止恶意进击者履行其他的体系敕令或参数。直不雅来讲,下面的PHP语句看起来很安然,并且防止了-param1参数的中断:
在很多实际世界的应用法度榜样中,有很多因为mail()函数的第五个参数应用欠妥激发的安然问题。比来发明以下广受存眷的PHP应用法度榜样受到词攀类马脚的影响(多半漏洞竽暌股Dawid Golunski发明)。
然而,当此法度榜样有其他可应用参数时,那么这行代码就是不安然的。进击者可以经由过程注入"foobar' -param2 payload "来冲破-param1参数的限制。当用户的输入经由两个escapeshell*函数的处理,以下字符串将达到system()函数。
- ./program -param1 'foobar'\\'' -param2 payload \'
大年夜最终体系履行的敕令可以看出,两个嵌套的转义函数混淆了引用处许可附加另一个参数param2。
PHP的mail()函数在内部应用escapeshellcmd()函数过滤传入的参数,以防止敕令注入进击。这恰是为什么escapeshellarg()函数不会阻拦mail()函数的第5个参数的进击。Roundcube和PHPMailer的开辟人员率先宣布了针对该马脚的补丁。
六、为什么FILTER_VALIDATE_EMAIL是不安然的?
另一种直接的办法是应用PHP的电子邮件过滤器(email filter),以确保在mail()函数的第5个参数中只应用有效的电子邮件地址。
- filter_var($email, FILTER_VALIDATE_EMAIL)
然则,并不是所有可能存在安然问题的字符串都邑被该过滤器过滤。它许可应用嵌入双引号的转义的空格。
因为函数底层实现正则表达式的原因,filter_var()没有对输入精确的过滤,导致构造的payload被带入履行。
- 'a."'\ -OQueueDirectory=\%0D<?=eval($_GET[c])?>\ -X/var/www/html/"@a.php
事实上,当把用户的输入作为shell指令履行时,没有什么办法可以包管体系的安然性,切切不要去考验你的命运运限。
对于上文给出的url编码输入,filter_var()函数返回true,将该payload辨认为有效的邮件格局。
- <?=eval($_GET[c])?>\/): No such file or directory
切记,filter_var()不合实用于对用户输入内容的过滤,因为它对部分字符串的验证是不严格的。
七、若何安然的应用mail()函数
细心分析应用法度榜样中传入mail()函数的参数,知足以下前提:
1. $to 除非可以预期用户的输入内容,不然不直接应用用户输入
2. $subject 可以安然的应用
3. $message 可以安然的应用
4. $additional_headers 过滤\r、\n字符
5. $additional_parameters 禁止用户输入
如不雅在开辟您的应用法度榜样过程中第5个参数必定要由用户控制,你可以应用电子邮件过滤器(email filter)将用户输入的┞俘当数据限制为最小字符集,即使它违背了RFC合规性。我们建议不要信赖任何转义或引用法度榜样,因为据汗青材料表示这些功能是存在安然问题的,特别是在不合情况中应用时,可能还会裸露出其他安然隐患。Paul Buonopane研究出了另一种办法去解决这个问题,可以在这里找到。
八、总结
很多PHP应用法度榜样都有向其用户发送电子邮件的功能,例如提示和通知。固然电子邮件头注入是众所周知的安然问题,然则当开辟人员应用mail()函数时,往往会忽视不合法的应用有可能导致长途敕令履行马脚。在这篇文┞仿中,我们重要分析了mail()函数的第5个参数应用欠妥可能存在的安然风险,以及若何防备这种问题,防止办事器受到进击。
【编辑推荐】
- 若何应用加密的Payload来辨认并应用SQL注入马脚
- 我若何应用Cloud Fuzzing挖到了一个tcpdump马脚
- 基于BLE的IoT智能灯胆的安然马脚应用
- 卑躬屈膝“上报”多年的Intel严重马脚,到如今才修复!
- WordPress曝未经授权的暗码重置马脚(CVE-2017-8295 )
推荐阅读
一、False Injection起首我们常见的注入11=1 0<1 ''='' 三、END这些都是基于1=1如许的值得比较的通俗注入,下面来说说关于False注入,应用False我们可以绕过一些特定的WAF以及一些将来不肯>>>详细阅读
本文标题:在PHP应用程序开发中不正当使用mail()函数引发的血案
地址:http://www.17bianji.com/lsqh/35046.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示