攻防世界 Crypto flag_in_your_hand1

攻防世界 Crypto flag_in_your_hand1

1.题目下载地址

点击下载

2.分析题目

  • 题目是一个HTML文件和一个js文件
  • 打开网页,查看源码,可以发现要让ic的值为true,才能拿到flag
<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>
  • 查看js文件,发现只有第二个if语句条件不成立的时候,ic的值才能为true
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;
}
  • 满足这个函数的条件的输入串s,就是token
  • a数组的每一个元素减去3,再转换成对应的字符,就可以得到token的值:security-xbu
  • 在这里插入图片描述
    填入token的值,就能得到flag了
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

==Microsoft==

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值