模板注入详解请看这里:https://www.cnblogs.com/cimuhuashuimu/p/11544455.html
题目一开始给了三个文件的链接,分别查看:



flag.txt里告诉我们文件在/fllllllllllllag里,welcome.txt我们给我们一个关键词render,经过搜索之后知道有render函数的模板注入;最重要的是hint.txt,给我们了一个计算公式:md5(cookie_secret+md5(filename))
其实看到这个计算公式我才开始注意到url里的参数,因为计算出来是一个哈希值嘛,看参数里有一个filehash:
![]()
合理怀疑这个filehash就是通过这个公式算出来的,结合flag.txt中的提示,再次合理怀疑我们通过文件名(/fllllllllllllag)并按照这个公式计算出对应正确的filehash,并且按照这种格式访问url,就可以得到flag.(我可真是个小机灵鬼)
那么问题来了,文件名知道,md5函数可以调用,这个cookie_secret怎么得到呢?这时候注意到我们还有一个线索没有使用:render,模板注入!
先试着在flag.txt的url里直接把文件名修改成/fllllllllllllag,发现报错了:

看这个错误页面还有一个参数呢!把参数值随便修改一下,发现显示出来的内容也会随之变化:

但是输入指令却好像是被过滤了:

菜鸡不知所措……
后来才知道还有一个操作可以看到题目的环境变量:

接下来就用这个cookie_secret计算就可以了,脚本附上:
import hashlib
def md5encode(str):
m = hashlib.md5()
m.update(str)
return m.hexdigest()
name = '/fllllllllllllag'
secret = '9fdfa0bb-bf87-4cc8-9126-e00e9123222a'
name = name.encode()
bb = md5encode((secret + md5encode(name)).encode())
print(bb)
跑出来的结果:

然后访问就可以得到flag啦~

本文详细介绍了一种利用模板注入技巧破解网站安全的方法。通过解析给定的计算公式和URL参数,结合flag.txt、welcome.txt和hint.txt文件的线索,文章展示了如何找到cookie_secret,计算正确的filehash,最终获取flag的过程。
833

被折叠的 条评论
为什么被折叠?



