1.00截断上传:php
截断的核心在于chr(0)这个字符,这个函数表示返回以数值表达式值为编码的字符,举个例,print chr(78) 结果是N,因此char(0)表示的ascll字符是null,当程序输出包含chr(0)变量时,chr(0)后面的数据会被截断,后面的数据直接忽略,致使漏洞产生。html
假设上传后端代码以下:shell
1 <?php 2 $path="upfiles/picture/" 3 $file="XXX.jpg" 4 $upfilename=path & file '最后的上传地址 5 php>
则通过截断上传经过在容许上传的文件后缀名前加上空格并在burp种将其hex值变为00后端
则通过chr()函数后会变为空则其后的部分都不会被解析。函数
2.Apache1.X 2.X解析漏洞:编码
Apache在以上版本中,解析文件名的方式是从后向前识别扩展名,直到碰见Apache可识别的扩展名为止。spa
3.iis6.0解析漏洞code
①:文件目录.asp,.asa,.cer下的文件都会被看成asp文件解析htm
②:文件名中若含有asp则做为asp文件解析,例如shell.asp;.jpgblog
4.Nginx解析漏洞:
以上Nginx容器的版本下,上传一个在waf白名单以内扩展名的文件shell.jpg,而后以shell.jpg.php进行请求。
以上Nginx容器的版本下,上传一个在waf白名单以内扩展名的文件shell.jpg,而后以shell.jpg%20.php进行请求。
5.PHP CGI解析漏洞:
以上的容器版本中默认php配置文件cgi.fix_pathinfo=1时,上传一个存在于白名单的扩展名文件shell.jpg,在请求时以shell.jpg/shell.php请求,会将shell.jpg以php来解析。
更多姿式参考:https://xianzhi.aliyun.com/forum/mobile/read/458.html