吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5785|回复: 126
收起左侧

[Web逆向] 某图网站新版加密分析

  [复制链接]
Arcticlyc 发表于 2023-3-19 21:20
本帖最后由 Arcticlyc 于 2023-3-19 21:40 编辑

某图网站新版加密分析

1. 前言


网站:aHR0cHMlM0EvL21tenp0dC5jb20

关于该网站的js加密方式,我在之前分享过。最近发现网站图片链接的获取方式又有所改变,于是再次分析图片的获取方法。

2. 解密过程


网站有无限debugger,可以选择本地替换或者js注入。

2.1 图片链接来源


在之前的分析中,我们找出图片链接的来源是在当前界面的源代码中(comment中),现在网站改变了获取方式,通过开发者工具可以发现,链接实际来源改由ajax获取。

屏幕截图 2023-03-19 195151.png

从上面的请求中可以得知,网站通过当前界面的id请求加密的图片链接资源,推测网站接下来将会通过js解密得到图片链接。在这里需要注意,网站在获取到data后会储存,因此可能会出现刷新后获取不到数据包的情况。

屏幕截图 2023-03-19 200016.png

2.2 寻找解密代码


经过打断点、查看堆栈后,发现数据解密入口函数

屏幕截图 2023-03-19 200953.png

可以看到,_0x1ecabc函数获取两个参数:id和data,通过解密后得到一个包含图片链接关键信息的列表,由于web端的限制,该列表只有20条数据。接下来,我们进入这个函数分析。

屏幕截图 2023-03-19 201319.png

发现实际上是这个函数,我们把它扣下来,放入vscode中运行试试。

屏幕截图 2023-03-19 201709.png

提示_0x1708未定义,在源代码中搜索

屏幕截图 2023-03-19 201844.png
屏幕截图 2023-03-19 201958.png

找到这个函数后同样扣下来,再次运行,发现又缺少_0x32ea这个函数,再去源代码中找

屏幕截图 2023-03-19 202134.png
屏幕截图 2023-03-19 202644.png

将_0x32ea扣下来,并将代码进行一定优化后再次运行,可以看到已经不缺其他的自定义方法了。

2.3 代码优化


接下来对代码进行优化并复现解密方法。

屏幕截图 2023-03-19 202955.png

在简化代码的过程中,可以发现这个地方非常奇怪,尤其是在后面的代码优化中更是如此,于是中途试运行代码打印出运行中使用到的变量,发现完全不符合预期。经过一段时间的寻找,终于发现原来在开头的地方对fun1中的字符串列表的顺序进行了改变,但是我们不必关心它的方法,只需要在最后把正确顺序的列表抓出来即可

屏幕截图 2023-03-19 203309.png

得到正确的列表后再次对代码进行优化。
代码的大致思路是:在fun1中存了一个字符串列表,fun2中使用一个参数,将它减去一个值后作为索引取到fun1中的字符串,而在最终的fun3中则大量使用了其中的字符串,此外代码中有大量的16进制数字和字符串,看起来十分混乱,简化后的最终代码,只需要最后一个函数即可。

3. 解密方法复现


现在我们使用python代码复现数据的解密方法,此处我选择使用chatgpt将上面的最终代码改写为python代码,以下是chatgpt给我的并经过我优化改写后的代码。

from Crypto.Cipher import AES
from Crypto.Hash import MD5
from Crypto.Util.Padding import unpad
import base64
import json
from loguru import logger

def decrypt(pid: int, data: str) ->str :
    rel_data = data.split('固定字符')[1]
    iv = ''
    for i in range(2, 18):
        iv += str(pid % i % 9)
    logger.info(f'IV:{iv}')

    data_bytes = bytes.fromhex(rel_data)
    data_base = base64.b64encode(data_bytes).decode()
    key = MD5.new((str(pid) + '固定字符' + iv).encode()).hexdigest()[8:24]
    logger.info(f'Key:{key}')
    result = AES.new(key.encode(), AES.MODE_CBC, iv=iv.encode()).decrypt(base64.b64decode(data_base))
    return json.loads(unpad(result, AES.block_size).decode())

通过以上代码即可成功解密ajax传回的data数据。

4. 总结

总体而言,这个网站的加密不算复杂,要说麻烦主要来源于大量的16进制数据与混淆的变量和方法名,细心一点还是比较容易。

完整的文件代码:https://lanzout.com/idLC10qj7rdi
mzt.txt (50 Bytes, 下载次数: 81)

分享:经过分析,这个网站的app确实使用了ssl证书双向验证,使用r0ysue的项目r0capture可以导出p12证书,将证书导入charles中可以实现对app的抓包,不过返回的依然是加密数据。此外,app使用了数字加固,并能够检测模拟器和xposed,分析难度较大。

点评

请楼主给出文档的解压密码  发表于 2023-3-21 15:16

免费评分

参与人数 20威望 +1 吾爱币 +36 热心值 +17 收起 理由
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
huguo002 + 1 + 1 我很赞同!来学习了
zhubing0622 + 1 + 1 热心回复!
kzhipj + 1 我很赞同!
lsj1227 + 1 + 1 我很赞同!
hal1314 + 1 热心回复!
Xiao62432 + 1 感觉很厉害
lgc81034 + 1 谢谢@Thanks!
OneKilo + 1 我很赞同!
haoyeeh + 1 + 1 用心讨论,共获提升!
Qiaoyuexuan + 1 + 1 谢谢@Thanks!
hanhai + 1 + 1 我很赞同!
抱薪风雪雾 + 1 + 1 谢谢@Thanks!
w1120 + 1 + 1 我很赞同!
13044821 + 1 我很赞同!
sciencevessel + 1 我很赞同!
独行风云 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
芽衣 + 2 + 1 用心讨论,共获提升!
allspark + 1 + 1 用心讨论,共获提升!
Spacecraft + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

虞美人草 发表于 2023-3-19 22:31
个人感觉这网站图也没那么好看,这一两年网上搜学爬虫都是拿这个站练手。。图一般般,分辨率不大,我喜欢分辨率大点的,上个月学爬虫写了这个网站,还想了个笨办法实现了后面20张图片下载,下载了几个列表页,后面没下了,限制太多,下的太慢。。。加上分辨率确实不行
2023-03-19_222903.jpg 2023-03-19_222943.jpg

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
howsk + 2 + 1 爬虫是被你玩明白了

查看全部评分

虞美人草 发表于 2023-3-20 14:57
西班牙蚊子 发表于 2023-3-20 01:01
大佬,20张后面的图片怎么下载的?

就是先判断图片地址是几位数的,这网站的图片地址总共有3种情况,10,11和超过11长度的,超过11长度的,那就没办法了下载了,10的话,最简单直接猜最后字母就行,11的话,也简单,猜最后两位的字母,估计论坛现在不能分享爬虫,不然我就直接发代码了,看情况网址都不能发,最近半个月好像都没爬虫的帖子了
230320 144423.gif

我刚试了下,代码还能用
字母顺序还可以优化下,频率高的放前面,基本上5 6个之内就能猜出来正确的地址,基本也就前面几个字母
注意:这个方法只能下载,列表页12页之后的所有链接,12页之前的就没办法下载了(2月的时候是12页之后的,3月估计更新了那就只能是13页之后,或者14页后面的)
LoveCracking 发表于 2023-3-19 21:27
giszj 发表于 2023-3-19 21:39
很厉害,学习了
Spacecraft 发表于 2023-3-19 21:39
默默学习
panpanjiao 发表于 2023-3-19 21:40
认真学习一下
a4928645 发表于 2023-3-19 21:41
看不懂,但感觉很厉害
霸辣鸡腿堡 发表于 2023-3-19 21:42

认真学习一下
床前明月光 发表于 2023-3-19 21:53
我也不知道是什么,也觉得大佬厉害
wkxq 发表于 2023-3-19 21:54
看不懂但觉得大佬厉害
lyjlxx 发表于 2023-3-19 22:03
厉害👍🏻,感谢大佬分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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