首页
社区
课程
招聘
[原创]第3题 影分身之术 Writeup
2019-3-16 19:23 5431

[原创]第3题 影分身之术 Writeup

2019-3-16 19:23
5431

这是一个Win32逆向,用Delphi写的
里面似乎实现了一个浏览器?
ckpswd()函数是用Js写的
提取获得一段Js

eval(
function(p,a,c,k,e,d) {
    e = function(c){
        return(
            c<a ? '' : e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))
    };
    if(!''.replace(/^/,String))
    {    
        while(c--)
            d[e(c)]=k[c]||e(c);
        k = [
            function(e){
                return d[e]
            }
        ];
        e = function(){
            return'\\w+'
        };
        c = 1
    };
    while(c--)
        if(k[c])
            p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
    return p
}('a 6() {    f="n";    3 = 8.5.l.q;    c (3.d(f) ==0) {        g=3.h;        b=f.h;        o(3.p(b,g));    } 9 {        4("r!<" + 3 + "> e j i 2 ;-)");        m "1";    }}a k(){  4("7!");}',62,28,'|1234|GUID|a|alert|all|ckpswd|congratulations|document|else|function|i|if|indexOf|is|key|l|length|my|not|ok|pswd|return|simpower91|sptWBCallback|substring|value|wrong'.split('|'),0,{}))

运行得到

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";    
    }
}
function ok(){  
    alert("congratulations!");
}

得到Flag第一段是simpower91
再找sptWBCallback函数

function sptWBCallback(spt_wb_id,spt_wb_name,optionstr){
    url='#sptWBCallback:id=';
    url=url+spt_wb_id+';eventName='+spt_wb_name;
    if(optionstr)         
        url=url+';params=optionstr';
    location=url;
}

发现处理这个的函数在492088
校验了第二段的长度是否为4
然后似乎进了一个VM,这个VM跑的是真·X86指令,而且是跑一句跳一下,类似ROP的感觉
可以动态调试把字节码拿出来

add eax, 7fh
....
xor edx, edx
....
cmp eax, edx

可以看到是把每一个EAX的值加上0x7F,清空了edx,在VM之外载入了edx的值,然后和eax比较
通过调试,取出各个EDX的值,计算得到最后4位为

a123

最终的Flag即为

simpower91a123

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞1
打赏
分享
最新回复 (1)
雪    币: 202
活跃值: (15)
能力值: ( LV3,RANK:29 )
在线值:
发帖
回帖
粉丝
aiQG丶 2019-3-30 16:28
2
0
TQL
游客
登录 | 注册 方可回帖
返回