护网杯2018easy_tornado
打开题目
发现三个文件
flag.txt文件内容
显示flag在/fllllllllllllag文件中。welcom.txt文件内容
hints.txt文件内容
filename进行md5加密前面加上cookie_secret再进行md5加密。尝试访问
访问/fllllllllllllag文件,发现错误提示。测试后发现还有一个error界面,格式为/error?msg=Error,怀疑存在服务端模板注入攻击 (SSTI)
通过查阅文档发现cookie_secret在Application对象settings属性中,还发现self.application.settings有一个别名.
1
2
RequestHandler.settings
An alias for self.application.settings.
handler指向的处理当前这个页面的RequestHandler对象,
RequestHandler.settings指向self.application.settings,
因此handler.settings指向RequestHandler.application.settings。
构造payload获取cookie_secret使用网站md5加密filename前面加上cookie_secret再次md5加密,得到结果。放到filehash处一直报错。(也不知为为什么无··无~语~)
通过搜索wp找到相关加密脚本,一开始报错Strings must be encoded before hashing。
md5.update(s.encode(“utf8”)) 得到解决方法,括号应当指定加密方式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import hashlib
def md5(s):
md5 = hashlib.md5()
md5.update(s.encode("utf8"))
return md5.hexdigest()
def filehash():
filename = '/fllllllllllllag'
cookie_secret = 'e226a5d3-b3e0-42c7-bc7f-98b00e62df62'
print(md5(cookie_secret + md5(filename)))
if __name__ == '__main__':
filehash()
得到结果:
1
1b28fb5ea2c2a088ee59174580e3774e
GET flag
本文作者: Alone
本文链接: https://blog.nosecurity.cn/posts/11761.html
版权声明: 本博客所有文章除特别声明外,均为原创,采用 CC BY-SA 4.0 协议 ,转载请注明出处!