Bean Cafe
他的验证逻辑是通过图片的md5的值来验证的,所以我们只需要传两张MD5相同的图片就可以获得flag
https://drive.google.com/drive/folders/1eCcMtQkHTreAJT6JmwxG10x1HbT6prY0
Upload Fun
1 |
|
首先分析一下源码,源码通过POST方式来上传文件并且上传的文件不能包含..
用GET的方式来读取文件也不能带有..
,上传的文件在uploads
目录下,但是我们不知道$hash
是什么。
通过谷歌得知在linux种文件名的长度最大可为255个字符,我们可以通过这种方式让它报错来得知他的值
我们可以看到他的回显告诉我们了hash的值,然后我们再上传一句话木马访问即可。
POST上传文件的请求体模板:
1 | POST / HTTP/2 |
Username
题目提示了jwt可以爆破,那这道题肯定和jwt伪造有关。
用jwt-cracker爆破密钥,为mstzt
因为有标签,所以判断为xxe注入,但是正常的xxe他会有过滤,不能引用东西。可以使用XInclude attack
关于XInclude attack
读取/app/app.py文件
1 | import flask |
在这个文件里可以得知,有一个新的路由/secret-welcome-935734
在这里登陆成功后得到flag,用户名为flaguser
,密码我们可以用xxe读取/etc/passwd或者/etc/shadow
在shadow中我们得知密码为$1$hack$BzqsFHqkPjQ2Sn9amFsgN0
这个可以利用hashcat
爆破
爆破出来密码是qqz3
登录得到flag