1.直接上传asp.asa.jsp.cer.php.aspx.htr.cdx….之类的马,拿到shell.
2.截断组合(逻辑漏洞)
00截断,(很多写文件的地方进行尝试),IIS6以及6以下版本,php版本5.3.4以下
长文件名截断
系统文件路径长度限制:
windows 259个bytes
linux 4096个bytes
lfi.php?action=password..............................................................................................................................................................................................................................................`
注意路径奇偶长度
../表示上一层目录
./表示当前目录
/单独使用不能表示当前目录,只用xx/这样才能表示xx这个目录
3.后缀名
a.在上传时在后缀后面加空格或者加几点,例:*.asp ,*.asp..
b.Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。如test.php.qwe.asd ,“.qwe”和”.asd” 这两种后缀是apache不可识别解析的,apache就会把test.php.qwe.asd解析成php。
c.双扩展名解析绕过:
如果在 Apache 的 conf 里有这样一行配置
AddHandler php5-script .php
这时只要文件名里包含.php
即使文件名是 test2.php.jpg 也会以 php 来执行
4.配合文件包含
前提:校验规则只校验当文件后缀名为asp/php/jsp的文件内容是否为木马。
绕过方式:(这里拿php为例,此漏洞主要存在于PHP中)
(1)先上传一个内容为木马的txt后缀文件,因为后缀名的关系没有检验内容;
(2)然后再上传一个.php的文件,内容为<?php Include("上传的txt文件的路径")>
此时,这个php文件就会去引用txt文件的内容,从而绕过校验
5.垃圾数据
有些主机WAF软件为了不影响web服务器的性能,会对校验的用户数据设置大小上限,比如1M。此种情况可以构造一个大文件,前面1M的内容为垃圾内容,后面才是真正的木马内容,便可以绕过WAF对文件内容的校验;
6.post,Get
有些WAF的规则是:如果数据包为POST类型,则校验数据包内容。此种情况可以上传一个POST型的数据包,抓包将POST改为GET。