1. 程式人生 > 其它 >[護網杯 2018]easy_tornado 1

[護網杯 2018]easy_tornado 1

復現一道關於tornado的題目

首先可以得知此題用的是tornado,基於python的後端框架,多半是ssti注入

有三個檔案,首先可得知flag在何處

然後觀察hint和url就知道要根據cookie_secret來偽造請求,所以現在就只要找cookie——seceret



url出錯後會跳到此介面,發現注入點。

首先了解下tornado的相關知識
自己上手寫下

瞭解下粗略的過程,tornado會用tornado.web.Application來構造例項,而其中引數handlers傳入了正則表示式的url和相對一個的handler函式---一個url對應一個方法。

然後在文件裡查閱關於cookie_secret的相關點
由此可知我們要得到的是傳入例項的引數。自己寫了下程式體會下

然後查閱文件得知tornado的另一點,那就是settings屬性,裡面有傳入的引數
於是我們要在{{}}中傳入settings屬性把他渲染出來。
而‘Handler’指向的處理當前這個頁面的RequestHandler物件

重新翻了一下文件,發現又是一個別名

handler 指向RequestHandler

而RequestHandler.settings又指向self.application.settings

所有handler.settings就指向RequestHandler.application.settings了

paylod為‘error?msg={{handler.settings}}’


拼湊下就可以拿到flag