吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8405|回复: 244
收起左侧

[Web逆向] 手把手分析虾m视频真实地址

    [复制链接]
leospring 发表于 2024-7-27 02:21
本帖最后由 leospring 于 2024-7-27 02:51 编辑

声明

本文内容为小白入门实战教程,大神请忽视;本文仅供学习交流,请勿用于商业和非法用途,否则由此产生的一切后果均与作者无关;若有侵权,请联系立即删除!

接口地址

aHR0cHM6Ly9qeC54bWZsdi5jb20vP3VybD1odHRwczovL3YucXEuY29tL3gvY292ZXIvbXpjMDAyMDB1OHZmemN6Lmh0bWw=

实战开始

  1. 浏览器打开开发者模式,输入网站请求
    截图.png
    直接就请求完成了,没有复杂的无限debugger;省了很多事情;

  2. 观察ur请求
    上面的请求不多,都点点看看,注意请求的参数与响应体
    截图1.png
    细心的同学会发现,这个xmflv.js的请求很诡异,居然是个post请求,响应体是个图片,图片还是裂图,这里边绝逼有鬼,看看这个请求结果到底是什么。

  3. 分析怀疑的请求
    这个请求提供两种方式

    • 将图片下载本地,然后以文本打开该文件
      截图2.png
      截图3.png
    • 复杂请求的url,在控制台查看请求响应结果
      截图4.png
      截图5.png
      可以发现,加密结果和加密方式 key iv都出现了,解密看看结果,正是最终的直链地址(这里就不贴图了)
  4. 分析算法
    截图6.png
    现在目标很明确了,就是获取上述接口的4个请求参数
    wap:是固定的 1
    url:是需要解析的官网地址url
    time:一眼就看出是时间戳
    就剩下 key 参数了,接下来要进行断点跟踪了,这里提供两种方式

    • 关键字搜索
      尝试 key:   "key":  'key':进行全局搜索,最终发现 'key': 能跟到目标代码处
      截图14.png
    • XHR接口断点
      我们知道请求的url,可以添加url断点,再重新请求
      截图7.png
      截图8.png
      点击请求的上游调用栈,很快就找到了请求参数生成地方
      截图9.png
      key 的生成算法是:
      sign(ll1lIl1l['KKVzz'](hex_md5, ll1lIl1l[IliIiIi(0x7c7, 'Sx)X')](I111ill, url)))

      算法混淆比较简单,我们在console打印每一步参数与function
      Snipaste_2024-07-27_02-47-30.png
      转换下 key = sign(hex_md5(time + url))
      在追踪sign跟 hex_md5方法
      截图11.png
      sign是标准AES CBC加密
      截图12.png
      好复杂,根据方法名,盲猜是MD5后再hash,随便找个参数验证一下
      截图13.png
      晕, 直接就是MD5呀,分析结束。

  5. 全局关键字搜索
    通常在上面第2步分析url没有头绪时,可以直接全局搜索关键字,最常用关键字:decrypt
    Snipaste_2024-07-27_01-47-53.png
    再跟踪调用栈,也找到目标解密代码处
    Snipaste_2024-07-27_01-51-10.png


免费评分

参与人数 55吾爱币 +49 热心值 +51 收起 理由
sixnology233 + 1 + 1 感谢分析,有学习到了,正好可以补一补ast这方面的知识
笙若 + 1 + 1 谢谢@Thanks!
Zeruak + 1 + 1 谢谢@Thanks!
wangjujun0321 + 1 + 1 谢谢@Thanks!
imrobt + 1 致敬大牛
lqt8956 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
HuaHuoCG + 1 + 1 我很赞同!
Aa1843796 + 1 + 1 我很赞同!
ioyr5995 + 1 + 1 我很赞同!
twqdev + 1 + 1 用心讨论,共获提升!
tianluo + 1 + 1 用心讨论,共获提升!
a927 + 1 + 1 我很赞同!
godotttt + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xuanle6 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
sunnycandy + 1 + 1 我很赞同!
永远De公爵 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
clemmenson + 1 热心回复!
ahxxk + 1 + 1 我很赞同!
KONKAv983 + 1 + 1 用心讨论,共获提升!
萌新表示是小白 + 1 我很赞同!
victos + 1 + 1 谢谢@Thanks!
ForCifer + 1 + 1 谢谢@Thanks!
Alrights + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
chadd + 1 + 1 谢谢@Thanks!
toot + 1 + 1 我很赞同!
xzqabcok + 1 谢谢@Thanks!
az5m1 + 1 我很赞同!
alanhays + 2 + 1 用心讨论,共获提升!
52YR + 1 我很赞同!
wumeng + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
bypassYing + 1 我很赞同!
yy20240721 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
theStyx + 2 + 1 用心讨论,共获提升!
kegumingxin666 + 1 + 1 我很赞同!
zzccyydd + 1 + 1 我很赞同!
liangkuai + 1 + 1 用心讨论,共获提升!
gouzi123 + 1 + 1 谢谢@Thanks!
Soaimer + 1 + 1 热心回复!
zhijieweiwo + 1 用心讨论,共获提升!
蛋疼王子 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
sophieqd + 1 + 1 谢谢@Thanks!
dxiaolong + 1 + 1 用心讨论,共获提升!
FitContent + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ailisiyyds + 1 + 1 我很赞同!
PastorBonus + 1 + 1 我很赞同!
x7032360 + 1 + 1 热心回复!
抱歉、 + 1 用心讨论,共获提升!
tomanpj + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhoushengzhi + 1 + 1 用心讨论,共获提升!
1282155866 + 1 我很赞同!
b6571 + 1 + 1 谢谢@Thanks!
jiafei5331 + 1 + 1 我很赞同!
砺心缘起 + 1 + 1 我很赞同!
wild12 + 1 我很赞同!
0120 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

hebeijianke 发表于 2024-7-27 23:24
本帖最后由 hebeijianke 于 2024-7-27 23:39 编辑


[Python] 纯文本查看 复制代码
import requests
import time
from Crypto.Cipher import AES
from hashlib import md5
from base64 import b64encode
from urllib.parse import unquote, unquote_plus, quote, quote_plus


def md5_hash(data):
    """对字符串进行MD5散列并返回其十六进制表示"""
    hash_object = md5(data.encode('utf-8')).hexdigest()
    return hash_object.encode('utf-8')


def aes_encrypt(data, key, iv):
    """使用AES CBC模式加密明文"""
    cipher = AES.new(key, AES.MODE_CBC, iv)
    encrypted_text = cipher.encrypt(data.encode())
    return b64encode(encrypted_text).decode('utf-8')


def sign(data):
    plaintext = md5(data.encode('utf-8')).hexdigest()
    key = md5_hash(plaintext)
    iv = b'3cccf88181408f19'
    encrypted = aes_encrypt(plaintext, key, iv)
    return encrypted


url = quote('https://v.qq.com/x/cover/mzc00200yxnj6nj/n41009m0vya.html', safe='')

headers = {
    'Host': '122.228.8.29:4433',
    'Origin': 'https://jx.xmflv.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
}
tm = int(round(time.time() * 1000))
payload = {
    'wap': 1,
    'url': url,
    'time': tm,
    'key': sign(f"{tm}{url}")
}
con_url = f'https://122.228.8.29:4433/xmflv.js'
res = requests.post(con_url, headers=headers, data=payload)

print(res.status_code)
print(res.text)

可以了

免费评分

参与人数 4吾爱币 +5 热心值 +1 收起 理由
imrobt + 1 厉害了
萌新表示是小白 + 1 我很赞同!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
leospring + 1 用心讨论,共获提升!

查看全部评分

 楼主| leospring 发表于 2024-8-3 15:44
mythe777 发表于 2024-8-3 11:38
已经有m3u8地址 可以直接解析吧

文章目的是逆向分析过程,并不单纯要知道地址;浏览器抓包或安装插件等等三方好多工具都能获取地址。当然学会这个可以自己代码实现

免费评分

参与人数 1热心值 +1 收起 理由
cofeyu + 1 我很赞同!

查看全部评分

zhangxiaoxiao 发表于 2024-7-27 04:08
ghtao 发表于 2024-7-27 06:39
,学习了!多谢分享
37893202812 发表于 2024-7-27 06:57
感谢分享
ionk 发表于 2024-7-27 08:10
厉害,学到了
yfyh 发表于 2024-7-27 08:29
辛苦了~感谢分享
longwuling 发表于 2024-7-27 08:30
分析完后,可以下载吗
xfwww 发表于 2024-7-27 08:41
小白学习,不明觉厉
 楼主| leospring 发表于 2024-7-27 08:52
zhangxiaoxiao 发表于 2024-7-27 04:08
对我这种菜鸟帮助很大,谢谢楼主分享

共同学习 ,我也是菜鸟
 楼主| leospring 发表于 2024-7-27 08:57
longwuling 发表于 2024-7-27 08:30
分析完后,可以下载吗

借助三方工具,比如idm;或自己通过代码实现分片多线程下载,再合并分片,论坛搜下,有别人python实现的例子。我这只做分析,不提供完成代码
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-15 00:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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