LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > 安全 >

文件上传安全测试方法

时间:2013-12-04 17:23来源:tmalltesting 编辑:tmalltesting 点击:
非正常图片的特点:在windows缩略图状态下查看; 不同浏览器对图片文件的解析方式不同: Firefox会先按照文件扩展名来解析,而IE会先按照文件内容来解析,因此,当图片头部带有恶意
非正常图片的特点:在windows缩略图状态下查看;

不同浏览器对图片文件的解析方式不同:

Firefox会先按照文件扩展名来解析,而IE会先按照文件内容来解析,因此,当图片头部带有恶意代码时,通常IE6都会进行执行;

图片文件结构:将恶意代码放到文件头的部分是攻击最有效的做法;

一般的图像文件结构主要都包含有文件头、文件体和文件尾等三部分:

文件头的主要内容包括产生或编辑该图像文件的软件的信息以及图像本身的参数。这些参数必须完整地描述图像数据的所有特征,因此是图像文件中的关键数据。当然,根据不同的文件,有的参数是可选的,如压缩算法,有的文件无压缩,有的文件可选择多种方法压缩。

文件体主要包括图像数据以及颜色变换查找表或调色板数据。这部分是文件的主体,对文件容量的大小起决定作用。如果是真彩色图像,则无颜色变换查找表或调色板数据,对于256色的调色板,每种颜色值用24 bit表示,则调色板的数据长度为256×3(Byte)。

文件尾可包含一些用户信息。文件尾是可选项,有的文件格式不包括这部分内容。由于文件体数据量较之文件头与文件尾要大得多,而文件体中颜色变换表或调色板所占用的空间一般也比图像数据小得多,因此图像文件的容量一般能够表示图像数据的容量(压缩或无压缩)。

怎样制作含有恶意代码的图片:
1)  在文件最前面加入’”><script>alert(1)</script><”
2)  Cmd 下 >copy succ.jpg /b + safRegex.txt /a ttt.jpg——将safRegex.txt的内容加到succ.jpg的最后面,然后生成ttt.jpg

怎样防范恶意图片上传:上传时做压缩处理,能做压缩的就是正常图片,否则就是不正常图片,不能只通过检查文件头是否为图片做标准,因为文件体中也有可能存在可执行的恶意代码;
图片上传的安全测试方法:用王挺提供的两种非正常图片(url.jpg,T1a.lbXixMXXb1upjX.jpg),如果能够上传成功,就一定存在文件上传漏洞;
上传excel文件的安全测试方法:

excel文件->crm后台->DB->系统展示数据:在字符类型单元格中放入script脚本,然后看系统在最终展示数据时是否会做html编码(不是在录入的时候处理);

excel文件->TFS->crm后台系统附件->用户保存到本地->通过office双击打开:在excel中嵌入宏病毒,触发执行;处理方式是在TFS上对文件进行病毒扫描;

Flash的安全扫描工具

Flash文件中可能会嵌入Asp的代码从而产生破坏,所以,要将上传的flash文件存放到不同的域当中(基于同源策略,这样flash中的恶意代码就拿不到系统的相关信息了)

对于远程显示的flash播放,要在页面属性中“有时”和“从不”,永远不要选择“总是”;

文件上传的安全体系:白名单+hash()+图片内容压缩;

上传的地方应过滤掉.jsp;.php;.asp类型的文件,可以通过白名单,黑名单和hash(文件名).(白名单)的方式存于服务器上;

Nigix和apache也有自己的MIME,当它遇到文件最后的那个扩展名无法进行解析的时候,就会寻找倒数第二个扩展名,因此一些恶意文件会利用这点(*.php.2222),这样恶意文件就有可能被执行;
原文:http://tmalltesting.com/archives/735

转载请保留固定链接: https://linuxeye.com/security/1979.html

------分隔线----------------------------
标签:安全
栏目列表
推荐内容