js 控制鼠标_JS逆向 | 面向小白之eval混淆

6a94af6f29cd05379ec4c3e663280080.png

所有文章首发在我的微信公众号“逆向新手”,更多逆向系列请关注公众号,谢谢!

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

引言

eval混淆,其实就是利用了eval()函数的特性,它跟Python里的eval函数差不多,能把字符串解析成代码来执行。如:

eval("var text = 123")  // 就是在执行括号里的代码
console.log(text)  // 输出 123

它的还原也很简单,只需要把 eval 改成 console.log ,然后在浏览器的控制台(Console标签)输出,即可还原出源代码,如下所示:

ec5d1e9bd5453666503f444ca27a5c1f.png


不过据有些大佬说,碰到过即使改成console.log,也不会显示出源代码的eval混淆。反正我是没碰到,碰到我也不会╮(╯▽╰)╭

接下来正式开始吧~

某市房产信息平台

目标网站:

aHR0cDovLzYwLjE3My4yNTQuMTI2Lw

访问网站,随意点击一个小区,会跳转到一个随机网址,但是在页面源代码中,却看不到该网址信息,只能看到如下所示:

fcb5d7357a878468c06685c47f29b572.png


看到这里有个 οnclick=“reurl(this)” ,意思就是“在点击时”触发 reurl 函数,那我们就全局搜索(ctrl+shift+F) reurl 这个函数

675207c1f1957e7042f1956e6b9f0368.png


搜到的第一个文件为页面代码,所以很明显就是第二个文件,进去再搜索(ctrl+F) reurl,看到只有一个结果,是一个eval混淆,那就照着上面说的还原下吧~

6158e69f339656e8dc690fb110a78b40.png


果然出来了一个 reurl 函数。不过这里我采用另一种办法,能够更快的定位,直接在console控制台输入 reurl 回车即可。

f4b7932b6342e14f18bc224b80a02f3b.png


如果代码都在一行,可点击左下角{}进行美化。接下来就是进入下断点调试了,点击前面的行数(即下断点,数字上会出现蓝色标签),然后随便点个小区,程序就会停在断点处(即运行到这一行,但这行还没运行)。这时候把鼠标放在 a.id 上面可知它就是前面图【2】页面上的id值。

e0e3d806ced1906a757cd850d3264d9d.png


先把这段代码复制到本地js文件中,修改成本地可以运行的样子,如下:

function reurl(id) {var a = "/item/" + recode(id)return a  // 这里的a即为我们要的网址链接
};

接着再把鼠标放在 recode 函数上面,点击上方的链接,继续跳转到该函数中。

725fcadc8637cfaaaad564009af276ab.png


又看到两个新的函数出现,nscaler 和 SetObjNum,一样的,复制这段代码到本地并稍作修改,继续下断点,然后按F8,让程序往下运行,进入函数,扣扣扣就行啦。

某变IP

目标网站:

aHR0cHM6Ly93d3cuYmFpYmlhbmlwLmNvbS9ob21lL2ZyZWUuaHRtbA==

打开F12,刷新网页,发现需要的数据都在free.html中,但查看网页源代码,发现IP字段被加密

c00e561a6d91badf142776b1b5f5222f.png


一样可以在控制台输入或全局搜索FFcontraceptive(这个名称会变,根据网页提供的搜索)。这里采用全局搜索,搜到两个文件,其中一个为free.html,都是源代码加密的地方。那明显在第二个中,打开看下

2be7ef96c694ba9f706741ac8ce0e8b9.png


可以看到这里调用了ddip函数,尝试打断点并刷新网页,发现断不上。因此在这文件中搜索ddip看下。

0a1bae970ffddc5e67ddf800c72d2189.png


总共只能搜索到两个结果,但是这里看到有个eval,看来又是被混淆了,一样的套路还原一下。

2fd8674fe7f767bcc41392991992ad32.png


将还原后的代码保存到本地,同理将这段eval上面一段的eval还原,得到如下代码:

8e3b54c487ce65106db92a1df5f38a2a.png


我们运行一下ddip函数,发现报错$未定义。这里可以看到其实是用了base64的decode函数。还是在原来的js文件中搜索decode,可以找到base64就在这个自执行函数中生成

fe911f1c163cbfaa5ea2f914c23445de.png

将这段匿名函数整个复制下来,把最后的传参jQuery改成

= {}; 即可运行:

1a09bfbc81d4efd7e1c14d18d1d4fd42.png


这两个都没什么难度,对于一些不懂的地方,可以多下断点,然后鼠标悬停,或复制它到控制台查看就行了,就是不断调试的过程。

两个网站的详细代码,均已上传本人GitHub,可点击此处跳转。希望各位先自己练习试一下,不明白的再配合代码理解哦~

欢迎关注我的微信公众号“逆向新手”,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac mysql密码错误_解决mac 下mysql安装后root用户登录密码错误问题

使用的mac OS 10.11 安装mysql后访问root/root用户失败,网上找了一些解决办法,下面记录下解决方法方便以后自己查询概述(看懂下面就不用看了):停服务:sudo /usr/local/mysql/support-files/mysql.server stop安全模式…

mongodb 输出数组字段_MongoDb文档操作、索引操作

学习主题:MongoDb学习目标:掌握mongodb文档的更新掌握mongodb文档的删除掌握mongodb文档的查找掌握mongodb文档的条件操作符掌握mongodb中的索引操作Mongodb的更新方式Update()函数更新Save()函数更新Mongodb的update更新?Update用于更新已存…

表情符号mysql utf8mb4_mysql utf8mb4与emoji表情

一 什么是Emojiemoji就是表情符号;词义来自日语(えもじ,e-moji,moji在日语中的含义是字符)表情符号现已普遍应用于手机短信和网络聊天软件。emoji表情符号,在外国的手机短信里面已经是很流行使用的一种表情。手机上如何使用emoji&…

html自适应_web前端入门到实战:HTML 文档流,设置元素浮动,导致父元素高度无法自适应的解决方法...

元素浮动定义float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。如果浮动非替换元素,则要指定…

idea 远程调试_我的天!你竟然不会用IDEA远程调试Tomcat...

# 准备工作明确的远程服务器的IP地址,某些我是:192.168.92.128关掉服务器防火墙:service iptables stop# 本地远程服务器配置添加远程服务器,如下图复制远程服务器自动生成的JVM参数,等下有用,如下图&#…

跨域获取后台数据undefined_同源策略amp;JSONP跨域

同源策略&JSONP跨域同源策略 对于同源的定义,MDN给出了这样的解释:如果两个页面的协议,端口(如果有指定)和主机都相同,则两个页面具有相同的源。如何确定两个页面是否同源,只要比较两个页面…

python 除数不能为零的报错有哪些_【社区精选40】Python错误处理及代码调试方法(文末赠书中奖名单)...

本文整理自爱数据学院中的问答更多精彩问答,进入下方社区网站查看http://www.lovedata.cn/invitation社区精选话题 第40期Python错误处理及代码调试方法一次写完代码程序并能够正常运行的概率很小很小,总会有各种各样的错误bug需要处理。有的报错简单&a…

mac mysql prefpane_【MySQL数据库开发之一】Mac下配置安装数据库-MySQL

本站文章均为那么从今天开始陆续会更新数据库和Hibernate框架的博文,也是Himi学习的历程记录,希望大家能共同讨论和研究;OK,本篇简单介绍安装吧,首先到MySQL官方网站:如上图:点击DOWNLOAD &…

系统新模块增加需要哪些步骤_想要吸引人流,儿童乐园需要增加哪些新设备呢...

儿童乐园是现今最火爆的一个投资项目,因为它的主要消费群体是孩子,而现在的家长们对孩子们的宠爱,基本都会答应让孩子们去儿童乐园里面玩耍。但是儿童乐园的投资经营者也会遇见一些小问题,例如儿童乐园添加设备要怎么选择呢&#…

照片打印预览正常打印空白_小米发布口袋照片打印机,可无墨打印3寸背胶照片...

9月11日消息,小米推出一款小米口袋照片打印机。与之前的小米米家照片打印机相比,这款新品更加小巧便携,体积接近充电宝大小,净重仅181g,便于随身携带。小米口袋照片打印机采用ZINK无墨技术打印,即使用嵌入纸…

MySQL优化调优有没有做过_MySQL 调优/优化的 100 个建议

MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供 101 条优化 MySQL 的建议。有些技巧适合特定的安装环境,但是思路是相通的。我已经将它们分成了几类以帮助你理解。MySQL监控MySQL服务器硬件和OS(操作系统)调优&…

mysql核心参数_MySQL技术体系之核心参数

本文主要基于MySQL 5.7版本的数据库环境,总结my.cnf文件中核心参数的配置使用,让更多的人对MySQL技术体系有更全面、更专业的深度了解。一、客户端核心参数1、port端口号,默认33062、socketSocket文件地址,默认以.sock为文件名称后…

jtag引脚定义_从逆向分析的角度学习硬件调试技巧JTAG,SSD和固件提取

我想从逆向的角度做了深入了解JTAG,JTAG是许多嵌入式CPU使用的硬件级别调试机制,我希望通过这篇文章从逆向工程师的角度解释如何使用JTAG,并在此过程中提供一些实际示例。0x01 研究目标通过这篇文章,我希望做到以下几点&#xff1…

python virtualenv conda_在vscode中启动conda虚拟环境的思路详解

问题:cudatoolkit cudnn 通过conda 虚拟环境安装,先前已经使用virtualenv安装tf,需要在conda虚拟环境中启动外部python虚拟环境思路:conda prompt即将 [虚拟环境位置] 以参数形式传入 [activate.bat]VSOCDE中的设置添加以下语句{&…

远程过程调用失败_Java开发大型互联网RPC远程调用服务实现之问题处理方案

引言RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络…

chrome 新的session 设置_为什么还是由这么多人搞不懂Cookie、Session、Token?

作者:不学无数的程序员链接:https://urlify.cn/Yfm6Vr# Cookie洛:大爷,楼上322住的是马冬梅家吧? 大爷:马都什么? 夏洛:马冬梅。 7大爷:什么都没啊? 夏洛…

eview面板数据之混合回归模型_【视频教程】Eviews系列25|面板数据回归分析之Hausman检验及本章常见问题解答...

点击上方关注我们!本期我们学习Eviews统计建模最后一部分--面板数据回归分析Hausman检验及本章常见问题解答。实操:Hausman检验判断是固定效应模型还是随机效应模型上期我们讲到模型判断若选择模型2,需进一步通过Hausman检验判断固定效应还是随机效应,接…

mybatis mysql selectkey_Mybatis示例之SelectKey的应用

SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。不管SelectKey有多好,尽量不要遇到这种情况吧,毕竟很麻烦。SelectKey需要注意order属性,像Mysql一类支持自动增长类型的…

java treetable_在Swing中创建TreeTable | 学步园

TreeTable是Tree和Table的一个结合-就是一个即能够展开和收起行,同时也能够显示多个列的组件。在Swing的标准包里没有一个叫做JtreeTable的组件,但是我们很容易通过把Jtree做成Jtable的渲染器来创建一个这样的组件。这篇文章就是关于如何使用…

python期末大作业_大一期末考试很重要,考得好不仅有机会有钱拿,还有机会换专业...

现阶段很多高校放寒假的时间已经公布,这也就意味着,大学期末考试即将到来。对于大一新生来说,大学的期末考试是比较新鲜的,因为大家都没有经历过。经历过大学考试的学生,都知道大学的大概学习模式,一般情况…