开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2651|回复: 14
收起左侧

[讨论] 关于JS逆向的十八般武艺都有哪些

[复制链接]
结帖率:100% (17/17)
发表于 2021-7-14 15:49:51 | 显示全部楼层 |阅读模式   上海市上海市
大家好,我是黑骑士,论坛的一名不成器的小开发小码农,今天我们讨论的话题相对敏感性和技术性,废话不多说进入正题

《关于JS逆向的十八般武艺都有哪些?》



以下是以登录报文为背景,个人经验中的一个概述吧,可能有所缺陷与过时,本贴仅作学习讨论,欢迎各位大佬们显示自己的 “JS逆向之降龙十八掌”




JS逆向是衍生在爬虫、HTTP模拟技术中的,一般我们会通过报文的分析模拟来预测“加密项”,然后通过“十八般武艺”来实现官方客户端请求服务端的一个过程,上重头戏的第一项↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓




一、HTTP 报文解析

在F12抓取到一个web的服务器通讯的http报文请求时,往往我们会关注这几点内容

  • HTTP请求地址
  • 请求方式
  • 请求参数
  • 请求协议头
  • 请求Cookies





二、加密项的揣测

参数


参数就是请求体这里针对不同的请求方式有不同的概念英文称为requestParam和requestBody,观测报文后第一点我们关注的就是参数了我们会看到我们在web页面表单域提交的数据或部分数据或者根本没有数据,这里就诞生问题了

问题一:为什么只有部分数据

问题二:为什么没有数据,但是返回值真的是登录的返回数据包

答:可能敏感数据在客户端(web)已经进行了相应的加密值处理,举例一个用户名和密码

  1. #第一种
  2. user=a123456&pwd=202cb962ac59075b964b07152d234b70
  3. #第二种
  4. data=e9858915767179c31e79c2fff9bc719d4035e760906175d1048c13ea8f6efdaacc5ec837d04e6a4c8cd1a8feacd13f976ec7f5efeb575592a2294b8c6b6a603f
  5. #第三种
复制代码

这样的就是一个加密处理或者其他方式传递的“请求体”,但是我们无从得知是什么加密方式

协议头:

协议头就是请求头英文称之为requestHeader,那么常见的协议头有以下几点

  1. Host: 2.kr887.com #主机地址
  2. Connection: keep-alive  #<span style="box-sizing: border-box; outline: 0px; color: rgb(77, 77, 77); font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; font-size: 16px; background-color: rgb(255, 255, 255);">表示使用</span><span style="box-sizing: border-box; outline: 0px; color: rgb(77, 77, 77); font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; font-size: 16px; background-color: rgb(255, 255, 255);">Keep</span><span style="box-sizing: border-box; outline: 0px; color: rgb(77, 77, 77); font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; font-size: 16px; background-color: rgb(255, 255, 255);">-</span><span style="box-sizing: border-box; outline: 0px; color: rgb(77, 77, 77); font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; font-size: 16px; background-color: rgb(255, 255, 255);">Alive</span><span style="box-sizing: border-box; outline: 0px; color: rgb(77, 77, 77); font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; font-size: 16px; background-color: rgb(255, 255, 255);">方式,即数据传递完并不立即关闭连接</span>
  3. Accept: application/json, text/javascript, */*; q=0.01  #<span style="color: rgb(77, 77, 77); font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; font-size: 16px; background-color: rgb(255, 255, 255);">表示我们所用的浏览器能接受的Content-type</span>
  4. User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 #浏览器客户端信息
  5. X-Requested-With: XMLHttpRequest #标识为AJAX请求
  6. Referer: http://2.kr887.com/?buyok=1 #请求来源页
  7. Accept-Encoding: gzip, deflate #<span style="color: rgb(51, 51, 51); font-family: &quot;PingFang SC&quot;, &quot;Lantinghei SC&quot;, &quot;Microsoft YaHei&quot;, arial, 宋体, sans-serif, tahoma; font-size: 16px; background-color: rgb(255, 255, 255);">向服务器申明客户端(浏览器)接收的编码方法,通常为压缩方法</span>
  8. Accept-Language: zh-CN,zh;q=0.9 #<span style="background-color: rgb(255, 255, 255); color: rgb(77, 77, 77); font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; font-size: 16px;">是语言和编码信息</span>
复制代码

那么有时候我们会遇到一些其他没见过协议头的比如:TOKEN、DATA、TIMESTAMPE、AUTH-TOKEN等等等等,那么这些可能是这样的形式

  1. TOKEN: dc3a85a541addb8dd88f20ecb53630b589632de5e9e63c49a78e57c68603448d66fa5824ee7fa2edd96b75979cc1db2b9257fabf056ee57a081eb9a708ecd183
复制代码

这些呢,其实也是客户端传入进来的加密项,需要逆向师傅们来解析模拟算法的了

Cookie:

cookie是我们可以在协议头种看到的一个数据,这个数据区别于协议头,它也是http报文中一个组成部分cookie不是饼干,而是存储在计算机本地终端的一种数据,也是一个key-value形式存储的,有时我们的数据也会藏在这个里面发送给服务器方,当然伴随问题有如上的加密情况

  1. a=83ab1c68acb086de988f5033f30898359ed15704627d602058bc80a98c1fe6f0d3ae89c803c9599553668bc28b36f60490feb8b3381462e3aab765f0bfe04110;b=477256dc850934f08aac04d3d3c175369db18db83bcba2d74b117083afdbe533821589f65797c1644d5a04b5506f7f5b42fdcf760b25f4bee5a0b75dab36c2;monitor_count=5
复制代码

三、加密定位

URL:

我们可以拿到URL地址上面的地址比如http://www.baidu.com/api/login 我们可以用 api/login作为搜索的关键词进行搜索定位到发送请求的这个步骤


参数名/协议头/Cookies:

利用参数名、协议名、Cookies全局搜索定位,然后看局部代码,进行定位是否发送请求的步骤然后观测数据参数的获取和组装,进行动态调试+静态分析

请求调用栈:

直接定位到请求发送的地方,然后向上追溯,找到参数数据组装的起点,可以理解为从终点倒退到起点的地方


往下呢。。。就是我们看到了数据代码组装数据的过程了,无非是跳来跳去的代码,还有混淆,无法动态调试debugger的,这些呢不作为今天讨论的主题,我们综上所述,共享出自己和大家有什么逆向遇到的问题或者自己的套路


我就遇到过很多调用栈追溯的时候线程隔离的,参数一直向上跑跑不到尽头而失去耐心的情况也有。混淆的JS难以还原的,根本就定位不到地方的,因为加密是一进入页面就开始的缘故,此时找不到切入点了等等等各种问题的发生


然后呢欢迎各位新人!大佬分享自己的心得与经验 以致于共同学习!共同进步!



评分

参与人数 1好评 +1 精币 +2 收起 理由
万古一念间 + 1 + 2 这tm才是我们易友学习得榜样。

查看全部评分

结帖率:96% (369/384)

签到天数: 1 天

发表于 2021-7-20 14:16:02 | 显示全部楼层   江苏省南通市
黑骑士ol 发表于 2021-7-20 12:53
百d一下 黑骑士易语言 我还真搜到了=-= 自己都糊里糊涂地 啥时候火的。。。 ...

好多,网站 不能用  啊       ;出一个最新的 吧
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)
 楼主| 发表于 2021-7-20 12:53:43 | 显示全部楼层   上海市上海市
zz3250183 发表于 2021-7-19 14:41
你的视频 教程  呢?

百d一下 黑骑士易语言 我还真搜到了=-= 自己都糊里糊涂地 啥时候火的。。。
回复 支持 反对

使用道具 举报

结帖率:96% (369/384)

签到天数: 1 天

发表于 2021-7-19 14:41:47 | 显示全部楼层   江苏省南通市

你的视频 教程  呢?
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)
 楼主| 发表于 2021-7-19 13:25:09 | 显示全部楼层   上海市上海市

感谢感谢QAQ
回复 支持 反对

使用道具 举报

结帖率:93% (26/28)

签到天数: 2 天

发表于 2021-7-19 13:24:46 | 显示全部楼层   河北省唐山市
黑骑士ol 发表于 2021-7-19 13:20
我的么?十分幸运您看过我愚拙的视频

很好的得的
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)
 楼主| 发表于 2021-7-19 13:20:21 | 显示全部楼层   上海市上海市

我的么?十分幸运您看过我愚拙的视频
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)
 楼主| 发表于 2021-7-19 13:19:47 | 显示全部楼层   上海市上海市
万古一念间 发表于 2021-7-14 20:30
基础的js都能搞定 一些高深的 有什么学习规划么 感谢楼主 授之以渔

其实复杂度是多样性的 无固定的逆向工程就像从来没有规范 只能靠更多的经验
先从你想着结合开发者思维出发
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)
 楼主| 发表于 2021-7-19 13:18:54 | 显示全部楼层   上海市上海市
zz3250183 发表于 2021-7-15 00:38
都说 ,看过你的 视频  ;我怎么没看过呢?  发来看看

啊?我的么
回复 支持 反对

使用道具 举报

结帖率:100% (10/10)

签到天数: 8 天

发表于 2021-7-15 23:39:12 | 显示全部楼层   江苏省南京市

差不多的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表