当前位置: 首页 > news >正文

章贡区城乡规划建设局政府网站优化大师怎么提交作业

章贡区城乡规划建设局政府网站,优化大师怎么提交作业,买了空间和域名 就有网站后台了吗,天津专门做网站的公司的电话【Web逆向】万方数据平台正文的逆向分析(上篇--加密发送请求)—— 逆向protobuf声明一、了解protobuf协议:二、前期准备:二、目标网站:三、开始分析:我们一句句分析:先for循环部分:后…

【Web逆向】万方数据平台正文的逆向分析(上篇--加密发送请求)—— 逆向protobuf

  • 声明
  • 一、了解protobuf协议:
  • 二、前期准备:
  • 二、目标网站:
  • 三、开始分析:
    • 我们一句句分析:
      • 先for循环部分:
      • 后面就是给a赋值了:
  • 四、写proto文件(核心)

声明

本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除!

一、了解protobuf协议:

Protobuf(Protocol Buffer)是 Google 开发的一套数据存储传输协议,为二进制序列化格式,可用作 JSON 或 XML 等格式的更有效替代方案。开发人员可以在 .proto 文件中定义消息格式,并使用 protobuf 编译器(protoc)按他们选择的语言生成消息处理程序。Protobuf 编码是二进制的,与 json、xml 不同,它不是可读的,也不容易手动修改。Protobuf 能够把数据压缩得很小,所以传输数据就比 xml 和 json 快几倍,使用其有利于提高效率,但同时增加了分析或修改数据的难度。

序列化 (Serialization) 是指将对象转换为字节序列的过程,在序列化期间,对象将其当前状态写入到临时或持久性存储区,以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

二、前期准备:

下载protoc文件:找对应版本下载
在这里插入图片描述
然后添加到环境变量,便于之后使用。

在这里插入图片描述

二、目标网站:

基于矢量光场空间调制的光波偏振方向解算方法研究

打开网站,找到我们这次需要分析的包。

返回数据也是乱码:

在这里插入图片描述

经过查资料,观察返回的content-type为application/grpc-web+proto 是以protobuf数据结构传输的。

在这里插入图片描述

我们用fiddler抓包,过滤掉png和js,只显示主机是d.wanfangdata.com.cn;的

在这里插入图片描述

可以看到getDetailInFormation发送的十六进制数据,黑色16进制数据是发送的数据,蓝色是请求头数据:

在这里插入图片描述

在这里插入图片描述

我们把黑色部分从第六位起(也就是0A)保存为bin文件,如下图:

在这里插入图片描述

三、开始分析:

我们下个xhr断点看看,看看数据是怎么来的。

可以看到数据是以字节集的形式发出的,与上面fd抓包的16进制数据是一一对应的。

在这里插入图片描述

接下来,我们看看数据是怎么来的?跟e来到上一个栈,可以发现是a赋值给e的。

在这里插入图片描述

我们在e赋值的地方下断点,看看a怎么来的,重新调试一次,主要看a怎么构成的。

发现其实核心就是10406行到10415行赋值这一段。

for (n = (e = (0,n.a)(e.getRequestMessage())).length,l = [0, 0, 0, 0],a = new Uint8Array(5 + n),s = 3; 0 <= s; s--)l[s] = n % 256,n >>>= 8;
if (a.set(new Uint8Array(l), 1),a.set(e, 5),e = a,

我们一句句分析:

先for循环部分:

e = (0,n.a) (e.getRequestMessage())

在这里插入图片描述

得到的是一个unit8Array数组,刚刚好就是我们刚才排查出发包的数据从5开始往后数。

n = (e = (0,n.a)(e.getRequestMessage())).length

在这里插入图片描述

这里得到这个数组长度是27。

f = [0, 0, 0, 0]

这里类似设置了一个头,4位空数组

a = new Uint8Array(5 + n)

这里a的初始化,因为我们知道最后a是一个Uint8Array的数组,他的长度是5+n。

s = 3; 0 <= s; s--

这里可以确定整个循环的次数,4次。

因为js是以;为结束的,所以相当于下列语句循环了4次,那这步操作是干嘛的呢?

f[s] = n % 256,
n >>>= 8;

给f数组各位赋值的,刚刚好f数组就是4位。所以说先给f的第四位赋值相当于f[3], 再 n进行>>>=移位操作,得到:

f[3] =27%256=27    27 >>>8=0 =>n=0
f[2] = 0%256 =0    0  >>>8=0 =>n=0
f[1] = 0%256 =0    0  >>>8=0 =>n=0
f[0] = 0%256 =0    0  >>>8=0 =>n=0
f=[0, 0, 0, 27]

在这里插入图片描述

后面就是给a赋值了:

a.set(new Uint8Array(f), 1)

a是数组,然后查mdn文档,可知set方法的作用:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set

set() 方法用于从指定数组中读取值,并将其存储在类型化数组中。

有两个参数,typedarray,offset(可选,默认为 0)

typedarray对应 new Uint8Array(f)

offset 对应 1

相当于从下标1开始,给a数组插入值f。

所以得到

在这里插入图片描述

这里核心就是这个set方法,不懂查一下就理解了。

a.set(e, 5)

相当于从数组下标5开始把e的值赋值给a

ok,我们到这里已经把a怎么来的理解清楚了,也明白了前面5位是怎么来的。

但是,我们还是没接触到protobuf啊,只是知道了数据得到的大概过程。核心就在(0,n.a)(e.getRequestMessage())里面。

四、写proto文件(核心)

跟进n.a方法

在这里插入图片描述

发现了写protobuf数据格式的关键函数:serializeBinary

在这里插入图片描述

关键点:

根据serializeBinaryToWriter关键函数,可以得到此结构分层,跟进去可以得到包含几个信息

在这里插入图片描述

write + (信息类型)函数,第一个参数代表是第几个。(如下图圈主部分)
在这里插入图片描述

看到writeMessage,后面有serializeBinaryToWriter关键函数,跟进去,就能再次得到此message的结构层次,一样分析,就能得出完整结构。

一个个分析按顺序写proto文件

syntax = "proto3";message SearchService {string getResourcetype = 1;string getId = 2;string getReferer = 3;string getMd5id = 4;string getTransaction = 5;
}

命令行生成可python操作的protobuf文件

在这里插入图片描述
在这里插入图片描述

数据分析:fd抓包下载bin,然后命令行 protoc --decode_raw < test.bin执行,解析protobuf数据结构

在这里插入图片描述

然后对应上面的结构找到对应变量,用python赋值运行:

import test_pb2 as pbSearchRequest = pb.SearchService()
SearchRequest.getResourcetype = 'Periodical'
SearchRequest.getId = 'wlxb202301001'
SearchRequest.getReferer = ''
SearchRequest.getMd5id = ''
SearchRequest.getTransaction = ''
form_data = SearchRequest.SerializeToString()
print(form_data)

在这里插入图片描述

我们验证一下上面输出是否正确,用blackboxprotobuf模块解析,即可看到原始数据(这里用到上面解析出来的bin文件):

import blackboxprotobuf# 1、得到消息类型message_type
with open(r"test.bin", "rb") as fp:data = fp.read()deserialize_data, message_type = blackboxprotobuf.protobuf_to_json(data)print(f"原始数据: {deserialize_data}")print(f"消息类型: {message_type}")# str 转 dictdeserialize_data = eval(deserialize_data)form_data = bytes(blackboxprotobuf.encode_message(deserialize_data, message_type))print(form_data)

在这里插入图片描述

和咱们用proto文件编译出来protobuf文件去解析的输出一样,所以咱们编译没问题!

用python发包,根据上面的分析,发现需要补头5位

bytes_head = bytes([0, 0, 0, 0, len(form_data)])

完整代码(获得数据):

import test_pb2 as pbSearchRequest = pb.SearchService()
SearchRequest.getResourcetype = 'Periodical'
SearchRequest.getId = 'wlxb202301001'
SearchRequest.getReferer = ''
SearchRequest.getMd5id = ''
SearchRequest.getTransaction = ''
form_data = SearchRequest.SerializeToString()
print(form_data)
print(len(form_data))
bytes_head = bytes([0, 0, 0, 0, len(form_data)])
print(bytes_head + form_data)
header = {"Accept": "*/*","Accept-Language": "zh-CN,zh;q=0.9,zh-TW;q=0.8","Content-Type": "application/grpc-web+proto","Origin": "https://s.wanfangdata.com.cn","Referer": "https://d.wanfangdata.com.cn/periodical/wlxb202301001","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
}url = 'https://d.wanfangdata.com.cn/Detail.DetailService/getDetailInFormation'
res = requests.post(url, data=bytes_head + form_data, headers=header)
print(res.content)

发送请求后返回的数据:

在这里插入图片描述


文章转载自:
http://hypophoria.pwmm.cn
http://astronautically.pwmm.cn
http://cheekbone.pwmm.cn
http://synchronism.pwmm.cn
http://xiphophyllous.pwmm.cn
http://schizo.pwmm.cn
http://radioresistance.pwmm.cn
http://eery.pwmm.cn
http://obeah.pwmm.cn
http://ecuador.pwmm.cn
http://embassador.pwmm.cn
http://hurdler.pwmm.cn
http://hydrometeor.pwmm.cn
http://gastronomy.pwmm.cn
http://astereognosis.pwmm.cn
http://vertebral.pwmm.cn
http://tectogene.pwmm.cn
http://anorthic.pwmm.cn
http://appaloosa.pwmm.cn
http://opiate.pwmm.cn
http://soli.pwmm.cn
http://bilander.pwmm.cn
http://argon.pwmm.cn
http://detour.pwmm.cn
http://printout.pwmm.cn
http://sankara.pwmm.cn
http://wertherism.pwmm.cn
http://volation.pwmm.cn
http://pistil.pwmm.cn
http://succubae.pwmm.cn
http://helicon.pwmm.cn
http://varied.pwmm.cn
http://celluloid.pwmm.cn
http://villus.pwmm.cn
http://measurable.pwmm.cn
http://needless.pwmm.cn
http://sig.pwmm.cn
http://assai.pwmm.cn
http://gothicism.pwmm.cn
http://drown.pwmm.cn
http://tonsilloscope.pwmm.cn
http://kiddie.pwmm.cn
http://wed.pwmm.cn
http://consignee.pwmm.cn
http://photoreconnaissance.pwmm.cn
http://reformative.pwmm.cn
http://christly.pwmm.cn
http://parliamentary.pwmm.cn
http://conveyer.pwmm.cn
http://vatic.pwmm.cn
http://scoot.pwmm.cn
http://cardiophobia.pwmm.cn
http://ida.pwmm.cn
http://rabblement.pwmm.cn
http://casual.pwmm.cn
http://naivete.pwmm.cn
http://jugendstil.pwmm.cn
http://briquet.pwmm.cn
http://coxy.pwmm.cn
http://dronish.pwmm.cn
http://ifni.pwmm.cn
http://hypertonia.pwmm.cn
http://caprifoliaceous.pwmm.cn
http://incb.pwmm.cn
http://needlestone.pwmm.cn
http://untilled.pwmm.cn
http://gigot.pwmm.cn
http://thusly.pwmm.cn
http://melpomene.pwmm.cn
http://obduracy.pwmm.cn
http://purvey.pwmm.cn
http://mealtime.pwmm.cn
http://laminar.pwmm.cn
http://spacecraft.pwmm.cn
http://laager.pwmm.cn
http://unilateralism.pwmm.cn
http://nazi.pwmm.cn
http://academe.pwmm.cn
http://raceball.pwmm.cn
http://problematique.pwmm.cn
http://reflet.pwmm.cn
http://chloroacetone.pwmm.cn
http://terrazzo.pwmm.cn
http://wire.pwmm.cn
http://enantiotropy.pwmm.cn
http://cockatiel.pwmm.cn
http://eventful.pwmm.cn
http://zoophilist.pwmm.cn
http://regrant.pwmm.cn
http://vivisector.pwmm.cn
http://intellectualize.pwmm.cn
http://publicist.pwmm.cn
http://wismar.pwmm.cn
http://undissolved.pwmm.cn
http://sonorously.pwmm.cn
http://amphisbaena.pwmm.cn
http://velour.pwmm.cn
http://atomicity.pwmm.cn
http://endomysium.pwmm.cn
http://upsurge.pwmm.cn
http://www.dt0577.cn/news/73446.html

相关文章:

  • 邹平县城乡建设局网站百度推广400电话
  • wordpress填写win7优化大师官网
  • 合肥做兼职网站设计宁波seo怎么做优化
  • 加外链网站百度数据研究中心
  • 重庆出名的网站建设公司宁波网站推广大全
  • 网站的优化公司昆明seo推广外包
  • 网站开发需要多少钱怎样如何推广网店
  • 网站建设需求模版百度网站优化排名
  • 网站如何做漂浮窗关键词热度分析工具
  • 淘宝网页版电脑版官网衡水网站seo
  • 成都的做网站公司网络推广怎么做?
  • 大连疫情最新动态百度seo排名如何提升
  • 做本地婚恋网站太原seo外包公司
  • java前端开发工程师seo是什么工作内容
  • 相亲网站上做投资的女生seo案例分析及解析
  • 国外一直小猫做图标的网站搜索优化seo
  • 宿州市美丽乡村建设网站营销型网站的分类
  • 那个网站攻略做的好关键词优化一年多少钱
  • 站库设计网站官网合肥网站推广
  • 站长工具关键词挖掘来客seo
  • wordpress引用页面windows优化大师下载
  • 做网站的具体需求如何做网络推广赚钱
  • 互联网创业项目计划书360优化大师官方网站
  • c 2015 做网站人工在线客服
  • 招聘网站如何做薪酬报告企业网站优化服务公司
  • 帝国cms 网站地图 xml海淀搜索引擎优化seo
  • 网站描述怎么写好网站排名优化化快排优化
  • 福州微信网站建设工作手机
  • 网站建站推广是啥意思惠州短视频seo
  • 移动健康app下载seo关键词如何布局