首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Lan小站

    JS逆向之MD5加密

    这两天碰到了两个MD5加密的js逆向,一个是猿人学第一题,还有一个就是在工作中。 然后发现了些规律,一般MD5加密之后的字符串是32位,也有16位,这基本都知道 但是在MD5加密的js代码中也有一些规律。 binl2hex(core_md5(str2binl(a), a.length * chrsz)) } function b64_md5(a) { return binl2b64(core_md5 20, -373897302); o = md5_gg(o, n, m, l, p[g + 5], 5, -701558691); l = md5_gg(l, o, n mwqqppz) 然后这是今天我发现的一个MD5加密代码 define("sc-list/m/compare-full-layout/src/js/md5.js", [], function(require

    4.7K01编辑于 2022-07-13
  • 来自专栏爬虫逆向案例

    js逆向-猿人学(5)乱码混淆增强

    猿人学爬虫题目第五题: 《Js乱码-混淆增强》,该案例也非常简单。 任务5:抓取全部5页直播间热度,计算前5名直播间热度的加和。 ---- 抓包分析下请求流程。 接口: http://match.yuanrenxue.com/api/match/5? 也可以根据数组内容来快速查看,经确定 _zw[23] = $_t1 然后搜了一下 _t1,找到确定为时间戳 f = Date.parse(new Date()) 接下来找cookie中的m 修改下js m调试完成之后,接下来看一下RM4hZBv0dDon443M,修改js脚本,然后重新调试 控制台F8, 当有值的时候,开始查看 点到 0x466db4时可以看到 RM4hZBv0dDon443M

    4.2K30发布于 2021-11-22
  • 来自专栏咸鱼学Python

    JS逆向 | 助力新手 , 两个JS逆向喂饭教程

    var token = md5(String(page) + String(num) + String(timestamp)); 这段代码我们可以用 js 实现也可以用 python。 分析请求 这次要分析的网站不同上一个的是,这次网站使用的是 cookie 加密, cookie 的有效期过了之后就会返回一段 js 。 ? 使用有效的 cookie 请求我们需要的数据就在返回的网页中,所以我们只要解决这段 js 就好了。 ? 分析加密 把返回的 js 复制到编辑器里格式化,可以看到代码分为两个部分: 参数定义部分: ? 到这里加密就分析结束了,获取全部代码,请后台回复「JS逆向」 加密二,完。

    5.8K50发布于 2019-08-06
  • 来自专栏漫流砂

    JS代码混淆 | js 逆向系列

    0x01 简介 文章较长,为保证有效传递知识,已经为大家准备了 PDF 版本,放在了文末 JavaScript代码混淆是一种通过对代码进行转换和修改,使其难以理解和逆向工程的技术。 下面是混淆JavaScript代码的一些主要意义: 防止代码被逆向工程:混淆使得代码的逻辑变得晦涩难懂,使攻击者难以理解代码的运行原理。这可以防止恶意用户或竞争对手直接分析、修改或复制您的代码。 /UglifyJS/ https://github.com/LiPinghai/UglifyJSDocCN/blob/master/README.md 使用方法 npm install uglify-js 根本就不重要,因为它完全可以做成一个黑盒子,随意自定义的对原代码的字符串进行修改,之后提供最终的字符串以及逆向还原的过程,最终通过 eval 来执行,所以回到我们的初衷,我们分析这种混淆压缩所采用的知识点 +[]+[+[]]]) 0x04 一些感想 代码混淆是一个代码保护以及阻止逆向分析的优解,但是我感觉不像是最终解,我相信代码混淆会在最终解中继续扮演重要角色 感谢创造代码混淆工具、方法以及与其对抗寻求解密的人

    8.3K20编辑于 2023-12-30
  • 来自专栏Python 爬虫

    人均瑞数系列,瑞数 5JS 逆向分析

    在 K 哥往期的文章《人均瑞数系列,瑞数 4 代 JS 逆向分析》中,详细介绍了瑞数的特征、如何区分不同版本、瑞数的代码结构以及各自的作用,本文就不再赘述了,不了解的同志可以先去看看之前的文章。 图片 VM 代码以及 $_ts 变量获取 获取 VM 代码和 $_ts 变量是第一步,和4代类似,复制外链 JS(例如 fjtvkgf7LVI2.a670748.js)的代码和 412 页面的自执行代码到文件 : var eval_js = "" var rs_ts = "" window = { $_ts: {}, eval: function (data) { eval_js 方法,先对传进去的参数做了一些编码处理,最后返回的是 hex_md5,和在线 MD5 加密的结果是一样的,说明是标准的 MD5。 图片 再来看一下 _$Nr 方法,先生成一个类似 53924 的值,然后一个 try 语句,注意这里有个方法,图中的 _$Js 方法,里面用到了 $_ts 里面的某个值,后面又生成了一个由数字组成的字符串

    4.4K30编辑于 2023-01-12
  • 来自专栏Python绿色通道

    JS逆向 | 助力新手 , 两个JS逆向喂饭教程

    var token = md5(String(page) + String(num) + String(timestamp)); 这段代码我们可以用 js 实现也可以用 python。 ? 分析请求 这次要分析的网站不同上一个的是,这次网站使用的是 cookie 加密, cookie 的有效期过了之后就会返回一段 js 。 ? 使用有效的 cookie 请求我们需要的数据就在返回的网页中,所以我们只要解决这段 js 就好了。 ? 分析加密 把返回的 js 复制到编辑器里格式化,可以看到代码分为两个部分: 参数定义部分: ? 到这里加密就分析结束了,获取全部代码,请加我微信回复「JS逆向

    2K20发布于 2020-03-10
  • 来自专栏Python 爬虫

    JS逆向百例】cebupacificair 航空逆向分析

    前言近期在知识星球中,有位星友在逆向一个航司的时候,遇到了点阻碍,向我提问,本期就对该网站进行逆向分析:逆向目标目标:cebupacificair 航空查询逆向分析网站:aHR0cHM6Ly93d3cuY2VidXBhY2lmaWNhaXIuY29tL2VuLVBILw 是另外一个 ceb-omnix_proxy 接口返回的:该接口有四个参数需要分析,也是有两个 content,估计都大差不差,我们继续先搜索,发现 authorization 是 main.xxx.js 文件返回的:而 main.xxx.js 文件是通过首页加载的,大致流程都梳理清晰了,我们开始进行逆向分析:逆向分析cookie 值从头开始,我们请求首页,发现他并没有返回 main.xxx.js 文件 第一个 ceb-omnix_proxy 接口第一个 ceb-omnix_proxy 接口我们用 xhr 断点来跟:清空缓存,刷新网站,跟到第一次进入 main.xxx.js 文件的位置,发现 e 变量中已经生成了 ,过程非常清晰,uniqueId 由 window.crypto.randomUUID() 生成,Us 是由 main.xxx.js 文件返回,通过搜索就可以找到。

    60902编辑于 2024-11-19
  • 来自专栏高并发流量解决方案

    什么是逆向JS

    逆向JS(JavaScript)通常指的是对已经编译或混淆的JavaScript代码进行分析、理解和修改的过程。这通常用于安全研究、软件破解、漏洞分析、或理解某些复杂的或混淆的代码。 逆向JS的过程可以相当复杂,因为JavaScript可以被多种方式混淆和保护。 以下是一些逆向JS的基本步骤和技巧: 代码美化(Beautify): 使用工具如JSBeautify或Prettier将混淆的代码转换为更易读的格式。 这可以帮助你发现代码中的错误或不一致之处,并验证你的逆向工程成果。 遵守法律和道德准则: 在进行逆向JS时,务必遵守相关的法律和道德准则。 请注意,逆向JS可能是一个复杂且耗时的过程,需要一定的编程经验和对JavaScript的深入理解。如果你是初学者,建议从简单的代码和示例开始练习,并逐渐增加难度。

    1.2K10编辑于 2024-07-01
  • 来自专栏二爷记

    JS逆向】某麻将游戏数据生成JS加密逆向分析探索!

    某游戏站麻将数据逆向,该页面数据在网页源码中无法找到,源码上没有,网页调试是存在数据的,数据是js文件驱动生成,需要JS加密逆向分析,逆向思路和方法知道借鉴和参考,可以说本篇是步步踩坑! 建议:JS逆向JS基础是关键,JS基础语法学习一定不要落下! 踩坑的根本原因在于:仅仅扣取JS代码是不行的,得会调试代码,能够修改代码,对于JS代码运行报错能够进行基本的处理和修改,使其正常运行! 网址: aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4vP2dvPWh0dHBzJTNBJTJGJTJGaG90ZWwuYmVzdHdlaG90ZWwuY29tJTJG 文件生成页面数据 5.老规矩,搜索关键字查找加密部分,这里关键字为 document.getElementById 6.可以看到就是1008js文件,在生成数据可疑处打上断点 7.断点调试验证数据生成, 可看到部分数据生成 8.继续下一行调试,验证,这里就考验js阅读能力了 9.经过对比打印输出验证,g就是我们要获取的值,运行输出g值即可 10.抠出js代码,并修改调试 由于关联函数多,基本上都可以全部抠出再进行修改

    63410编辑于 2024-01-12
  • 来自专栏二爷记

    JS逆向】某猫小说加密数据生成JS加密逆向分析探索!

    一个小说网站文字内容加密,不用说,肯定也是js加密,加密特征也比较明显,尤其是适合新人学习js加密逆向分析数据和内容,算是比较简单,只需要扣取代码,直接用获取的加密参数运行即可获取数据内容。 特征: 数据内容为加密数据段 打开目标网址,访问网站 2.获取加密数据,找到加密特征 3.老规矩,根据特征,搜索关键字,这里我们搜索 chapter_content 4.结果非常明显,只有一个加密js 文件,继续搜索 chapter_content 5.打开至面板,下断点,可以多下几处 6.断点调试,刷新页面 7.可以看到加密数据出现,继续下一行调试 8.接着调试,可以看到解密函数 9.点进去关键解密函数 PS:建议补好js基础知识! 最后还有一个参数需要获取到! 可惜的是在 Python 爬取中还是存在限制,没有获取到数据!

    1.2K10编辑于 2024-01-24
  • 来自专栏二爷记

    Js逆向分析,某礼品代发网POST登陆Js逆向分析

    固定参数 codeKey: 0.5908619931518229 #每次测试登陆值改变,随机生成 mobile: 13288888888 #手机号 password: "bfd59291e825b5f2bbf1eb76569f8fe7 第三步:分析解密逆向参数 关于 password 一般网站登陆密码的加密,没有特别设置的话,一般都是md5加密,通常使用的MD5就是会生成32位的和64位的不可逆的加密字符串! 拿到密码数据“bfd59291e825b5f2bbf1eb76569f8fe7”测试看看,网页上就有不少这样的加密解密工具可参考! ? 2.获取到搜索结果,定位到js文件 ? ? 3.进入到js加密文件中 ? 4.老路子继续搜索参数名codeKey ? 5.获取到位置,分别查看分析 ? ? ? 6.工具栏js调试查看 ?

    2K10发布于 2021-07-28
  • 来自专栏Python 爬虫

    JS 逆向百例】有道翻译接口参数逆向

    逆向目标 目标:有道翻译接口参数 主页:https://fanyi.youdao.com/ 接口:https://fanyi.youdao.com/translate_o? bv: 5b3e307b66a6c075d525ed231dcc8dcd 逆向过程 抓包分析 我们在有道翻译页面随便输入文字,可以看到没有刷新页面,翻译结果就出来了,由此可以推断是 Ajax 加载的, 参数逆向 salt、sign、bv 三个加密参数,全局搜索任意一个,搜索结果比较多,依次对比,可以发现 fanyi.min.js 文件第 8969 行左右开始,Form Data 所有的参数都齐全了,埋下断点调试一下 ()).hexdigest() # 对 UA 进行 MD5 加密,生成 bv 值 或者直接引用 JS,使用 nodejs 里面的加密模块 CryptoJS 来进行 MD5 加密,改写 JS 如下: // 引用 crypto-js 加密模块 var CryptoJS = require('crypto-js') function getEncryptedParams(data

    1.8K10发布于 2021-08-05
  • JS逆向百例】某江 Hospital 逆向分析

    前言最近又有小伙伴在逆向某网站的时候,碰到了点棘手的问题,过来询问 K 哥。经过分析,该网站既有加密参数,又使用了 WebSocket 协议来传输数据,正好可以丰富 JS 逆向百例专栏。 本文将对其进行逆向分析,仅作为学习研究:逆向目标目标:某 Hospital,逆向分析网址:较为敏感,感兴趣的小伙伴,私聊逆向过程抓包分析打开开发者人员工具,刷新网页,会发现被断住了,经典的无限 debugger B8%82%E7%AC%AC%E4%B8%80%E4%BA%BA%E6%B0%91%E5%8C%BB%E9%99%A2%E5%8C%BB%E7%94%A8%E7%94%B5%E5%8A%A8%E9%97% A8%E7%BB%B4%E4%BF%9D%E6%9C%8D%E5%8A%A1%E9%A1%B9%E7%9B%AE%E8%AF%A2%E4%BB%B7%E5%87%BDBase64 编码解码:https: 跟到 app.07b0b337.js 文件中,代码未经过混淆处理:该处创建了一个 Promise 对象,往上跟,会发现,h 就是 post 请求中,data 参数的加密结果:h = w["encryptSessions

    51700编辑于 2024-12-30
  • 来自专栏咸鱼学Python

    Js 逆向进阶 | 浅谈 Js 代码保护

    看了他们这个说明可能以上两个功能相对比较吸引人: 因为加密和压缩这种太容易被人分析了,原理比较简单; 控制流混淆对于逻辑的处理能够增大分析难度,原理上其实就是分析js得到语法树,通过操控语法树,比如对于 2.Js2x http://ty2y.com/obfuscate/#how-to-use ? 这个跟上面那个多态变异是一样的。 vmp 最强的,这种方案其实也是很好理解的,比如对于一个js代码来说,我们只用js操作写一个基于栈的解释器,然后对于本身要保护的js进行虚拟化,定义一堆自定义操作,这个时候其实还是比较弱,因为全部是 结合服务端针对多样性来增加难度; 5.做移动安全代码保护的传统厂商们 这里就不评论分析了,因为他们可能重点在APP相关的dex、so以及手游相关的文件上;6.其他 像其他的一些大厂比如阿里这种肯定做了jsVMP 总结 对于 js 这种语言来说,由于语言本身的特殊性,一定的保护是非常必要的,再结合浏览器本身的发展,为了性能会在编译上做处理,引入本地层的东西,比如谷歌的 V8 ,火狐的 asm.js 在安全性上:业务上更多的结合服务端动态特性以及客户端强大的静态代码保护的设计会达到一个比较好的效果

    29.2K20发布于 2020-01-14
  • 来自专栏全栈程序员必看

    初探js逆向「建议收藏」

    转载自 三尾先生 博客 初探js逆向 在开始之前想先说下阅读完三尾先生这篇文章的一点个人理解,文章写得挺好的,很值得新手学习了解,首先谈下逆向激活成功教程思路 1.需要逆向的时候一般是遇到了加密问题 而请求参数的加密一般就需要反复断点了,先断点到加密完成(即ajax发送参数值)然后再反复断点一步一步的往上推直到原始参数的传参; (下面就是三尾先生 初探js逆向的原文了,很值得阅读了解练手) 前言 js逆向是让爬虫萌新们比较头疼的一块领域,因为市面上大部分的爬虫书籍等教程都未涉及这方面知识,需要爬取用js加密的网站时常常无从下手,只能使用selenium等自动化框架来模拟人工点击。 但这种方式往往效率低下,所以本文将以企名片这个网站为例,带大家初探js逆向。 篇幅问题就只贴部分代码: //解密函数 function my_decrypt(t) { return JSON.parse(s("5e5062e82f15fe4ca9d24bc5",

    2.6K30编辑于 2022-09-07
  • 来自专栏Python编程与实战

    JS逆向之国航登录

    分享另一个破解JS登录的案例 抓包 网站如下:http://www.airchina.com.cn/www/jsp/userManager/login.jsp 下面是登录的抓包: ? 因为 JS 代码一般是根据输入框的 id 标签取相应的值,然后做加密! ? id标签 搜索结果如下: ? 结果 猜测应该是 RSA 加密! 分析 在加密的位置打上断点,重新发请求: ? 点击该函数进入,可以发现 RSAUtils 的定义及其相应的函数都在这个 JS 文件中,直接一把梭,将该文件中的 JS 代码全部复制下来吧: ? 所以也将bodyRSA 函数对应的的 JS 代码复制下来。最终本地 JS 文件内容如下: ? 最后,自己写个 JS 函数,执行一下,并和抓包的数据进行对比验证结果: ? 总结 可以看到在流程当中比较重要的地方就是: 1.找规律,寻找这些数据的加密规则 2.调试 JS,使用浏览器或者在本地进行调试 3.模拟数据,将这些数据通过代码模拟生成,然后加入到数据当中

    1.8K60发布于 2019-12-04
  • 来自专栏漫流砂

    参数加密签名 & JS逆向

    逆向技术会成为渗透测试工程师与红队检测相关人员的必备技能,所以目前相关文章和视频主要是搞爬虫那帮人在写这件事让我感到十分不安,于是有了这篇文章 下面是一些案例 可以看到,同样的参数,包重放就会导致 逆向请求过程 这个过程中有很多技巧,最原始的方式就是一点一点跟栈 本地先安装 nodejs 环境,用于本地执行 js 文件,本次用于解密的 js 名称为 js_rev.js 1. X-K-Header 如果服务器想让客户端发起一个请求,并携带特定的请求头,那肯定是在 js 中定义好的,要么是访问即加载的js,要么是服务器远程返回的js,我们直接在开发者工具中搜索该字符 (Ctrl + f) 打开搜索 这一步的目的是在服务器 js 文件中(或者服务器返回的js代码)找到我们希望的字符,所以可以看到,这里只有一个 main.js 中包含该字符,我们点进去 搜索相关字符 有两个结果 逆向解密返回值 对于安全人员来说,返回值不见得一定要逆向,毕竟浏览器会帮我们显示出来 如果我们从xhr 断点处一点一点向下进行调试,是可以找到解密方法的,但是这种方法效率太低了 从返回内容和头来看,

    2.3K21编辑于 2023-10-23
  • 来自专栏咸鱼学Python

    JS逆向之漫画柜

    这次文章是补之前文章提到的eval加密 之前简单介绍了常见的JS混淆:JS逆向常见混淆总结 里面提到的第一种混淆就是这次要分析的主角,这里分析的网站是「漫画柜」 查看请求 打开控制台,随意点击一本漫画 第二种就是按照之前的文章提到的分析流程,我们分析一遍,虽然麻烦点会走弯路但是适合新手: 没有看过的朋友可以点击下面的文章链接回顾一下:实战案例浅析JS加密 - 基础总结篇 先搜索一下关键字,这里加密的参数是 md5,所以试试下面这几种搜索关键词: 1md5: 2md5 : 3md5= 4md5 = 5md5 搜索结果如下: ? x73\x70\x6c\x69\x63']('\x7c'), 0, {})) 解密过程 我们来捋一捋整个过程,首先网站加载页面,执行了这段eval,解密了参数里的一堆密文,之后根据参数请求具体内容,那我们逆向只要拿到页面的代码 JS逆向是细致活,需要大胆假设,小心求证,耐心调试,同时在逆向过程中卡住了需要求助的时候也不要不好意思。把自己思考的结果、遇到的问题描述清楚附上小小的红包和大佬聊聊,会有意想不到的惊喜。 共勉~

    1.9K30发布于 2019-07-05
  • 来自专栏不止于python

    python爬虫 JS逆向过程

    目标地址 这篇来讲讲逆向破解js的方法, 先拿美团外卖的请求参数, X-FOR-WITH 练练手 请求地址: https://h5.waimai.meituan.com/waimai/mindex /home 直接开始 打开Chrom, 打开控制台, 查看请求 发现需要解密的参数: X-FOR-WITH, openh5_uuid(uuid), _token 以X-FOR-WITH为例 按照正常来说 , Ctrl + f打开搜索, 粘贴X-FOR-WITH, 应该能找到相关的js文件, 然后就直接会找到加密的地方, but并没有发现有关的js文件 接下来使用杀手锏 打断点 选择url包含food 小技巧 点击这里, 可以直接格式化js哦!!!

    1.4K30编辑于 2022-05-31
  • 来自专栏Python编程与实战

    JS逆向之电信登录

    抓包 万幸只有一个加密参数,搜索大法好呀,拿着加密参数全局搜一下,参数值呢就是密码输入框的 id 标签,和上一篇分享的那个 JS 逆向案例一样的。有惊喜… ? 十有八九就是它了,来下个断点走起。 点进去瞅瞅,看代码好像找到了JS 加密的代码 ? 一步步往下走,直接断到返回值,发现为空 ? ? 继续往下走,断点又回到最开始那个判断函数,然后进入了另一个加密函数 ? 很简单吧,全部复制下来吧… 破解 找到加密 JS 就好办了,复制下来,在本地调试一波 ? 然后再把调用函数也一并拿下来 ? 在本地执行一下,然后和网站抓包数据比对下结果,结果一致! ?

    2.4K20发布于 2019-12-04
领券