技能共享:几种常见的JavaScript混杂和反混杂东西剖析实战

访客6年前黑客资讯1087


信息安全常被描述成一场军备竞赛,白帽与黑帽,浸透测验者与黑客,善与恶,本文将聚集这场永无止境决战中的一个小点。
HTML5 & *** 运用中充满着对输入进行验证/注入的问题,需求开发人员一直保持警惕。但一起还存在着另一个问题,便是运用中程序专用代码的易拜访性。为了避免盗版或许至少使盗版愈加困难,常会运用混杂东西对 *** 代码进行混杂。作为对立面,反混杂东西也能够将混杂过的 *** 代码进行复原。我从前触摸过两边的一些东西,下面是我的一些研究成果。
首要,下面这是咱们的示例代码(取自Google Closure Compiler的 Wiki 页面)。一个完好的运用程序中代码会愈加杂乱,但这儿足以用于试验了:
function displayNoteTitle(note) {
alert(note['title']);
}
var flowerNote = {};
flowerNote['title'] = "Flowers";
displayNoteTitle(flowerNote);
接下来,让咱们来罗列下要进行试验的混杂和反混杂东西,本文中会试验 4 个混杂东西和 2 个反混杂东西。
混杂东西:
YUI Compressor
Google Closure Compiler
Uglify ***
*** crambler
反混杂东西:
j *** eautifier.org
*** Detox
以上除了 *** crambler 是商业软件需求付费运用外,其他悉数为免费软件。
缩小和混杂
下面首要让咱们看看混杂东西的混杂作用怎么,随后在看看反混杂东西的体现又怎么。
YUI Compressor
function displayNoteTitle(a){alert(a.title)}var flowerNote={};flowerNote.title="Flowers";displayNoteTitle(flowerNote);
Google Closure Compiler
这个东西有优化和混杂两种类型:
简略优化:
function displayNoteTitle(a){alert(a.title)}var flowerNote={title:"Flowers"};displayNoteTitle(flowerNote);
深度优化:
alert("Flowers");
Uglify ***
同前一个东西相同,Uglify *** 也有两种层次的混杂:
默许:
function displayNoteTitle(e){alert(e.title)}var flowerNote={};flowerNote.title="Flowers",displayNoteTitle(flowerNote);
高档:
function t(t){alert(t.title)}var e={};e.title="Flowers",t(e);
*** crambler
/* Obfuscate your JavaScript at https://jscrambler.com */var g5b={'S':"A",'A':function(b){flowerNote['title']=b;},'X':"V",'o':(function(E){return (function(s,p){return (function(G){return {K:G};})(function(m){var c,R=0;for(var U=s;R"length"];R++){var O=p(m,R);c=R===0?O:c^O;}return c?U:!U;});})((function(h,n,a,M){var y=28;return h(E,y)-M(n,a)>y;})(parseInt,Date,(function(n){return (''+n)["substring"](1,(n+'')["length"]-1);})('_getTime2'),function(n,a){return new n()[a]();}),function(m,R){var d=parseInt(m["charAt"](R),16)["toString"](2);return d["charAt"](d["length"]-1);});})('3lrno3f7c'),'e':'title','V':function(b){x=b;},'Q':"Flowers",};function displayNoteTitle(b){alert(b[g5b.e]);}var flowerNote=g5b.o.K("3d3")?{}:"Flowers";g5b[g5b.S](g5b.Q);displayNoteTitle(flowerNote);g5b[g5b.X](g5b.D);
那么,上面的代码是什么意思呢?清楚明了,YUI Compressor,Google closure compiler 的简略优化形式和 Uglify *** 的默许形式都运用了相同的办法对 *** 代码进行缩小和混杂。缩小意味着紧缩代码、减小运用程序的体积或许下降浏览器的加载时刻。一切的这一切,在将变量名改为一个无意义的字符后,代码会变得难以阅览。
Uglify *** 的高档形式会进一步混杂函数名和全局变量的称号。Google closure compiler 的深度优化形式一起还会活跃的删去无用代码,它寻求最简。
而 *** crambler 则是另一种 *** ,它专心于对代码进行混杂,不只不对代码进行缩小,反而经过添加代码数量使代码变的难以阅览。
美化和反混杂
j *** eautifier.org
正如其姓名相同,这个在线东西企图将缩小后的代码变的愈加具有可读性,但好像它不会对代码进行进一步的反混杂。
YUI Compressor -> j *** eautified
function displayNoteTitle(e) {
    alert(e.title)
}
var flowerNote = {};
flowerNote.title = "Flowers", displayNoteTitle(flowerNote);
Uglify *** Toplevel -> j *** eautified:
function t(t) {
    alert(t.title)
}
var e = {};
e.title = "Flowers", t(e);
*** Detox
对 Uglify *** 高档形式的代码运用 *** Detox 好像并不比 j *** eautifier.org 好多少,这点能够了解的,究竟对变量/函数名进行转化这是不可逆的进程。
高档的反混杂和歹意代码检测
一般的代码混杂常用于知识产权维护,而高档的代码混杂则常会被用于躲藏 WEB 运用中的歹意代码。对歹意代码进行混杂是为了逃避杀毒软件的检测,这些代码在被混杂扩大后会难以被辨认为歹意软件。Metasploit 的 Javascript 混杂器常被用于开发歹意代码,所以咱们下面运用 Metasploit 的混杂器对咱们的代码进行混杂(参阅文档)。 *** Detox 宣称其具有进行反混杂 *** 代码的才能,所以下面让咱们来测验下对 Metasploit 和 *** crambler 混杂后的代码进行高档的反混杂。
Metasploit Javascript 混杂器
function L(t){window[String.fromCharCode(0141,0x6c,101,0162,0164)](t[String.fromCharCode(0164,105,0164,108,0145)]);}var C={};C[(function () { var K='le',Z='tit'; return Z+K })()]=(function () { var m="s",D="r",J="F",e="lowe"; return J+e+D+m })();L(C);

[1] [2]  黑客接单网

相关文章

DVNA:Node.js打造的开源攻防渠道

这是一款仍在活跃研制中的软件,假如你想要现在测验它现有缝隙,需求确保自己添加了Express结构。 DVNA简介 首要,期望咱们多多支撑UX/UI,协助咱们修正bug和优化文档。 DVNA(Damn...

大论帝国cms的安全性

帝国cms服务器网站目录安全设置经历内容仅供参考,假如您在修正具体问题时有疑问主张能够在文章下面具体咨询,体系114网将极力供给协助。一起假如你有好的经历,欢迎投稿共享给广阔网友。   1、目录权限...

根底事情呼应中的Volatility作业流程

最近,我发现自己需求对完好内存转储进行一些查询。通过一段时间的搜索,我发现了Volatility-Labs的这篇文章,依据其间的辅导办法,我能够很好的来评价内存转储。当然,你或许会有更好、更深度的内存...

Web版勒索软件CTB-Locker PHP源码现身GitHub

勒索软件CTB-Locker呈现其Web演化版别,可感染网页站点。据剖析,其编码为选用PHP编写,现在源码已被保管至GitHub上。 Web版勒索软件CTB-Locker的初次呈现 就在本年西方情人节...

新手攻略:DVWA-1.9全等级教程之Insecure CAPTCHA

现在,最新的DVWA现已更新到1.9版别(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版别,且没有针对DVWA high等级的教程,因而萌发了一个编撰新手教程的主意,过错的...

议题解读《我的Web使用安全含糊测验之路》

我的Web运用安全含糊测验之路 什么是Web运用中的含糊测验? Web运用是根据什么进行传输的?HTTP协议。 含糊测验是什么?Payload随机。 Payload放哪里?HTTP恳求报文格局是什么?...