[CSCCTF 2019 Qual]FlaskLight——直取flag?
[CSCCTF 2019 Qual]FlaskLight
前言
白天一直在上課,晚上趕快躲進圖書館里面打打靶場。這次的題目算是很簡單的一道題目了,我做完之后還去看了看其他師傅寫的博客,只能感嘆一聲太強了。我根本就沒有考慮這些,就直接去找flag了。
正文
很喜歡這樣的題目,在每一步之后出題人都會貼心的留下下一步的線索,不至于做完第一步后,不知道自己在干嘛,甚至是不知道自己第一步做對了沒有。打開題目
 
 出題人讓我們用get進行傳參,向這個網站里面傳一個search進去。我們嘗試之后發現這個地方存在SSTI。
 
 因為是用flask搭建的網站,所以這里的判斷很自然就是jinja2的模板注入。
 我們用如下的方式來測試一下python的版本
 這里給到我們的信息是該python版本是python2,因為在python3中subclasses()里面是沒有type file的。emm,不知道該干嘛了,先去看一下環境變量吧。直接{{config}}(驚了,居然能成功)
 
 說實話,config這玩意我是不指望著他能成功的,但是沒想到這道題連這個都沒過濾。我們看到了出題人給我們的提示,他說flag就在當前的目錄下面,也就是說flag與工程文件同處一個文件夾下。
 在這里我嘗試了很久,服務器總是給我報500的響應碼,我推測是有過濾。然后在我一個一個刪除關鍵字后,我發現這道題過濾的是globals。那用字符串拼接過濾試試看
 
 這里發現服務器已經可以正常地給我返回信息了,所以說題目里面的waf我們應該是已經繞過去了。
 接下來我們用如下payload
 我們直接進入工程文件下面列目錄
 最后cat一下里面的coomme_geeeett_youur_flek
后記
看了其他師傅的文章,有些師傅是通過subprocess.Popen來實現命令執行的,又是一個新姿勢。個人感覺這道題還是挺簡單的,每條路都能走通,甚至可以不用內建函數__builtins__都行,可以用global里面的os進行RCE。
總結
以上是生活随笔為你收集整理的[CSCCTF 2019 Qual]FlaskLight——直取flag?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 单片机驱动蜂鸣器(有源和无源)
- 下一篇: 【软件工程】 软件设计阶段
