题目
下载附件并解压,有文件如下:
分析与解题
- 打开index.html
- 查看网页源码,找到关键部分
<script src="script-min.js"></script>
<script type="text/javascript">
var ic = false;
var fg = "";
function getFlag() {
var token = document.getElementById("secToken").value;
ic = checkToken(token);
fg = bm(token);
showFlag()
}
function showFlag() {
var t = document.getElementById("flagTitle");
var f = document.getElementById("flag");
t.innerText = !!ic ? "You got the flag below!!" : "Wrong!";
t.className = !!ic ? "rightflag" : "wrongflag";
f.innerText = fg;
}
</script>
- 如果通过检查,getFlag可以生成我们需要的flag。
- 查看script-min.js,定位到关键部分
function ck(s) {
try {
ic
} catch (e) {
return;
}
var a = [118, 104, 102, 120, 117, 108, 119, 124, 48,123,101,120];
if (s.length == a.length) {
for (i = 0; i < s.length; i++) {
if (a[i] - s.charCodeAt(i) != 3)
return ic = false;
}
return ic = true;
}
return ic = false;
}
- 因此只要反推出返回true的s即可。求解代码如下
a = [118, 104, 102, 120, 117, 108, 119, 124, 48, 123, 101, 120]
s = ""
for i in a:
s += chr(i - 3)
print(s)
# s = security-xbu
- 在token框中输入security-xbu
flag: RenIbyd8Fgg5hawvQm7TDQ