码迷,mamicode.com
首页 > Web开发 > 详细

IDF-CTF-不难不易的js加密 答题笔记

时间:2015-06-18 19:19:11      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

题目链接: http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=28
知识点:js加密,js代码分析,md5解密,Unicode/Ascii码,正则表达式

就是这里 → http://ctf.idf.cn/game/web/28

思路:
点开链接后弹出一个窗口,要求输入flag,按F12可以看到窗口是用一段加密的js代码实现的,将这段js代码复制到站长工具中进行解密,得到解密后的js代码,然后将其中的Unicode码及Ascii码转换为相应的字符,结果如下:

<script type = "text/javascript" >
var a = prompt("输入你的flag吧,少年!", "");
var b = "f3373e36c677750779f5d04ff7885b3e";
var c = /.+_.+_.+/gi;
var d = 0x0;
var e = a.substr(0x8, 0x5);
if ($.md5(e) == b.replace(/7/ig, ++d).replace(/8/ig, d * 0x2)) {
    var f = a.substr(0x0 / d, 0x7);
    if (f.substr(0x5, 0x2) == "js" && $.md5(f.substr(0x0 / d, d + 0x3)) == "d0154d5048b5a5eb10ef1646400719f1") {
        r = a.substr(0xd);
        if (r.charCodeAt(d) - 0x19 == r.charCodeAt(++d) - 0x19 && r.charCodeAt(--d) - 0x19 == r.charCodeAt(--d)) {
            var g = String.fromCharCode(0x4f);
            g = g.toLowerCase() + g.toLowerCase();
            if (r.substr((++d) * 0x3, 0x6) == g.concat("easy") && c.test(a)) {
                d = String(0x1) + String(a.length)
            }
        }
    }
};
if (a.substr(0x4, 0x1) != String.fromCharCode(d) || a.substr(0x4, 0x1) == "z") {
    alert("额,再去想想。。")
} else {
    alert("恭喜恭喜!")
}
< /script>

分析代码,发现变量a就是我们要求的flag。
经过b.replace(/7/ig, ++d).replace(/8/ig, d * 0x2)后变量b变为f3313e36c611150119f5d04ff1225b3e,经md5解密后得到jiami,这就是变量e的值,而e = a.substr(0x8, 0x5)。
此时变量d=0x01,d0154d5048b5a5eb10ef1646400719f1经md5解密得到wctf,即f.substr(0x0, 0x4)=‘wctf’,又f.substr(0x5, 0x2) == “js”,且f = a.substr(0x0, 0x7),这样又可以确定变量a的一部分。
此时变量d=0x1,继续计算,可得r = a.substr(13),r.charCodeAt(1) == r.charCodeAt(2),r.charCodeAt(1) - 0x19 == r.charCodeAt(0),得到了三个位置的代数关系。
此时d=0x0,g=’oo’,r.substr(3, 6) == ‘ooeasy’,由c.test(a)为真结合flag一般为”wctf{…}”的格式可初步猜测变量a=’wctf{js_jiami_xxooeasy}’。
计算d=123,验证最后一个if语句可得猜测正确,条件转向“恭喜恭喜”。

?

IDF-CTF-不难不易的js加密 答题笔记

标签:

原文地址:http://www.cnblogs.com/renzongxian/p/4586411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!