攻防世界-web-高手进阶区018-easytornado

1.查看主页面

 

 

 

2.查看其他页面,/welcome.txt

http://111.198.29.45:39004/file?filename=/welcome.txt&filehash=9aeecdd1844b70a3c4c719d2303cfaeb

 

 

 

/hints.txt

http://111.198.29.45:39004/file?filename=/hints.txt&filehash=9226131c021e8a84f91c65972c94ca3b

 

 

 

/flag.txt

http://111.198.29.45:39004/file?filename=/flag.txt&filehash=ed15d1deebc3e76eaf460728563f05d7

 

 

 

3.从上面三个页面来看

flag/fllllllllllllag文件中

url中的filehashmd5(cookie_secret+md5(filename))

可以构造payload为:file?filename=/fllllllllllllag&filehash=********************

filename已知道,只差filehash

4.直接输入/fllllllllllllag尝试,url跳转页面为

 

 

 

5./welcome.txt页面看到render,可能会是SSTI模板注入

SSTI模板注入详情:https://blog.csdn.net/zz_Caleb/article/details/96480967

尝试验证:

传递error?msg={{2}},页面出现2

传递error?msg={{2*3}},页面出现ORZ(但并不是cookie
尝试除和减操作符也是)返回ORZ,说明是操作符背过滤了。

 

 

 

6.通过模板注入如何拿到tornado中的cookie,用的就是handler.settings对象

handler 指向RequestHandler

RequestHandler.settings又指向self.application.settings

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

传递error?msg={{ handler.settings }}得到:

 

 

 

7.使用md5加密构造计算出filehash的值,md5(cookie_secret+md5(/fllllllllllllag))

 

 

 

8.传递参数得到flag

 

 

 

 

 


 

posted @ 2020-03-17 17:13  joker0xxx3  阅读(2135)  评论(0编辑  收藏  举报