攻防世界 flag_in_your_hand1


题目

下载附件并解压,有文件如下:

分析与解题

  1. 打开index.html
  2. 查看网页源码,找到关键部分
<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>
  1. 如果通过检查,getFlag可以生成我们需要的flag。
  2. 查看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;
}
  1. 因此只要反推出返回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
  1. 在token框中输入security-xbu

flag: RenIbyd8Fgg5hawvQm7TDQ


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM