WEB100-浅析js加密解密的方法

在网上找在线CTF的训练平台,找到合天网安实验室一个web100的题目,是一个js的题目

图片来源百度

web100

下载得到压缩包,查看里面的文件

文件内容

代码确实够乱的,一看应该是 Javascript 的代码,所以直接复制在浏览器运行:

运行

第一遍运行时候,将最后的eval(_)删除,得到 函数的源码,为什么可以得到源码呐?在 js 中,直接输出函数名,可以得到函数的具体内容!在一些 js 加密中也可以直接这样获取加密的明文!

比如一个颜文字加密的网站:http://utf-8.jp/public/aaencode.html

颜文字解密

按图所示同样可以得到源码

得到这道题的源码,使用代码整理

得到源码

直接把关键的地方找出来,运行一下即可:

// 改造一下
var t = ["fl", "s_a", "i", "e}"];
var n = ["a", "_h0l", "n"];
var r = ["g{", "e", "_0"];
var i = ["it'", "_", "n"];
var s = [t, n, r, i];
var str = '';
for (var o = 0; o < 13; ++o) {
    str += s[o % 4][0];
    s[o % 4].splice(0, 1)
}
console.log(str);

在浏览器控制台运行一下,得到 flag

运行得到flag

在js加密中,很多场景都可以使用此方法来解密

发表评论 / Comment

用心评论~

金玉良言 / Appraise
秋风扫落叶LV 2
2019-05-03 17:13
学习了
MrxnLV 2
2019-04-25 23:03
加了混淆的 往往需要多次 这么操作。。。遇到过加密了三次的人。。。
头像
DYBOY站长已认证
2019-04-29 00:23
@Mrxn:那些常见的加密都是有规律可循的,一般来说多次加密的都是古典算法加密
广安网站建设LV 2
2019-04-24 09:10
学习了

Warning: Cannot modify header information - headers already sent by (output started at /www/wwwroot/blog.dyboy.cn/content/templates/dyblog/footer.php:56) in /www/wwwroot/blog.dyboy.cn/include/lib/view.php on line 23