文件上傳小結

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章