問題描述
這道題我掙扎了很久,還是沒有解出來,詳細錯誤解題思路可以參考另一篇博文~(#_<-)
CTF 總結(jié)01:文件上傳繞過_梅頭腦_的博客-CSDN博客
↑博文很啰嗦地講述了我用蟻劍連接一句話木馬花式寫法的各種失敗姿勢,面對文件上傳一步一個坑的絕望心態(tài),歡迎同伴圍觀、吐槽和指點~
———————————————————————————————————————————
大佬的WP:攻防世界WEB練習-easyupload_不知名白帽的博客-CSDN博客_easyupload
工具:Burpsuite、蟻劍;
解題基本流程:
1).user.ini文件→增加圖片頭→上傳.user.ini,burpsuite抓包修改文件類型
2)php短標簽木馬→增加圖片頭→修改文件后綴→上傳圖片→回顯圖片上傳地址
3)蟻劍→連接上傳地址同目錄的php文件(不可以直接連接非.php后綴的圖片)
大佬的WP已經(jīng)非常詳細了,因此具體解題步驟不再搬運,本文僅為上述流程加粗部分涉及的知識點補充注腳:
1 php短標簽
2 圖片馬的頭部類型
3 .user.ini配置文件
(●'?'●)順便說一下,答案是 cyberpeace{ea48baaa2c8fad7d2898b7d430d0e338} ,題目會經(jīng)常變更flag,所以只是短期有效哦~
思路分析
1 php短標簽
php中最常見的標簽為<?php ?>~
<?php @eval($_POST['a']);?>
不過在題目上傳時可能會被waf過濾掉php關鍵字。根據(jù)查詢結(jié)果,還有四種php的標簽,分別是:
①<? ?> 僅在配置short_open_tag=on時可以使用,適合執(zhí)行php語句;
②<?= ?>即使配置short_open_tag=off時依然可以使用,相當于<?php echo ?>,適合輸出php語句~
上述二者的短標簽都不必閉合(即?>可以省略不寫,也可以連接成功)~
<? @eval($_POST['a']);?>
<?= @eval($_POST['a']);?>
<? @eval($_POST['a']);
<?= @eval($_POST['a']);
③<% %> 據(jù)說需要配置php.ini文件中asp_tags=on(php.ini默認狀態(tài)下是關閉的),但是我沒有在php.ini中找到該選項...
④<script language="php"></script>? php7及之后官方就已經(jīng)不支持的寫法,呃不過我在php5的環(huán)境中也沒有能夠連接成功...
————————————
不重要插曲:自己是下載phpstudy搭建的環(huán)境,需要尋找php.ini文件,這個可以在phpinfo頁面顯示,輸入下面的代碼,打開服務器與瀏覽器~
<?php phpinfo(); ?>
?打開網(wǎng)頁后發(fā)現(xiàn)只顯示源碼...
??經(jīng)過查詢原來是網(wǎng)站狀態(tài)過期了...
?
?點擊左上角再創(chuàng)建一個網(wǎng)站,重啟apache服務就好啦~
?
?嗯...這個碼打得不是很有靈魂...
————————————
php短標簽參考1:php中的短標簽 太坑人了 - dongguol - 博客園 (cnblogs.com)
php短標簽參考2:無字母數(shù)字webshell總結(jié) - 先知社區(qū) (aliyun.com)
2 圖片馬的頭部類型
圖片馬需要在.php文件前增加文件頭,上傳時偶爾需要配合burpsuite抓包修改content-type,常見圖片搭配格式如下表所示:
文件格式 | php 文件頭 | content-type |
.jpg?.jpe .jpeg | JPGGraphic File | image/jpeg |
.png | PNG Image File | image/png |
.gif | GIF 89A | image/gif |
若題目要求上傳其他格式的文件,如doc、pdf、dwg等,可以參考下面的博文:
圖片馬參考1:文件頭_iqiqiya的博客-CSDN博客_gif文件頭
圖片馬參考2:Content-type_瀚忄的博客-CSDN博客
3 .user.ini配置文件
.user.ini參考1:文件上傳之.user.ini - NineOne_E - 博客園 (cnblogs.com)
.user.ini參考2:php - 神秘的.user.ini文件 - 技術圈 - SegmentFault 思否
.user.ini介紹:
正規(guī)的網(wǎng)站中,每個網(wǎng)站都會有php.ini文件在默默地影響網(wǎng)站配置,對于php.ini感興趣的話可以瀏覽這個網(wǎng)址:PHP: php.ini 配置選項列表 - Manual
php.ini主要配置可分為以下四個模式:
?.user.ini相當于迷你版的php.ini,可以配置除了php_ini_system以外的所有設定,具有文件包含功能,適用于ctf中上傳圖片馬的題目~
文件包含語句如下:
auto_prepend_file=test.jpg
auto_append_file=test.jpg
另外注意到,因為語句auto_prepend_file與auto_append_file表達的意思是附著在文件前或文件后實行包含,所以圖片馬上傳以后需要連接同目錄的php文件,不是直接連接圖片哦~
如何查詢同目錄的php文件:
①可以打開F12開發(fā)者工具-網(wǎng)絡-名稱中查詢,如下圖,可以看到請求網(wǎng)址存在index.php~
②傳說中有大俠選擇直接拔起御劍大殺四方,這個因為我暫時沒有用過...目前只能羨慕前輩們?yōu)t灑的背影~有興趣可參考:御劍下載使用教程_碼啊碼的博客-CSDN博客_御劍使用教程
③有時同文件指定上傳路徑目錄中沒有文件,可以試試在文件名稱或上傳路徑中補充"../",將文件傳輸?shù)缴弦患壞夸浿衺
.user.ini的使用局限:
可以在服務器啟用CGI/FastCGI SAPI時使用~默認名稱為.user.ini,默認上傳時間為300秒,所以如果php.ini沒有修改這個配置,那也就是在上傳.user.ini 一段時間以后才能進行操作~PHP: .user.ini 文件 - Manual
?
所以啊,在上傳或者干掉.user.ini之后,發(fā)現(xiàn)配置沒有立刻被刷新,還是不能上傳文件的話,也許靜靜等待300秒再操作就會出現(xiàn)奇跡呢~(●'?'●)
再次啰嗦:對于文件上傳有興趣的話可以點擊這里參考下面的鏈接,現(xiàn)在主要是在記錄踩坑失敗的經(jīng)歷,后期也會慢慢補充完善的~
CTF 總結(jié)01:文件上傳繞過_蟻劍返回數(shù)據(jù)為空_梅頭腦_的博客-CSDN博客
博文寫得模糊或者有誤之處,歡迎留言討論與批評~文章來源:http://www.zghlxwxcb.cn/news/detail-728510.html
碼字不易,若有所幫助,可以點贊支持一下博主嘛?感謝~(●'?'●)文章來源地址http://www.zghlxwxcb.cn/news/detail-728510.html
到了這里,關于Web安全攻防世界06 easyupload的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!