进入题目
![[护网杯 2018]easy_tornado_md5加密](https://s2.51cto.com/images/blog/202109/07/f1cca93c76f8d47d1c6ab6abbf944042.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
有三个txt文件,我们分别点击。
第一个/flag.txt
![[护网杯 2018]easy_tornado_tornado_02](https://s2.51cto.com/images/blog/202109/07/91a0324099e73d9427b68f7934e370b4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
他说flag 在/fllllllllllllag里面,那我们访问一下看看
![[护网杯 2018]easy_tornado_html_03](https://s2.51cto.com/images/blog/202109/07/5c912299e86781f786bc2243d92ee1f3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
回车后发现
![[护网杯 2018]easy_tornado_官网_04](https://s2.51cto.com/images/blog/202109/07/50c95335cd6cdfc4d98bc23a1d9f830c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
报了一个error,且在浏览器上有回显,那判断这里是否存在模板注入呢,我们可以试一试,把error换成123看浏览器是否还存在回显。
![[护网杯 2018]easy_tornado_md5加密_05](https://s2.51cto.com/images/blog/202109/07/ce610c9eee8832c6ce80b3318f8b676f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
还是有回显,初步证明这里是存在模板注入的。但是知道有模板注入没有更多的信息了,所以我们只好先放这里了。继续看其他目录。
第二个/welcome.txt
![[护网杯 2018]easy_tornado_html_06](https://s2.51cto.com/images/blog/202109/07/206fc165a54892cd4ace11a8a162c4e2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
第二个是一个render,这个render是什么呢,不知道,所以我特意去Tomado的官网看了看render的作用官网链接给大家放这里了
https://www.tornadoweb.org/en/stable/
发现render是一个Tomado框架的一个渲染函数,即可以通过传递不同的参数形成不同的页面。
第三个/hints.txt
![[护网杯 2018]easy_tornado_CTF_07](https://s2.51cto.com/images/blog/202109/07/0cdb6ec61d720f95fb541a3312353af2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
看到一个式子,先把filename给MD5加密一遍,然后加上cookie_secret然后总体在MD5加密一遍,filename我们知道是/fllllllllllllag现在只有cookie_secret不知道,那么我们现在就是想办法获取cookie_secret值,这个时候我们又想起我们第二个目录时的render渲染函数,那我们可以去Tomado官网看看cookie_secret是在那个函数里面,通过查阅文档可以构造payload
/error?msg={{handler.settings}}
来过去到cookie_secret如图。
![[护网杯 2018]easy_tornado_html_08](https://s2.51cto.com/images/blog/202109/07/5e2efb5c79c8cadc198835428d3f600b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
现在把filename给MD5加密然后再加上cookie_secret再MD5加密一次然后构造payload即可拿到flag!
![[护网杯 2018]easy_tornado_tornado_09](https://s2.51cto.com/images/blog/202109/07/5470c8fe875f268f8247ff278a191e7b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
__EOF__
![[护网杯 2018]easy_tornado_CTF_10](https://s2.51cto.com/images/blog/202109/07/114f1cfe286e4d7e8dc8d1057fa92039.jpeg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)

















