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