文件上傳小結

 

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

相關文章
相關標籤/搜索