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

访客5年前黑客资讯1069


信息安全常被描述成一场军备竞赛,白帽与黑帽,浸透测验者与黑客,善与恶,本文将聚集这场永无止境决战中的一个小点。
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]  黑客接单网

相关文章

剪贴板鬼魂瞄准虚拟钱银,出师不利1个月亏本4000万?

一、木马概述 360安全中心近期监控到一类虚拟钱银类木马十分活泼,该木马不断监控用户的剪贴板内容,判别是否为比特币、以太坊等虚拟钱银地址,然后在用户买卖的时分将方针地址修改成自己的地址,悄然施行偷盗,...

浏览器进犯结构BeEF Part 5:进犯Web使用与进犯网络

前语 上一章介绍了Tunneling Proxy技能以及怎样运用这项技能来绕过httponly完成高档的会话盗取。本章评论如安在不违背SOP情况下,经过勾连浏览器进犯Web运用与进犯网络。其中有一些进...

WAP:一款WEB安全检测工具

Web Application Protection(WAP)是用于源代码静态剖析和数据发掘的一个东西,WAP首要检测运用PHP(4.0版别及以上)编写的web应用程序,而且由于它的误报率很低而遭到...

“神起”僵尸网络的诱捕与反击(上)

2019年5月中旬,蜜罐体系监测到了一同进犯事情,引起了咱们的留意,小伙伴们敏捷跟进分析,并经过技术手段拿下黑客操控端服务器,发现黑客运用了一款名为“神起ddos集群”的软件,操控了3000+的僵尸网...

Nmap备忘单:从探究到缝隙使用 Part1

在侦办过程中,信息搜集的初始阶段是扫描。 侦办是什么? 侦办是尽或许多的搜集方针网络的信息。从黑客的视点来看,信息搜集对进犯十分有协助,一般来说能够搜集到以下信息: 电子邮件、端口号、操作体系、运转...

Chafer运用的新的根据Python的有效载荷MechaFlounder

2019年11月,Chafer要挟小组针对土耳其政府从头运用他们在2019年早些时候运用的基础设施(Clearsky报导的活动中),特别是域名win10-update [.] com。尽管咱们没有见到...