【攻防世界】easytornado
题目为easytornado,应该为tornado框架的漏洞。
进入网站,看到三个超链接,挨个点点看:

/flag.txt,看到了/fllllllllllllag文件,按照提示,应该就存着flag

/welcom.txt,有一个render,是tornado框架中用于渲染模板并将其发送给浏览器的方法,由此推测可能是模板注入漏洞。

/hints.txt,注意到url中除了文件名还要输入filehash,这个应该是filehash的计算方法,filename应该是/fllllllllllllag,还有一个cooie_secret需要搞到手。

心存侥幸,还是尝试直接将filename改成/fllllllllllllag,不出意料地报错了

发现有个参数msg=Error,而页面也显示Error,试着改成其他值,还真显示了

尝试传递{{7*7}},又试了别的加减乘除操作符,发现返回都是ORZ,说明是操作符被过滤了。

通过模板注入如何拿到tornado中的cookie,用的就是handler.settings对象
handler 指向RequestHandler
而RequestHandler.settings又指向self.application.settings
所以handler.settings就指向RequestHandler.application.settings了!
传递error?msg={{handler.settings}}得到cookie_secret

使用md5加密构造计算出filehash的值,md5(cookie_secret+md5(/fllllllllllllag)),注意要转换成小写,大小写加密结果不同;文件名是/fllllllllllllag,不能没有/


构造url,拿到flag

 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号