php常見的繞過方法
1. 前端繞過
1-1. js繞過:
- 通常的情況下,一些題目的首個阻礙點就是前端的認證。也就是js驗證的方式。
- 那么我們可以使用瀏覽器自帶的調試器的功能直接對前端認證的地方進行修改。比如直接刪除驗證點的代碼。這樣可以直接繞過驗證。或者使用瀏覽器的插件可以實現禁用js的功能。
- 2.或者我們可以使用修改可以上傳的文件的類型限制的方式實現繞過。有時我們遇到的題目可能會有相關的js代碼那么我們可以通過修改相關的代碼來添加我們需要上傳的文件類型。這樣可以直接上傳成功。
- 3.使用burpsuite的功能進行繞過。
我們通過burpsuite 的抓包的方式可以通過抓取上傳時的信息,在burpsuite中進行修改文件的后綴。
比如我們可以偽裝成jpg文件或者gif文件進行繞過。
通過以上的幾種方式我們可以進行基礎的繞過。可以基本應對基本的題目。
2. 后端繞過
2-1. 后端檢測content_type:
有的時候php使用的檢測方式是檢測content_type,我們上傳一個php文件的時 候,通過burpsuite 的抓包的方式可以看到我們的content_type為application/octet_stream。我們只需要更改我們的.jpg后綴的conten_type為image/jpeg。
之后我們進行發包可以看到我們繞過了基於content-type的檢測機制。
2-2. 后端檢測文件內容。
有的時候我們只是簡簡單單的使用之前的幾種方法只是可以繞過一些基礎的題目。而有些題目的后端檢測會更加嚴格。比如有的會檢測文件的文件頭內容。比如我們使用的一句話木馬可能會因為這一機制被檢測出來不符合安全規定。那么這時候我們需要給我們的文件加入相應的文件頭進行欺騙。比如我們可以在文件頭加入“GIF89a”的gif特征文件頭這樣后端的檢測機制會檢測我們的文件頭並認為我們是一個gif文件。這樣我們就可以進行上傳。
2-3. 后端檢測——后綴檢測
后端有時候會有單純的黑名單進行檢測,那么我們可以使用一下幾個方法進行繞過:
- 后綴的大小寫混用。
我們可以使用類似.Php的后綴的方式,可以過一些基礎的系統。 - 雙寫后綴:
在一些后端驗證中僅僅使用了類似於正則的方式進行了后綴的檢測。那么我們可以構造類似.phphpp的形式的后綴形式。當后端程序將我們的檢測到的文件的后綴更改后,剩下的內容又變為了我們需要的文件后綴。 - 同義后綴
有一些的文件后綴不僅僅有一個文件后綴可以使用,有一些不常用的后綴沒有被檢測的情況下我們可以使用其他同義的后綴進行繞過。
如:php3, phtml