第三届全国网络空间安全技术大赛 Web补题 By Assassin(持续更新)

本文详细解析了第三届全国网络空间安全技术大赛中的Web题目,包括签到题、抽奖、继续抽等环节,涉及JavaScript加密、PHP魔法、MySQL位运算等技术,通过实例展示了解题思路和技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近比较忙,可能补题的速度慢一些些~

签到题

首先进入界面发现如下代码

这里写图片描述

然后就知道用==弱匹配,构造一个纯数字串和一个纯字母串,让他们的MD5值形如0exxx且0e后面全是纯数字。就构成科学记数法0==0,payload

Username:QNKCDZO
password:240610708

进去后发现还有一个简单的绕过

这里写图片描述

我们看到又是==,有一个参考表,大家一看便知~

这里写图片描述

post的payload构造如下

message={
    
    "key":0}


抽抽奖

看到这题首先想到转盘模板,应该是js,然后看源代码的时候发现了jQurey.js这个函数有点特别,因为有一段jother加密的代码,而且相当大,没法直接运行。

然后我们在下面可以看到控制转盘的函数,通过chrome中的console调试可以发现这个可以控制转盘的方向等等。而其中的jsctf0 还是jsctf1变量也好都是我们可以更改的。

$(_$[0]).rotate({
        bind: {
            click: function() {
   
   
                var jsctf0 = [0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8];
                jsctf0 = jsctf0[Math.floor(Math.random() * jsctf0.length)];
                console.log(jsctf0);
                if (jsctf0 == 0x0) {
                    timeOut()
                } else {
                    var jsctf1 = [0x0];
                    jsctf1 = jsctf1[Math.floor(Math.random() * jsctf1.length)];
                    if (jsctf1 == 0x1) {
                        rotateFunc(0x1, 0x9d, _$[1])
                    }
                    ;if (jsctf1 == 0x2) {
                        rotateFunc(0x2, 0xf7, _$[2])
                    }
                    ;if (jsctf1 == 0x3) {
                        rotateFunc(0x3, 0x16, _$[3])
                    }
                    ;if (jsctf1 == 0x0) {
                        var jsctf2 = [0x43, 0x70, 0xca, 0x124, 0x151];
                        jsctf2 = jsctf2[Math.floor(Math.random() * jsctf2.length)];
                        rotateFunc(0x0, jsctf2, 0x0)
                    }
                }
            }
        }
    });

然后我们理所应当的揭秘那个jother加密后的代码,但是那个玩意儿实在是太大了!大概7000万字节,很难弄,但是我们可以利用chrome浏览器啊!console是一个很强大开发工具!我们可以输入指令。比如说如下!!!猜测flag?

这里写图片描述

浏览器已经帮你解决好了,但是这一步多少还是蒙的,其实分析刚刚看的代码知道调用功能的关键函数是rotateFunc函数,那我们在console中看一下rotateFunc函数也能得到关键函数getFlag~
得到代码如下

直接一搞就看到了

(function() {
window.getFlag=function(text){  if(text=='1'){      alert("你最厉害啦!可惜没flag")  }   if(text=='2'){      alert("你太厉害了,竟然是二等奖")   }   if(text=='3'){      alert("你好厉害,三等奖啊")  }   if(text=='flag')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值