JS逆向 | 面向小白之eval混淆
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
引言
由于前几篇文章对小白不太友好,有些读者希望可以从简单易懂点入手,所以那就开始吧,come on baby~
eval混淆,其实就是利用了eval()函数的特性,它跟Python里的eval函数差不多,能把字符串解析成代码来执行。如:
eval("var text = 123") // 就是在执行括号里的代码
console.log(text) // 输出 123
它的还原也很简单,只需要把 eval 改成 console.log ,然后在浏览器的控制台(Console标签)输出,即可还原出源代码,如下所示:
不过据有些大佬说,碰到过即使改成console.log,也不会显示出源代码的eval混淆。反正我是没碰到,碰到我也不会╮(╯▽╰)╭
接下来正式开始吧~
某市房产信息平台
目标网站:
aHR0cDovLzYwLjE3My4yNTQuMTI2Lw==
访问网站,随意点击一个小区,会跳转到一个随机网址,但是在页面源代码中,却看不到该网址信息,只能看到如下所示:
看到这里有个 οnclick=“reurl(this)” ,意思就是“在点击时”触发 reurl 函数,那我们就全局搜索(ctrl+shift+F) reurl 这个函数
搜到的第一个文件为页面代码,所以很明显就是第二个文件,进去再搜索(ctrl+F) reurl,看到只有一个结果,是一个eval混淆,那就照着上面说的还原下吧~
果然出来了一个 reurl 函数。不过这里我采用另一种办法,能够更快的定位,直接在console控制台输入 reurl 回车即可。
如果代码都在一行,可点击左下角{}进行美化。接下来就是进入下断点调试了,点击前面的行数(即下断点,数字上会出现蓝色标签),然后随便点个小区,程序就会停在断点处(即运行到这一行,但这行还没运行)。这时候把鼠标放在 a.id 上面可知它就是前面图【2】页面上的id值。
先把这段代码复制到本地js文件中,修改成本地可以运行的样子,如下:
function reurl(id) {var a = "/item/" + recode(id)return a // 这里的a即为我们要的网址链接
};
接着再把鼠标放在 recode 函数上面,点击上方的链接,继续跳转到该函数中。
又看到两个新的函数出现,nscaler 和 SetObjNum,一样的,复制这段代码到本地并稍作修改,继续下断点,然后按F8,让程序往下运行,进入函数,扣扣扣就行啦。
某变IP
目标网站:
aHR0cHM6Ly93d3cuYmFpYmlhbmlwLmNvbS9ob21lL2ZyZWUuaHRtbA==
打开F12,刷新网页,发现需要的数据都在free.html中,但查看网页源代码,发现IP字段被加密
一样可以在控制台输入或全局搜索FFcontraceptive(这个名称会变,根据网页提供的搜索)。这里采用全局搜索,搜到两个文件,其中一个为free.html,都是源代码加密的地方。那明显在第二个中,打开看下
可以看到这里调用了ddip函数,尝试打断点并刷新网页,发现断不上。因此在这文件中搜索ddip看下。
总共只能搜索到两个结果,但是这里看到有个eval,看来又是被混淆了,一样的套路还原一下。
将还原后的代码保存到本地,同理将这段eval上面一段的eval还原,得到如下代码:
我们运行一下ddip函数,发现报错$未定义。这里可以看到其实是用了base64的decode函数。还是在原来的js文件中搜索decode,可以找到base64就在这个自执行函数中生成
将这段匿名函数整个复制下来,把最后的传参jQuery改成$,并在最开头定义一下 var $ = {}; 即可运行:
这两个都没什么难度,对于一些不懂的地方,可以多下断点,然后鼠标悬停,或复制它到控制台查看就行了,就是不断调试的过程。
两个网站的详细代码,均已上传本人GitHub,可点击此处跳转。希望各位先自己练习试一下,不明白的再配合代码理解哦~
欢迎关注我的公众号“逆向新手”,逆向系列将持续更新!
JS逆向 | 面向小白之eval混淆相关推荐
- js 控制鼠标_JS逆向 | 面向小白之eval混淆
所有文章首发在我的微信公众号"逆向新手",更多逆向系列请关注公众号,谢谢! 声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 引言 eval混淆 ...
- JS逆向之常见编码和混淆加密方式(二)
继上篇讲到JS的一些常见编码加密方式后,本篇继续讲解一下编码加密方式. JS加密方式: 1.HMAC 加密 2.DES对称加密 3.AES 对称加密 4.RSA 非对称加密 5.https 对称密钥加 ...
- JS逆向 | 某售房网高度混淆分析(二)
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 本文接着上篇文章分析,没看过的请先看<JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)> 直接搜 ...
- 【JS 逆向百例】反混淆入门,某鹏教育 JS 混淆还原
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...
- JS逆向、破解、反混淆、反浏览器指纹——JS补环境框架
JS逆向的主要思路一般有这几种 1,利用AST反混淆,因为用的就是AST混淆的,所以理论上应该都能用AST再返回去.但是实际操作好像不容易. 2,跟值,一步一步找到加密方法和密钥.现在很多混淆方法,把 ...
- Js逆向教程-10常见代码混淆
作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!
- js逆向学习记录某真气网
项目场景: 第一次写不知道能否表达清楚 在B站上学习JS逆向,结果学到最后一个练习项目时.因为之前学习得人把人家网站搞崩了.到了我来爬取得时候,这个网站反爬已经大幅度升级了,爬取难度急据升高. 声明: ...
- 助力小白常见JS逆向乱杀喂饭教程——Url加密
专栏作者:战俘巡航,爬虫工程师,具有丰富的Python数据采集经验. 最近,读者希望公众号能出一些JS逆向的干货教程,所以,安排! 首先不知道能写多少简单易懂的逆向内容供小白们吸收学习,目前先不讲混淆 ...
- JS逆向寻找生成bid变量的加密算法,一顿操作猛如虎,结果发现原来是混淆代码
分享一下最近我JS逆向的心得. 我最近使用Python爬取某个网站某个链接,用requests的get发送请求得到的status_code不是200,请求失败.在浏览器的开发者工具里查看该链接的详细信 ...
- 【Js逆向】__jsl_clearance ob混淆加速乐
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉. 前言 简单的Js逆向, 这是个不错的案例. 加速乐兄弟篇: 标题 链接 [Js逆向]__jsl_clearan ...
最新文章
- R语言多因素有交互方差分析(Two-Way ANOVA)实战:拟合多因素有交互方差分析模型、分析不同分组的差异TukeyHSD、多因素有交互方差分析的结果总结
- 云知声CEO黄伟:AI对产业的驱动不仅是创新更是颠覆
- 边缘会话控制器SBC
- 训练集 测试集 验证集_Python机器学习实战:划分训练集和检验集
- 加法器 编码器 译码器 显示译码器
- ios UIPickerView 技巧集锦
- php $handle,laravel $kernel-handle 报错的解决办法_PHP开发框架教程
- nginx 一个请求发给多台机器_配置Nginx实现负载均衡
- MySQL之User(用户)和Privilege(权限)
- 程序员的必杀技——编程全能词典
- leecode第二百九十二题(Nim游戏)
- 阿里云的背后故事(希望别被关了)
- HSRP热备份路由协议配置详解
- 中州韵输入法 linux 小鹤双拼,App Store 上的“iRime输入法-小鹤双拼五笔郑码输入法”...
- 【3D建模制作技巧分享】Zbrush如何将图片转浮雕模型
- gm220s路由器怎么设置_教你netgear无线路由器怎么设置全图解教程
- VMware 克隆失败,提示指定的虚拟磁盘需要修复【已解决】
- 慧尔视:以CRM为抓手,打造用数据说话的企业
- Linux中samba配置和windows映射Linux驱动盘
- 从零带你学Linux
热门文章
- sd卡无法读取怎么修复?还能恢复数据吗?
- 【转载】Linux下用dd命令扇区读写SD卡
- jQuery Ajax async=false异步改为同步时,导致浏览器假死的处理方法
- android aidl参数contentvalues,Android Studio实现进程间通信AIDL详细步骤
- ECCV 2020预会议 直播笔记| Cross-Modal Weighting Network for RGB-D Salient Object Detection
- mp3文件合并java_Android - 合并mp3文件
- (转)《蜗居》带给校园男女多少悲喜
- 一个安全删除文件的shell命令
- Linux下查看CPU、内存占用率
- my.cnf配置详解