文件上传小结

 

1.00截断上传:

  截断的核心在于chr(0)这个字符,这个函数表示返回以数值表达式值为编码的字符,举个例,print chr(78) 结果是N,所以char(0)表示的ascll字符是null,当程序输出包含chr(0)变量时,chr(0)后面的数据会被截断,后面的数据直接忽略,导致漏洞产生。

假设上传后端代码如下:

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可识别的扩展名为止。

 3.iis6.0解析漏洞

①:文件目录.asp,.asa,.cer下的文件都会被当作asp文件解析

②:文件名中若含有asp则作为asp文件解析,例如shell.asp;.jpg

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

posted @ 2017-08-08 16:48  tr1ple  阅读(275)  评论(0编辑  收藏  举报