题目来源:BUUCTF [护网杯 2018]easy_tornado
目录
[step 1:分析已知信息](#step 1:分析已知信息)
[step 2:目标------找到cookie_secret](#step 2:目标——找到cookie_secret)
[step 3:构造payload](#step 3:构造payload)
一、打开靶机,整理信息
![](https://i-blog.csdnimg.cn/direct/3d26df1195da4f5c9ed5f65e4a7846dc.png)
直接给了三个文件,点进去看看
![](https://i-blog.csdnimg.cn/direct/2ed09bfb59c84c7685a1de8879c2bd25.png)
![](https://i-blog.csdnimg.cn/direct/c1969afa965f4f448da9316dd6794fec.png)
![](https://i-blog.csdnimg.cn/direct/6d438f97d993446d9caf672991a164fb.png)
给了这三个信息,开始分析
二、解题思路
step 1:分析已知信息
1.告诉了我们flag in /fllllllllllllag
2.第二个文件重点render,是python中的一个渲染函数,url都是由filename和filehash组成,filehash即位他们filename的md5值
3.md5(cookie_secret+md5(filename)),给了我们加密方式,是将cookie_secret和md5(filename)拼接起来,再进行一次md5加密,所以我们需要找到cookie_secret,而第一条信息给我们的是flag在/fllllllllllllag文件中,所以猜测filename=/fllllllllllllag
But,url上面有点奇怪,可以一起看一下
/file?filename=/flag.txt&filehash=581a9759facbcc1a83a3b50cc99103dc
/file?filename=/welcome.txt&filehash=eb45ae2f382f05aa91e5f292edc6fcfd
/file?filename=/hints.txt&filehash=dbcd1e15de57d6753b7d62da938b58e6
发现三个文件都保存在filehash(文件名被哈希算法加密32位小写)
有一个师傅的wp解决了我的疑惑:122,【6】buuctf web [护网杯2018] easy_tornado-CSDN博客
![](https://i-blog.csdnimg.cn/direct/c2cb253f66e74c7fa47b0dd945f9a682.png)
注入点是这么来的
step 2:目标------找到cookie_secret
看了其他师傅的wp,说本题题目也提示了tornado,这是python的一个模块注入,联系第二个文件中的render方法
![](https://i-blog.csdnimg.cn/direct/82994ccd2f8a4076b6cff71ee0dfafdd.png)
所以我们可以将代码放在双花括号里进行执行,其他大佬的wp中提到
![](https://i-blog.csdnimg.cn/direct/c96188937171467d8e4f6a628b4347be.png)
step 3:构造payload
结合上面信息,我们可以构造payload如下
/error?msg={
{handler.settings}}
得到了cookie_secret信息
![](https://i-blog.csdnimg.cn/direct/c7f4809cb6b740b49df9c671a362e984.png)
将其与flag所在文件的文件名/fllllllllllllag进行md5加密以后得到
224efb29-b925-4b70-b53c-8e9a154688143bf9f6cf685a6dd8defadabfb41a03a1
将整体再进行md5加密得到
45288316089fdc7fd3770fde20322384
构造payload如下
/file?filename=/fllllllllllllag&filehash=45288316089fdc7fd3770fde20322384
url传参得到flag信息
![](https://i-blog.csdnimg.cn/direct/cc88da73cf3543a8bc66a7ed1f2a76e2.png)
三、小结
1.tornado模板注入
2.这里的注入点来源是修改了url,只传参file的话,url变化得到/error?msg=Error,修改Error,发现注入点的
![](https://i-blog.csdnimg.cn/direct/89cb9ee0229a42d2abfa22dfe86e4b3f.png)