开篇名义:今日遇到一题,无输入框与之输入,无url以进行参数传递。唯有三文本:
一曰:
二曰:
三曰:
开宗明义,唯有视其url寻求线索:
http://111.200.241.244:52104/file?filename=/flag.txt&filehash=cfab8f31ead1b4ec6fd5d2894f159d94
可见:参数其一为文件名,参数其二为文件名之hash函数
见其hash函数遂寻至图三方得加密方式:
md5(cookie_secret+md5(filename))
如一图之见解可知flag竟在fllllllg文档之中,则需构造playbode:
http://111.200.241.244:52104/file?=/fllllllllllllag&filehash=****************
则须知其cooike供已加密,方可拨开云雾见月明。
有图二之提示尚未用之遂看之:
见其renden但让百思不得其解。
彼时见得题目描述发现了该题借与tornado渲染之。遂查资料:
资料曰:
这两个{{}}和这个字典对象也许大家就看出来了,没错就是这个handler.settings对象
handler 指向RequestHandler
而RequestHandler.settings又指向self.application.settings
所有handler.settings就指向RequestHandler.application.settings了!
大概就是说,这里面就是我们一下环境变量,我们正是从这里获取的cookie_secret
看题目的错误页面
意为:借msg传递参数,进行信息回传如果我们想要获得所有的变量那我们便需要使用{{handerlel.settings}}借此传递该参数进行环境变量的回显。
则便可以进行cookie信息的获取。
实验如下:
成功那接下来就不用多说了。
在这里想分享一句看来的话:web安全就是不要相信用户在文本框中输入的所有东西。