php代码在线格式化工具1.解析文件上传漏洞与开发语言无关的区别!!notepad php代码格式化
2022-09-11
概述
文件上传漏洞是指用户上传可执行脚本文件,并通过该脚本文件获得执行服务器端命令的能力。一个常见的场景是web服务器允许用户上传图片或保存普通文本文件,用户绕过上传机制上传恶意代码并执行控制服务器。
需要注意的是,上传文件本身是没有问题的。问题是文件上传到服务器后php代码在线格式化工具,服务器如何处理和解释文件。
这种攻击方式是最直接有效的。如果服务器的处理逻辑不够安全,将会导致严重的后果。
2 文件上传引起的常见安全问题
上传的文件是一种网络脚本语言。服务端的web容器对用户上传的脚本进行解释执行,从而导致代码执行。
上传的文件是策略文件.xml,被黑客用来控制本域下的行为
(类似于其他以类似方式控制策略文件的情况);
上传的文件是病毒或木马文件,黑客用来诱骗用户或管理员下载并执行。
上传的文件是钓鱼图片或包含脚本的图片,在某些版本的浏览器中作为脚本执行,用于钓鱼和欺诈。
要完成本次攻击,必须满足以下条件:
首先,上传的文件可以被 web 容器解释和执行。所以上传文件的目录应该是web容器覆盖的路径。
其次,用户可以从 Web 访问文件。如果文件上传了,但用户无法通过网络访问,或者无法让网络容器解释脚本,则不能称为漏洞。
最后,如果用户上传的文件内容被安全检查、格式化、图片压缩等功能改变,攻击也可能失败。
三举两例
前面说了很多web安全攻防的测试范围都是基于php服务器的,所以例子也是基于.php文件的。此漏洞与开发语言无关。
1.解析漏洞
漏洞原理:
默认支持CGI(服务器运行php文件的接口协议)形式的PHP解析。通常的做法是通过配置文件中的正则匹配来设置。访问这个URL时网站优化,$会被设置为“info.jpg/test.php”,然后构造传递给PHP CGI,最后PHP会将info.jpg解析为PHP文件,为什么?
这是关于这个选项的。这是 php 配置文件中的一个关键选项。默认情况下启用。如果启用此选项,将触发 PHP 中的以下逻辑:
PHP 会认为是 info.jpg,而 test.php 是,所以 info.jpg 会被解析为 PHP 文件
PHP官方推荐将参数设置为0,对这个bug的态度是否定的。
漏洞文件如下所示:
%20\0.php
另一种方法:上传一个名为test.jpg的文件,然后访问test.jpg/.php,就会在这个目录下生成一句 .php。
2.解析漏洞
漏洞原理
.x 以前的版本解析文件的规则是从右到左判断和解析。如果后缀名是无法识别的文件解析,会向左判断,直到遇到识别的文件类型。比如test.php.rar,其中“.rar”这两个后缀是无法识别和解析的,.php.rar会被解析成php,然后就认为是.php类型的文件了。至于哪些文件可以识别?这些文件类型定义可在 mime. 文件中找到。
漏洞文件名是这样的
1
这个功能
,很多工程师不知道什么时候写应用,写的安全检查可能有漏洞。例如,.rar 文件是合法的上传请求。在应用程序中判断文件后缀是否为.rar。用户上传的文件是xxxx.php.rar.rar,导致脚本执行。
3. 攻击测试步骤
这个场景非常巧妙。首先假设有一个单句木马文件,上传的时候可能会被破坏网站开发,所以需要把这个木马文件转换成图片木马(比如生成cmd命令,打开二进制文本,然后添加木马命令。等几种方法很容易),图片马是图片格式,所以很容易上传成功。另外,被攻击的服务器存在文件上传漏洞,可以用中国菜刀或蚂蚁剑(管理工具)进行测试。
四种常见的防御方法
1.文件上传目录设置为不可执行
只要web容器无法解析该目录下的文件,即使攻击者上传脚本文件,服务器本身也不会受到影响。在实际应用中,很多大型网站或系统文件都被上传到独立的存储服务器上进行静态文件处理。一方面方便使用缓存加速,减少性能损失,另一方面也消除了脚本执行的可能。对于一些小型应用,文件上传问题还是需要多加注意的。
2.确定文件类型
在判断文件类型时php代码在线格式化工具,可以结合使用MIME Type、后缀检查等。用于验证上传文件的后缀是否合法。浏览加载的文件时,不点击上传按钮,会弹出一个对话框。推荐使用白名单方式。文件。
注意:黑名单方法在验证文件后缀时不是一个好的设计方法,很容易被跳过。
进一步
此外,对于图像处理,可以使用压缩函数或函数来破坏图像中可能包含的 HTML 代码。
3.用随机数重写文件名
文件上传 如果要执行代码,用户需要有权访问文件。如果在应用程序中用随机数重写文件名和路径,将大大增加攻击的成本。同时上面的xxxx.php.rar.rar等文件也会被重写,攻击不会成功。
4.单独设置文件服务器的域名
由于浏览器的同源策略,会导致一系列客户端攻击失败,例如上传中包含XSS漏洞等,但是否可以单独设置域名取决于具体的业务环境。
五个总结
文件上传往往与代码执行相关联,所以业务中使用的上传功能要经过安全工程师的严格检查。
文件上传的问题看似简单,但要实现一个安全的上传功能,要考虑很多问题,根据业务需要不断发现问题,改进,才能设计出最合理的上传功能。
——————————————————
版权声明:本文为CSDN博主“举杯庆祝”原创文章,遵循CC4.0 BY-SA版权协议。转载请附上原文出处链接和本声明。
原文链接: