1. 程式人生 > >ctf之0x00截斷 轉載:來自 https://blog.csdn.net/wy_97/article/details/76549405

ctf之0x00截斷 轉載:來自 https://blog.csdn.net/wy_97/article/details/76549405

原題內容:

bypass the upload

格式:flag{}

解題連結: http://ctf5.shiyanbar.com/web/upload 

首先隨手上傳了一個圖片,


得到返回:



再嘗試php檔案,得到返回


很明顯,題意為卡住php字尾,逼迫你上傳檔案字尾為jpg等型別,典型的上傳繞過問題上傳繞過解題思路可參考我轉載的【檔案上傳檢測的基本思路】,一般按照思路逐步嘗試即可,簡單的大小寫,加字尾不可過,此題無js,猜測為0x00截斷上傳,此處仔細分析何為0x00截斷上傳及其原理

簡單舉個例子:

[php]
view plain copy
  1. <%   
  2. path="upfiles/picture/"   
  3. file="20121212.jpg"   
  4. upfilename=path & file '最後的上傳地址   
  5. %>   

upfilename即為最終名字,意思為如果地址為picture/1.php+,檔名為1.jpg則最終上傳上去的檔案路徑為picture/1.php+1.jpg,0x00截斷的思路即為將+之後的內容忽略掉使上傳檔案1.jpg最終上傳到1.php中,此處利用到的就是0x00的截斷漏洞,下面用題目做具體說明:

首先bp上傳圖片,將資料包發到repeater,並對/uploads/後面加上1.php+,此處相當於上述例子中的path:


然後開啟hex(16進位制),找到+對應的編碼:


0x00的意思為16進位制00,所以講+對應的進位制改成00(至於怎麼找到對應程式碼,看右邊對應程式碼,找到第幾行,從左到右,每個字母對應一個程式碼),改完直接go



內容就是這些了,flag自行嘗試吧,有疑問歡迎留言或者私信