某个buuctf的题(easy_tornado)

题目:http://88099f53-12b6-470a-9993-b73e4155940e.node3.buuoj.cn/

1首先看三个文件的内容


2简单分析


如果出题人没整一些花里胡哨的,那么flag就在fllllllllllg文件里面

http://88099f53-12b6-470a-9993-b73e4155940e.node3.buuoj.cn/file?filename=/hints.txt&filehash=87baac9388cda0f56b3a1fd3b4985d67(网址之一)

从这几个文件的网址看flag应该在/file?filename=/flllllllllllg&filehash=某个哈希值。

在从hints.txt可见这个哈希值=md5(cookie_secret+md5(flllllllllg)).

tip我在此时的想法


想办法破解出cookie_sercret(这是cookie的签名,解不出来,有兴趣可以网上查一查)

我们已知三个文件名进行以上运算的结果,我想这可能是个解密题。

经尝试后一脸懵逼,显然解不出来。

3需要经验的一步


经过上面的尝试后我又看了一遍题(easy_tornado),网上一搜,出来的都是这个题的解题方法,先不要管这些。我们在根据welcome.txt中的render字样(题目给的东西一般会有用),搜索render函数可以得到如下:

至于为什么搜py中的renger函数,你搜renger函数大多都是关于py的

可知renger是进行内容渲染的而且render会执行内部参数,如2*3回渲染出来6。

到这里只是猜测render有用。(有经验的人可能知道renger的用法)

4或许你尝试过


当我不知道下一步怎么做的时候我试着将别的文件带入网址中的hash值放在那个hash值的位置(显然不会的到结果)

网址这个东西在这种简单的网页里面是很重要的。(我们几乎只能在网址栏里进行操作)----------论网址的重要性

这里观察到网址中是将Error传递给msg(在想一想renger的作用),试一下随便传点啥。

可以看到我随便输的被渲染出来了,(这就很清楚了,是个注入的题)

5如何注入


我试了一下2*3,结果它输出ORZ,百度一下知道这是我的2x3是被它墙了(其实百度到的是“ ○| ̄|_ ”(看百度百科就知道我是被调侃了,不过没事最起码说明我注入的思路没问题))。

至于如何注入,我也是第一次见这种注入,直接看了教程。百度上搜题目很容易找到。

6重中之重


做到最后直接超答案显然不是我的风格。跟着答案我发现了一片新天地。

已经过了24点了,明天再写。

sayounana~~

posted @ 2021-05-22 00:07  bighu  阅读(72)  评论(0编辑  收藏  举报