[b01lers2020]Welcome to Earth
打开网站,停一会会跳转die,了解一下,这就类似一个通关游戏,不能死亡,也就是说进入/die这个网站就意味着题就做不出来了;所以回到上一个网站原网站,查看源码;
http://ccfd97f9-3c13-40b0-ad8c-4ba1cacfced9.node5.buuoj.cn:81/
返回这里去查看源码,得到/chase/
然后访问
url+/chase/
这里最好去抓一个包去查看,要不我怕反应不过来就跳转过去了,找到了/leftt/
同上继续访问,找到了/shoot/,同上继续访问,找到了/door/,继续访问,然后就找不到类似的了,这里需要访问/static/js/door.js,然后访问/open/,然后访问/static/js/open_sesame.js,然后访问/fight/,然后访问/static/js/fight.js,得到了js代码和flag不过是乱序的,
function scramble(flag, key) {
for (var i = 0; i < key.length; i++) {
let n = key.charCodeAt(i) % flag.length;
let temp = flag[i];
flag[i] = flag[n];
flag[n] = temp;
}
return flag;
}
function check_action() {
var action = document.getElementById("action").value;
var flag = ["{hey", "_boy", "aaaa", "s_im", "ck!}", "_baa", "aaaa", "pctf"];
// TODO: unscramble function
}
以下脚本可以整理一下flag,总共6个flag,我是一个一个的试出来的
from itertools import permutations
flag = ["{hey", "_boy", "aaaa", "s_im", "ck!}", "_baa", "aaaa", "pctf"]
item = permutations(flag)
for i in item:
k = ''.join(list(i))
if k.startswith('pctf{hey_boys') and k[-1] == '}':
print(k)
脚本如上
[CISCN2019 华东南赛区]Double Secret
打开网站出现一句话,之后不管是源码还是去用字典扫描都没有发现什么,抓包也没有用处,在看题目,猜想到secret?secret这种方式试了一下,还真是,get传参随便传点东西,打开一个报错页面,在这个页面找到了一段重要的代码
if(secret==None):
return 'Tell me your secret.I will encrypt it so others can\'t see'
rc=rc4_Modified.RC4("HereIsTreasure") #解密
deS=rc.do_crypt(secret)
a=render_template_string(safe(deS))
if 'ciscn' in a.lower():
return 'flag detected!'
return a