首页
社区
课程
招聘
[原创]kanxuectf2019 第三题
发表于: 2019-3-22 10:52 6626

[原创]kanxuectf2019 第三题

2019-3-22 10:52
6626
其实这个题没什么好说的,出题的大佬在去年看雪2018国庆赛中出了一道类似的题目,基本换汤不换药,大家完全可以对照那题的解题报告把这道题做出了。
贴几个脚本吧。
function ckpswd() 
{
    key="simpower91";
    a = document.all.pswd.value;
    if (a.indexOf(key) ==0) 
    {
        l=a.length;
        i=key.length;
        sptWBCallback(a.substring(i,l));
    }
    else 
    {
        alert("wrong!<" + a + "> is not my GUID ;-)");
        return "1234";
    }
}
undefined(){alert("congratulations!");} 
第一步验证:判断其实位置是否为simpower91,然后将后续函数传递给sptWBCallback进行下一步验证。
之后程序会按照params,eventname,id的顺序依次读入参数,由于我们只给sptWBCallBack传递了一个参数,所以输入的后续所有部分都被赋值到了变量id中。然后调用了一个虚函数。
函数会直接判断当前id长度是否为4,如果不为4,直接走人。当id长度为4时,判断当前目录下是否有data.txt文件,如果有取data.txt中的数据进行解密(取反),这里猜测是作者测试时用的。如果没有data.txt,则从程序段中读入数据进行解密。然后调到下面的函数开始每一句解释执行
我们可以看到每次的判断基本都分为4个部分,取输入一个字节,加一个数,和一个值比较一下,然后nop和不等于跳转(懒得从od中提取了,大家自行去看吧)。
最后正确id为a123
function ckpswd() 
{
    key="simpower91";
    a = document.all.pswd.value;
    if (a.indexOf(key) ==0) 
    {
        l=a.length;
        i=key.length;
        sptWBCallback(a.substring(i,l));
    }
    else 
    {
        alert("wrong!<" + a + "> is not my GUID ;-)");
        return "1234";
    }
}
undefined(){alert("congratulations!");} 
第一步验证:判断其实位置是否为simpower91,然后将后续函数传递给sptWBCallback进行下一步验证。
之后程序会按照params,eventname,id的顺序依次读入参数,由于我们只给sptWBCallBack传递了一个参数,所以输入的后续所有部分都被赋值到了变量id中。然后调用了一个虚函数。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 2428
活跃值: (159)
能力值: ( LV11,RANK:198 )
在线值:
发帖
回帖
粉丝
2
下次换药不换汤,好吧?
2019-3-27 09:48
0
雪    币: 164
活跃值: (236)
能力值: ( LV12,RANK:583 )
在线值:
发帖
回帖
粉丝
3
下次可以换个碗
2019-3-27 23:51
0
雪    币: 5182
活跃值: (9697)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
4
我能说Q3又碰到了吗?
2019-9-18 17:15
0
游客
登录 | 注册 方可回帖
返回
//