qwq…
Web
secure-page
抓包,把cookie改为admin。
reverser
模板注入,但是会把输入的字符串倒序排列再解析,所以我们传payload的倒序字符串即可:
1 | print("{{lipsum.__globals__['os'].popen('ls').read()}}"[::-1]) |
flag-viewer
前端过滤了admin,所以随意输入一个其他用户名再抓包改为admin提交即可。
Misc
orphan
给了.git文件,但是git log无法查看历史版本,直接去log文件夹里可以看到历史版本号,diff一下就出了flag。
Rev
签到,考察选手的逆向思维。
1 | s = 'hope{'+ '*'*26 + '}' |
Crypto
obp
用前几个字节异或求出key再还原明文:
1 | import binascii |
pem
会用pem格式解密即可:
1 | from Crypto.PublicKey import RSA |
kfb
密钥是用随机数加密得到的,但密钥和明文异或即是密文,所以可以向服务器发一个全为0的分组,这样加密的结果就是密钥;用密钥解密即可:
1 | from Crypto.Util.strxor import strxor |
DESpicable you
先用flag格式还原key的前几个字节,再爆破:
1 | from tqdm import tqdm |
reverse-rsa
和seetf的有一道题差不多,这里是给了c,自己选择一个满足格式的明文m,以及光滑的p和q(p-h算法),来快速求解e(离散对数),提交给服务器即可通过验证。
1 | from Crypto.Util.number import * |