0x00 SUCTF 2019 復(fù)現(xiàn)
Check In
其實(shí)一開始拿到題有點(diǎn)蒙瓣窄,以為是常規(guī)的文件上傳題目笛厦,連圖片都沒試直接去上傳圖片馬,因?yàn)橄胫灥筋}應(yīng)該就是很基礎(chǔ)的文件上傳俺夕,然而事實(shí)證明裳凸,坐井觀天實(shí)在是太打臉了贱鄙。DVWA里的是相當(dāng)基礎(chǔ)的東西,意味著姨谷,是如今簽到題都蔑視的那種程度逗宁。
這個(gè)題最好還是先上傳個(gè)真正的圖片去看一下,回顯什么內(nèi)容梦湘,比如上傳到哪個(gè)文件目錄下瞎颗,那個(gè)目錄都有什么內(nèi)容等等。直接上傳圖片馬的話發(fā)現(xiàn)會(huì)顯示 <? in contents!
說明這里過濾掉了<?
践叠,可以使用<script language='php'></scrip>
繞過言缤。修改后再次上傳發(fā)現(xiàn)顯示exif_imagetype:not image!
嚼蚀,還用了exif_imagetype()
進(jìn)行檢驗(yàn)禁灼,可以加上GIF89a
進(jìn)行繞過。這里發(fā)現(xiàn)上傳文件的目錄下有一個(gè)空的index.php ,那么就需要去利用這個(gè)index.php去幫助我們上傳轿曙。
.hatcess與.user.ini
這道題服務(wù)端是nginx所以我們用.user.ini
若服務(wù)端是apache則我們用.hatcess
這兩個(gè)功能相似弄捕,可以通過在目錄下增加這兩個(gè)文件修改部分配置,同時(shí)對(duì)于.user.ini而言修改配置無需重啟服務(wù)器中間件导帝,只需等待300s(即5分鐘)配置就能夠被重新加載守谓。那么.user.ini可以修改什么配置呢?看圖您单!
這樣看來.user.ini可以設(shè)定
PHP_INI_USER
和PHP_INI_ALL
的模式 我們?cè)賮砜?user.ini的官方文檔看起來.user.ini文件中
PHP_INI_PERDIR
模式的INI設(shè)置也可以被識(shí)別斋荞,我們理解為除了PHP_INI_SYSTEM
模式的INI設(shè)置,.user.ini均可設(shè)定虐秦,那么哪些配置可以在 .user.ini 中設(shè)定呢平酿?php.ini 配置選項(xiàng)列表
今天我們可以用到的便是
auto_prepend_file
,該配置項(xiàng)可以指定在主文件之前自動(dòng)解析的文件的名稱悦陋,并包含該文件蜈彼,就像使用require函數(shù)調(diào)用它一樣。ps:
auto_append_file
可以指定在主文件之后自動(dòng)解析的文件的名稱俺驶,并包含該文件幸逆,就像使用require函數(shù)調(diào)用它一樣。重要:利用這兩個(gè)配置項(xiàng)進(jìn)行包含的前提是含有.user.ini的文件夾下需要有正常的php文件暮现。
Check In思路
先上傳.user.ini文件
再上傳配置中寫到的111.png
菜刀連接該目錄下的index.php 此時(shí)該php文件已經(jīng)包含了111.png的一句話代碼 拿到flag
總結(jié):還是要多學(xué)習(xí) 然后用菜刀連接的話还绘,用POST的比較好,GET的之前嘗試多次栖袋,菜刀和蟻劍都會(huì)出玄學(xué)錯(cuò)誤拍顷,感覺每次連菜刀都是拼運(yùn)氣,生怕自己網(wǎng)址會(huì)錯(cuò)意寫錯(cuò)栋荸。