如何分析html中的json

如何分析html中的json

在js逆向的过程中,时常要使用正则表达式去匹配htnl的内容,有时候关键的数据都在json中,这个怎么分析这个json呢

1.使用vscode 打开html

vscode的js插件会分析html文件,这样就可以理清楚结构关系,找到关键的json

2.去除json中的转移字符

json字符串被dumps会被转义,有两种办法可以去除

使用visual stduo

使用文件流将html加载进来,并赋值给string,调试的时候点击查看就可以看到load后的json字符串

使用https://www.json.cn/

点击json压缩转义
image
在下方点击去除转义即可
image

使用python匹配json

import re,json

text = r"""
    var testjson = {
    "downloader":{
        "media_type": "video",
       "video_quality": "2160",
        "nocheckcertificate":"true",
        "save_path":"./videos",
        "url":"https://www.youtube.com/watch?v=gR5lCNaqlNE"
    },
    "ffmpeg_location":"../../third/win/ffmpeg",
    "log_path":"C:\\Users\\Administrator\\AppData\\Local\\HitPaw Software\\HitPawVideoConverter\\logs\\download"
}fsdflksdjfklsdjflkjdsffsdfhjdkghndsjfkdjkfhsdhfsdfdsfklsdkfhsdkf
dsfsdfsdfsdfsdfsdfsdfsdfsdfadsfdsfads var test2 = {
        "fuck" : "you"
}fsdfsdfsdf
"""

match = re.search(r"(?:var testjson\s*=)\s*(\{(?s:.+)\})",text)
s = match.group(1)

obj,pos = json.JSONDecoder().raw_decode(s,0)
print(obj)

上面的代码是提取text中testjson的json,其核心思想是将满足匹配结果的最大集提取出来,再通过扫描第一个json来提取目标json

(?:re) 表示不捕获这个分组
(?s:re) 表示不捕获这个分组,且这个分组内的正则匹配换行符

posted @ 2022-11-18 00:23  乘舟凉  阅读(490)  评论(0编辑  收藏  举报