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

张家界做网站找哪家好分级会员管理系统网站开发

张家界做网站找哪家好,分级会员管理系统网站开发,福田园岭网站建设,海洋优质的网站建设网址(加密后):aHR0cHM6Ly93d3cuaWNpYmEuY29tL3RyYW5zbGF0ZQ 文章目录 抓包sign值结果加密 逆向sign值第一步第二步1.2.3. 解密content第一步1.2.3. 抓包 F12 -> 翻译框输入spider -> 点击Fetch/XHR -> 找到接口 index.php? 开头的…

网址(加密后):aHR0cHM6Ly93d3cuaWNpYmEuY29tL3RyYW5zbGF0ZQ==

文章目录

    • 抓包
      • sign值
      • 结果加密
    • 逆向sign值
      • 第一步
      • 第二步
        • 1.
        • 2.
        • 3.
    • 解密content
      • 第一步
        • 1.
        • 2.
        • 3.

抓包

F12 -> 翻译框输入spider -> 点击Fetch/XHR -> 找到接口 index.php? 开头的接口

得到如下界面:

sign值

在这里插入图片描述

结果加密

在这里插入图片描述

逆向sign值

经过测试,sign是与单词有关的,现在进入代码进行跟栈

点击 发起程序

在这里插入图片描述

经过逐个查看,takeResult 处应该是加解密的地方

点击跳转

在这里插入图片描述

跳转到 v 开头的行,在这里下个断点,重新输入spider,浏览器会在这里断住

仔细观察右边的作用域,发现出现了sign的值

在这里插入图片描述

由此可知,sign的值是r的值,故在上面的r处打上断点,重新输入spider

第一步

var r = u()("6key_web_new_fanyi".concat(s.LI).concat(t.q.replace(/(^\s*)|(\s*$)/g, ""))).toString().substring(0, 16);
  1. (“6key_web_new_fanyi”.concat(s.LI).concat(t.q.replace(/(^\s*)|(\s*$)/g, “”))
    经过多次测试,s.LI是 6dVjYLFyzfkFkk
    先看这段,别看他又臭又长,其实进行的操作只是将s.Li和t的q值加入到"6key_web_new_fanyi"后,而查看作用域可以发现,
    t.q = spider
    所以这段的结果就是 6key_web_new_fanyi6dVjYLFyzfkFkkspider,其中spider就是你输入的词
    经过多次测试,这个是定值,也就是说,u()函数的参数是一个定值

  2. u()
    在进入e函数时,得到如下函数:

    function(e) {return function(t, r) {return new e.init(r).finalize(t)}
    }
    

    这里面的e.init®并无任何作用,只是起到初始化进行迷惑我们的操作,所以直接不看,现在我们需要进入finalize()函数,因为这个函数才是接收主要参数的函数,此前任何和init有关的函数都不是我们需要的finalize函数

    进入主要函数之后,我们会看到,在init函数之后,会进入reset函数

    在这里插入图片描述

​ 在reset之后,我们继续下一步,会进入_doReset函数

在这里插入图片描述

​ 这里我们可以清楚的看到,使用的是MD5加密算法,而_hash对于我们来说并没有任何用处,所以我们不需要他,只需要知道这个是MD5加密就行

​ 在知道u()函数具体是做什么的之后,可能会有如下疑惑:

在这里插入图片描述

​ 为什么我们在控制台输出u()(定值)后,会需要toString()才能变为密文,我们只需要知道,在js中,实现md5加密后需要加上toString()来完成这一神奇操作,而在python中,只需要简单的进行md5加密后就可以得到与之一样的密文

  1. .subString(start: end)

    这个就是将字符串进行切片,从start到end,且不包含end,所以我们需要用到的其实只是密文的前16位

进行到这里,我们只是完成了sign加密的第一步,获取到第一次加密的密文,这个密文将会作为第二次加密的明文

第二步

进行完第一步之后,我们需要在他的下一步打上断点:

1.

在这里插入图片描述

这里传的参数r就是上一步最后得到的16位的密文

废话不多说,直接进入函数

2.

在这里插入图片描述

返回l,继续跟

又回到第一点,由此可知,这个(0, _.$Q) = $Q 且返回函数l,参数为第一步的16位密文

继续跟

3.

在这里插入图片描述

到这里,局势已经非常明了,这个第二次加密就是AES加密,前面两步时在对加密的参数进行调整

(1)不管如何变,t一直是最后面那一串字符

(2)将t传入到s()函数,根据多次测试,s函数就是将t进行解编码之后(利用urllib.parse.unquote可以解编码), 再通过字符运算将其转化为16位的字母+数字的字符串,再s()函数的结果擦混入到parse函数,得到加密的key

​ 进入parse函数:

在这里插入图片描述

parse的括号里的参数并未起到任何作用,不用管

直接继续跟:

在这里插入图片描述

得到这个,经过不同单词测试,这个key也是固定值,一个数组:

[1278502466, 1950627174, 1279473990, 1366766130]

(3)将需要加密的数据和密钥传入AES.encrypt即可得到密文

(4)效果一样,将对象转化为字符串

至此,sign逆向完成,后面我会将js代码和python代码贴出

解密content

在这里插入图片描述

观察这段代码,不难发现,这是对翻译接口进行了post请求,后面的&sign就是我们上面得到的sign值,拼接起来进行请求,返回了data值,也就是e

在then中,对e做了处理,所以我们可以判断,content处就是结果的解密处

第一步

给content处打上断点,重新输入spider,发现会在这里断住:

1.

在这里插入图片描述

可以看到,和我们预期的一样,e就是返回的加密数据

废话不多说,直接跟

2.

在这里插入图片描述

B6返回了f,继续跟

ok,还是回到了第一点,我们继续往下跟

3.

在这里插入图片描述

看到这里,解密函数也出来了,又是AES,解密数据是e,也就是返回的密文,密钥key是r,不出意外r是根据t的值进行生成的,跟上面的加密sign值一样,这里的r经过我的测试,生成逻辑和上述一样,只是参数不一样,且为固定值:

[1633773667, 861169273, 1715684717, 1163014963]

在后续,对解密之后的数据进行了解码为utf-8的操作,不仅如此,解密之后还可能出现中文字符序列化的情况,这个时候就需要python的json.loads()进行转化

在这里插入图片描述

http://www.yayakq.cn/news/665174/

相关文章:

  • 国外做兼职的网站有哪些.net网站架设
  • 电商网站 内容优化深圳企业网站推广
  • 东莞网站设计建设wordpress新用户添加管理员权限
  • 源码建站教程智慧团建官网手机登录入口电脑版
  • 装饰设计行业前景怎么样wordpress 优化标题
  • 网站建设微站进销存管理软件
  • 做盗版电影网站问题甘肃省住房和城乡建设厅网站
  • 网站推广页面设计去外包公司好
  • 那个软件可以做网站上海装修公司咨询
  • 广元市网站建设外贸网站推广运营
  • 淘宝网站建设弄什么类目高度重视网站建设 利用网站 接受监督
  • 网站开发项目责任分配矩阵中国企业500强厉害吗
  • 江宁网站建设价格资讯网站源码
  • 深圳专业做网站排名多少钱哪里可以大量找到广告主
  • excel做网站数据库徐州建设工程招标信息网官网
  • 中天建设集团山西分公司网站河北搜索引擎推广价格
  • 营销型网站建设是什么意思东莞推广
  • wordpress网站被拒登天津建设网站首页
  • 怎么建网站教程视频软装设计师证
  • 旅行网站系统企业网站广告图片轮播代码
  • 网站轮播图怎么保存网站做百度口碑
  • 兰州建设一个网站多少钱怎么生成二维码
  • 网站设计工作流程徐州建站费用
  • 最好的模板网站网站设计建设专业服务
  • 在郑州网站推广注册网站借钱平台犯不犯法
  • 网站排名优化wordpress j建站
  • 动态asp.net网站开发苏州网站建设网站制作的公司
  • php网站开发程序编译软件泰安最好的房产中介
  • 网站开发过时了包装设计模板
  • 网站建设费用报价单wordpress search