破解JS加密:url unicode加密而已
加密所在的地方:http://tool.chinaz.com/Tools/UrlCrypt.aspx?url=www.baidu.com
结果: http://%77%77%77%2E%62%61%69%64%75%2E%63%6F%6D/
替换:http://\x77\x77\x77\x2E\x62\x61\x69\x64\x75\x2E\x63\x6F\x6D/
查看:在地址栏输入javascript:alert("\x68\x6C\x61\x64\x66\x28\x29\x3B\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20");
window.location.href='http://\x77\x77\x77\x2E\x62\x61\x69\x64\x75\x2E\x63\x6F\x6D/';
<script language="JavaScript">
window.location.href='\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x62\x61\x69\x64\x75\x2E\x63\x6F\x6D/';
</script>
加密后:%63%61%6F%62%75%67%2E%63%6F%6D
替换后:\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D
朋友发来一套盗用过来的DISCUZ模板,但打开网站会弹出提示框:Sorry!xxx.com,然后自动跳转到原开发者网站,通过搜索N次也没有找到代码写在何处。没办法了,谁让小明哥这样乐于助人呢,瞧瞧吧^_^。
本地安装DISCUZ,接着将模板文件架构好。输入:http://localhost/portal.php,没有任何提示,好小子估计没判断 localhost。好吧,换成:http://127.0.0.1/portal.php 试试,有了…
当我们单击确定的时候,将自动跳到开发者网站,悲痛呀!不过这样做就显然给我们留下入口,JS有多少种提示框弹出方式?试试最简单的Alert吧。于是搜索 alert,所有文件中,侥幸找到一个。
弹出源码:alert(_0xb200[10]),好吧,改成:alert('test'),刷新网页,哈哈~预期弹出:test,看来是找对地方了。
于是删除他的条件判断:
1
|
; if (obj[_0xb200[7]](_0xb200[8])==0||obj[_0xb200[7]](_0xb200[9])==0){} else {alert(_0xb200[10]);window[_0xb200[2]][_0xb200[0]]=_0xb200[11];}; |
在刷新网页,发现没任何弹窗和任何跳转了,这样就解决了问题,但如果也想像作者一样保护自己的“版权”,可以这样:
其中_0xb200[7]这样的形式,很显然是数组,看看开发者如何申明遍历的吧,本文件中搜索:_0xb200,找到了:
1
|
var _0xb200=[ "\x6C\x6F\x63\x61\x74\x69\x6F\x6E" , "\x72\x65\x70\x6C\x61\x63\x65" , "\x74\x6F\x70" , "\x68\x72\x65\x66" , "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65" , "\x73\x75\x62\x73\x74\x72" , "\x77\x77\x77\x2E" , "\x69\x6E\x64\x65\x78\x4F\x66" , "\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74" , "\x35\x69\x32\x33\x2E\x63\x6F\x6D" , "\x53\x6F\x72\x72\x79\x21\x20\x53\x69\x6E\x67\x63\x65\x72\x65\x2E\x4E\x65\x74" , "\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x69\x6E\x67\x63\x65\x72\x65\x2E\x6E\x65\x74" ]; |
我去,加密了!解密还是比较简单,让浏览器去做。于是小明哥在桌面新创建了 test.html 文件,写道:
1
2
3
4
5
6
|
<script type= "text/javascript" > var _0xb200=[ "\x6C\x6F\x63\x61\x74\x69\x6F\x6E" , "\x72\x65\x70\x6C\x61\x63\x65" , "\x74\x6F\x70" , "\x68\x72\x65\x66" , "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65" , "\x73\x75\x62\x73\x74\x72" , "\x77\x77\x77\x2E" , "\x69\x6E\x64\x65\x78\x4F\x66" , "\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74" , "\x35\x69\x32\x33\x2E\x63\x6F\x6D" , "\x53\x6F\x72\x72\x79\x21\x20\x53\x69\x6E\x67\x63\x65\x72\x65\x2E\x4E\x65\x74" , "\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x69\x6E\x67\x63\x65\x72\x65\x2E\x6E\x65\x74" ]; for ( var i =0; i < _0xb200.length; i++){ alert(i + ': ' + _0xb200[i]); } </script> |
运行 test.html 试试吧,结果输出:
0: location
1: replace
2: top
3: href
4: toLowerCase
5: substr
6: www.
7: indexOf
8: localhost
9:5i23.com
10:Sorry!Singcere.Net
11: http://www.singcere.net
好小子,首先获得页面 URL,然后用 indexOf 截取判断,最后弹出消息和跳到指定网站!于是小明哥把数组下标为9的5i23.com修改为自己的网站URL,然后数组下标为11的目标网页修改自己成网站,将计就计,哈哈!
好吧,先找个转换工具把我们新的URL用十六进制加密,然后将百分号(%)替换成:\x
实战:caobug.com(数组 9)
工具:http://www.55la.cn/UrlCrypt/
加密后:%63%61%6F%62%75%67%2E%63%6F%6D
替换后:\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D
弹出信息也替换了(数组 10):
加密后:%53%6F%72%72%79%21%20%43%61%6F%62%75%67%2E%63%6F%6D
替换后:\x53\x6F\x72\x72\x79\x21\x20\x43\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D
侵权后跳转到(数组 11):
加密后:%77%77%77%2E%63%61%6F%62%75%67%2E%63%6F%6D(www.caobug.com)
替换后:\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D(http://www.caobug.com)
其中,\x20\x68\x74\x74\x70\x3A\x2F\x2F 表示:http://,有的工具无法转换,我们就自己添加上。
最终结果:
1
|
var _0xb200=[ "\x6C\x6F\x63\x61\x74\x69\x6F\x6E" , "\x72\x65\x70\x6C\x61\x63\x65" , "\x74\x6F\x70" , "\x68\x72\x65\x66" , "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65" , "\x73\x75\x62\x73\x74\x72" , "\x77\x77\x77\x2E" , "\x69\x6E\x64\x65\x78\x4F\x66" , "\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74" , "\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" , "\x53\x6F\x72\x72\x79\x21\x20\x43\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" , "\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" ]; |
我们粘贴到 test.html,看下能否正常输出我们加密的字符串。
1
2
3
4
5
6
|
<scripttype= "text/javascript" > var _0xb200=[ "\x6C\x6F\x63\x61\x74\x69\x6F\x6E" , "\x72\x65\x70\x6C\x61\x63\x65" , "\x74\x6F\x70" , "\x68\x72\x65\x66" , "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65" , "\x73\x75\x62\x73\x74\x72" , "\x77\x77\x77\x2E" , "\x69\x6E\x64\x65\x78\x4F\x66" , "\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74" , "\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" , "\x53\x6F\x72\x72\x79\x21\x20\x43\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" , "\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" ]; for ( var i =0; i < _0xb200.length; i++){ alert(i + ': ' + _0xb200[i]); } </script> |
输出结果:
0: location
1: replace
2: top
3: href
4: toLowerCase
5: substr
6: www.
7: indexOf
8: localhost
9: caobug.com
10: Sorry! Caobug.com
11: http://www.caobug.com
哇塞,一次成功。我们到此就可以替换开发者提供的文件啦~
1
|
var _0xb200=[ "\x6C\x6F\x63\x61\x74\x69\x6F\x6E" , "\x72\x65\x70\x6C\x61\x63\x65" , "\x74\x6F\x70" , "\x68\x72\x65\x66" , "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65" , "\x73\x75\x62\x73\x74\x72" , "\x77\x77\x77\x2E" , "\x69\x6E\x64\x65\x78\x4F\x66" , "\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74" , "\x35\x69\x32\x33\x2E\x63\x6F\x6D" , "\x53\x6F\x72\x72\x79\x21\x20\x53\x69\x6E\x67\x63\x65\x72\x65\x2E\x4E\x65\x74" , "\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x73\x69\x6E\x67\x63\x65\x72\x65\x2E\x6E\x65\x74" ]; |
替换成:
1
|
var _0xb200=[ "\x6C\x6F\x63\x61\x74\x69\x6F\x6E" , "\x72\x65\x70\x6C\x61\x63\x65" , "\x74\x6F\x70" , "\x68\x72\x65\x66" , "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65" , "\x73\x75\x62\x73\x74\x72" , "\x77\x77\x77\x2E" , "\x69\x6E\x64\x65\x78\x4F\x66" , "\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74" , "\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" , "\x53\x6F\x72\x72\x79\x21\x20\x43\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" , "\x20\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6F\x62\x75\x67\x2E\x63\x6F\x6D" ]; |
最后成功了,我们使用 127.0.0.1 等其它域名访问都会弹出提示框,然后跳到 caobug.com 网站。
到这里,问题就解决了,也实现了我们的想法。假期结束了,还没睡够呢~
破解JS加密:url unicode加密而已的更多相关文章
- 爬虫破解js加密(一) 有道词典js加密参数 sign破解
在爬虫过程中,经常给服务器造成压力(比如耗尽CPU,内存,带宽等),为了减少不必要的访问(比如爬虫),网页开发者就发明了反爬虫技术. 常见的反爬虫技术有封ip,user_agent,字体库,js加密, ...
- Python爬虫—破解JS加密的Cookie
前言 在GitHub上维护了一个代理池的项目,代理来源是抓取一些免费的代理发布网站.上午有个小哥告诉我说有个代理抓取接口不能用了,返回状态521.抱着帮人解决问题的心态去跑了一遍代码.发现果真是这样. ...
- Python破解js加密实例(有道在线翻译)
在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签名验证,对传输数据进行加密处理 对于js加密经过加密传输的就是 ...
- python爬虫_从零开始破解js加密(一)
除了一些类似字体反爬之类的奇淫技巧,js加密应该是反爬相当常见的一部分了,这也是一个分水岭,我能解决基本js加密的才能算入阶. 最近正好遇到一个比较简单的js,跟大家分享一下迅雷网盘搜索_838888 ...
- 1秒破解 js packer 加密
原文:1秒破解 js packer 加密 其实有点标题党了,不过大概就是这个意思. 进入正题, eval(function(p,a,c,k,e,d){e=function(c){return(c< ...
- 静态页面开发JS页面跳转加密解密URL和参数
页面跳转加密URL地址参数传递 window.location.href="foot.html?"+"good="+encodeURI(encodeURI(go ...
- JS逆向实战2--cookie-AcwScV2加密—某招标信息网
cookies的获取 首先拿到第一次访问原链接 拿到acw_tc的值,然后放到session中去 再用这个session再次访问原链接拿到js加载的加密的真实数据.用了一些反混淆. 最后获取这个数据中 ...
- URL参数加密解密
/// <summary> /// DES加密字符串 /// </summary> /// <param name=" ...
- js中变量base64加密传输
首先对base64进行定义: var Base64 = { _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01 ...
随机推荐
- Tomcat目录下文件详解
一.Tomcat背景 (转) 自从JSP发布之后,推出了各式各样的JSP引擎.Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供We ...
- hdu_1253_胜利大逃亡(bfs+剪枝)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 题意:三维BFS,不解释 题解:DFS+剪枝会超时,裸BFS会超时,BFS+剪枝才能AC,有点伤 ...
- .Net TransactionScope事务
使用TransactionScope类 正如名称所暗示,TransactionScope类用于限定事务代码块,其具有一些明显优点,例如范围与应用程序对象模型无关,同时提供了一个简单直观的编程模型等等. ...
- python--lambda和def函数
1.Python lambda和Python def区别分析 Python支持一种有趣的语法,它允许你快速定义单行的最小函数.这些叫做lambda的函数,是从Lisp借用来的,可以用在任何需要函数的地 ...
- vs2013执行Add-Migration出现的问题
1. 无法将"Add-Migration"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次 网上解决方法为:h ...
- MySQL数据表中内容大小写区分的设置
MYSQL在默认的情况下查询是不区分大小写的,例如: ? 1 2 3 4 5 6 7 mysql> create table t1( -> name varchar(10)); Qu ...
- linux下编译安装apache
在linux(CentOS6.5)上安装Apache,要首先确保以下程序事先安装 apr:The mission of the Apache Portable Runtime (APR) projec ...
- .net网站报错:对象的当前状态使该操作无效
微软在2011年12月29号发布的2011年最后一个更新让哥哥为程序出现的异常头痛了一天. 这个异常在页面数据量小的时候并不会触发,只在页面数据量大的情况下才会出现,开始解决起来让人无从下手,最后才发 ...
- 默认系统为UEFI启动的GPT分区的WIN7(8),如何安装VHD的UEFI WIN8(7)
默认系统为UEFI启动的GPT分区的WIN7(8),如何安装VHD的UEFI WIN8(7) 情况A:如果默认系统为UEFI启动.GPT分区的WIN7,想安装个VHD的UEFI WIN8.1 1:系统 ...
- 初识Selenium(四)
用Selenium实现页面自动化测试 引言 要不要做页面测试自动化的争议由来已久,不做或少做的主要原因是其成本太高,其中一个成本就是自动化脚本的编写和维护,那么有没有办法降低这种成本呢?童战同学在其博 ...