吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 488|回复: 5
上一主题 下一主题
收起左侧

[Web逆向] 某刷题网站题库导出

[复制链接]
跳转到指定楼层
楼主
我的城市没有海 发表于 2026-6-12 17:53 回帖奖励
前言:
仅作为个人学习,请勿将导出的题库用于商业目的
本人也是个逆向小白请见谅,文中多数操作为咨询AI或其他工具
1.逆向
首先进入刷题页面,开发者搜索字符串”decrypt(“,这是一个解密函数,后面加密的数据可以通过这个函数进行解密

在函数底部下个断点,刷新后返回上层

这里密文 密钥 明文都出来了

这些就是这个题目下的所有题目的题目id

主要有两个api: 1./api/questions/fetch    参数是题库的id,返回该题库id下的所有的题目id
                         2./api/questions/ids   参数是题目的id,返回是题目的详细信息(所返回题目被文字混淆,需要修复)



2.题目解密

在上面通过请求fetch有了题目id,再通过ids有了题目的详细信息,但都是被加密过的,只需要用到第一次字符串搜索到的函数解密
下面是我用ai写的一段解密函数,可以参考(可用于实际解密),题目id和题目内容用的一样方法
参数1:密文
参数2:密钥(断点后返回找o的值)

def decrypt(encrypted_b64, key_str):
    """TripleDES 解密"""
    key = key_str.encode('utf-8')
    if len(key) < 24:
        key = key.ljust(24, b'\0')
    missing = len(encrypted_b64) % 4
    if missing:
        encrypted_b64 += '=' * (4 - missing)
    encrypted = base64.b64decode(encrypted_b64)
    cipher = DES3.new(key, DES3.MODE_ECB)
    decrypted = cipher.decrypt(encrypted)
    decrypted = unpad(decrypted, DES3.block_size)
    return decrypted.decode('utf-8')

3.题目混淆

题目详细内容解析出来就以下json的格式

{
  "paper_id": "26845979",
  "paper_name": "2026年最新-含解析》华为数通H12-831-DATACOM-HCIP稳定题库",
  "total_questions": 383,
  "questions_by_type": {
    "1": {
      "name": "单选题",
      "count": 113,
      "questions": [
        {
          "id": "6522220923",
          "uid": "18041059",
          "paperid": "26845979",
          "chapter": "0",
          "difficulty": "2",
          "difficulty_score": "0.00",
          "parentid": "0",
          "path": "",
          "ptype": "4",
          "question": "如图所示的网络,相邻的讲由器之间使坏直连接口建立EBGP邻消关系,每台设备的Router ID10.0.X.XAS号为6500x.其水x为讲由器的编号,R1R4均有到达192.168.1.0/24的静默讲由,通过import方式引入BGPR3针对所有邻消配置了\"peer y.y.y.y as-path-filter 1 import\"命令,以下将一项可以使R3到达192.168.1.0/24份择AS-Path最长的讲径?<p><img src=\"//up.zaixian*****.com//5283701/user_import_question/64e13f8425c7724e9346037c7ddf99cb.png\" alt=\"64e13f8425c7724e9346037c7ddf99cb.png\"></p>",
          "qtype": "1",
          "type_name": "",
          "number": "",
          "options": "[{\"Key\":\"A\",\"Value\":\"<p>ip as-path-filter 1 permit .*\\nip as-path-filter 1 deny 65001$\\nip as-path-filter 1 deny ^65005<\\/p>\"},{\"Key\":\"B\",\"Value\":\"<p>ip as-path-filter 1 deny ^65002\\nip as-path-filter 1 deny ^65005\\nip as-path-filter 1 permit .*<\\/p>\"},{\"Key\":\"C\",\"Value\":\"<p>ip as-path-filter 1 deny 65001$\\nip as-path-filter 1 permit .*<\\/p>\"},{\"Key\":\"D\",\"Value\":\"<p>ip as-path-filter 1 deny .*6500\\nip as-path-filter 1 permit .*<\\/p>\"}]",
          "answer": "B",
          "analysis": "ip as-path-filter 1 permit .*    可以使R3到达192.168.1.0/24选择AS-Path最长的路径。AS-PathBGP中用于表示路由路径的属性,它由一系列AS号构成,AS号之间使用空格分隔。在这里,R3希望选择AS-Path最长的路径,即AS号数量最多的路径。为了实现这个目标,我们可以在R3上配置AS-Path过滤器,拒绝包含特定AS号的路径。根据题目描述,R3希望拒绝包含AS6500265005的路径,因此应该配置ip as-path-filter 1 deny ^65002ip as-path-filter 1 deny ^65005。同时,为了允许其他路径通过,应该配置ip as-path-filter 1 permit .*。这样,R3就会选择AS-Path最长的路径来到达192.168.1.0/24",
          "hash": "556bf6e7286104e66c8c836b3aff3e3c8e0ccd30",
          "question_context_id": "",
          "question_images": "",
          "answer_images": "",
          "extra": "",
          "status": "0",
          "is_show": "1",
          "editor": "",
          "created_at": "2025-11-10 20:16:31",
          "updated_at": "2025-11-10 20:16:31",
          "note": "",
          "note_is_public": "1",
          "note_id": "0",
          "self_analysis": "",
          "ai_analysis": "根据题目描述,R3针对所有邻居配置了'peer y.y.y.y as-path-filter 1 import'命令,意味着R3会引入AS路径过滤。为了使R3能够到达192.168.1.0/24,需要确保引入的路径不包含特定的AS编号,特别是6500265001等可能引起路由冲突的AS编号。选项B中的配置通过deny语句排除了6500265001AS路径,同时允许其他路径通过,符合题意。",
          "ai_analysis_like": "-1",
          "point": null,
          "all_right": "6318",
          "all_wrong": "497",
          "all_accuracy": "0.9270",
          "special_font": "k2c346c90af9095a679136afc00d5b6b2"
        },
"question": "如图所示的网络,相邻的讲由器之间使坏直连接口建立EBGP邻消关系中我们能明显发现这里面的文字内容被替换或混淆了
定位到元素位置,我们能发现他加载了一个.ttf的文件,禁止使能后发现前端文字也发生了混淆,把正确的“路由器” 写成“讲由器“,说明这个.ttf中应该是把混淆字和正常字关联起来了

network中下载这个.ttf文件并打开

根据上面的“路由器” 写成“讲由器“,我们搜索”路”字,发现直接定位到“讲”这个字上,再通过Unicode码 去正常的字体文件里搜索发现,这个$8DEF对应的就是路由器
所以我们就能判断他们把ttf中的文字做了替换,在正确的Unicode编码上改成另外一个字,然后再通过正常的ttf文件做对比进行还原



在之前获取到json中已经有了不同题目的ttf文件"special_font": "k2c346c90af9095a679136afc00d5b6b2"(每次刷新都有可能变)
接下来在network中找到url的前缀,拼接special_font内容下载




1.请求获取所有题目id并解密
2.根据题目id获取所有题目详细内容并解密成json(混淆字符的替换?)
3.根据json内容转换excel、word、txt



image.png (145.13 KB, 下载次数: 1)

image.png

image.png (29.61 KB, 下载次数: 0)

image.png

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

沙发
lsrh2000 发表于 2026-6-15 10:56
牛!感谢分享,论坛有你更精彩。
3#
sunvista 发表于 2026-6-15 12:39
4#
Dream漂移 发表于 2026-6-15 13:09
5#
8204118 发表于 2026-6-15 16:40
某是哪个?
6#
fzlte0 发表于 2026-6-15 20:00
网络技术相关,学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2026-6-15 20:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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