Web应用站点具有文件上传功能,如文档,图片,头像,视频上传。如果上载函数的实现代码没有严格地检查上载文件的后缀和文件类型,那么cache就会把webshell上载到web可访问的目录,并把恶意文件传递给PHP解释程序执行。恶意代码可以被执行到服务器上的数据库执行,服务器文件管理,服务器命令执行,以及其他恶意操作。还包括通过Web服务器上的解析漏洞攻击Web应用的安全漏洞。
文件上传的旁路处理方法。
一、客户端JavaScript检查
通常的客户机检测只会在JavaScript代码中添加扩展名为“黑白”的列表检查,这样只能防止一些普通用户上传错误,上传文件时使用Burpsuite截断并更改文件后缀。
2.服务器探测
A.MIME类型检验。
检查Content-Tyhouse的值,MIME类型决定打开某个扩展的应用,而GIF的MIME值是ima/gif。
文件扩展名的核对工作。
与前端js后缀检测类似,后端检查有时也可以结合解析漏洞和test.asp/test.jpg.黑名单和白名单这类目录路径攻击。
黑名单检查旁路:
大小写字母把文件名分开了。在示例代码中,如果存在php规则,则可以通过pHP或PHP进行绕过。
“黑名单”列表将绕过并攻击黑名单列表中没有的扩展,例如“asa”和“cer”。
使用wys和Linux系统的特性,例如a.asp,绕过特殊的文件名。a.asp_
文件攻击的攻击目标。
协作解决漏洞(IIS、Apache等)。
白色清单的旁边:
像a.asp%00.gif这样的截断攻击。
协同处理漏洞
检查一下目录路径。
0x00截断可以忽略目录路径。控制目录地址和上载文件夹所需的参数)
检测文件内容中是否包含恶意代码。
这主要是检查图片文件中的幻数。例如,GIF的值是GIF89a,后端代码检测并更改该值,以确定是否为GIF图片文件。若要绕过这个问题,只需在幻数后加上一个木马字。
一、消除漏洞。
F.1IIS分析漏洞
在IIS6.0中,有两个解析文件的漏洞:
当创建文件夹为*格式时。sa或*它的目录中的所有文件都由IIS服务器解析为asp文件。
对于IIS6.0,分号后的扩展名将无法解析,即文件名为*时。aspIIS6.0还以ASP脚本的形式执行jpg。
F-2Apache分析漏洞
解析漏洞在Apache1.x和Apache2.x中都存在,但是在IIS中不一样。
在Apache解析文件中有一个规则:当遇到未知的扩展名时,将从后面进行解析,直到遇到一个已知的扩展名位置。假如不知道,源代码就会暴露出来。例如,当文件名为php.rar.xx.aa时,Apache首先解析aa扩展名,如果不知道,则解析xx扩展名,以便遍历已知扩展名,然后再进行解析。