圖靈逆向——題七-千山鳥飛絕

目錄列表

    • 過程分析
      • headers頭部`M`參數分析
      • 載荷`x`參數分析
      • 響應數據解密分析
    • 代碼實現

一進來還是一個無限debugger,前面有講怎么過,這里直接過掉~
在這里插入圖片描述
老規矩,養成習慣,先看請求頭里有沒有加密參數發現好像是有個`M`,它是個32位的,逆的多了就有反應了[doge](可能是MD5)
在這里插入圖片描述
再看載荷參數,好,也有一個x。。
在這里插入圖片描述
然后再看響應結果,還是個密文,好!直接放棄。。。[doge]
在這里插入圖片描述
那當然不能放棄了[doge],來吧開干~

過程分析

萬事開頭難,那就從頭(headers)開始[doge]~

headers頭部M參數分析

老規矩,在發包的位置打個斷點,跟棧分析
在這里插入圖片描述
然后跟著跟著就發現它是依托。。。
在這里插入圖片描述
使用解混淆工具,對混淆的代碼進行解混淆,貼到本地node環境中,然后可以看到設置了axios的請求攔截器和響應攔截器。(頭部的M參數,載荷中的x參數和返回密文解密的生成邏輯都能在這個方法中看到)
在這里插入圖片描述
邏輯大概就是:字符串xialuo和時間戳的拼接,傳給了前面window.eeee方法進行參數加密,最后得到M的值。由于它結果是一個32位的字母數字的組合,那么猜測是md5
在這里插入圖片描述OK破案了,M的加密方式就是標準的md5加密算法。

載荷x參數分析

還是剛剛參數M生成的位置
在這里插入圖片描述
可以看到是一個SHA256的哈希加密算法,可以再往上找一找這個dd.a是什么東西
然后就會發現是CryptoJS標準庫。
在這里插入圖片描述
去網頁驗證一下看看是不是標準的哈希算法
在這里插入圖片描述
OK破案了,就是標準的SHA256加密算法,直接調用標準算法庫中加密方法即可。

響應數據解密分析

還是之前定位到的地方,可以看到axios響應攔截器的邏輯,是把相應的密文丟給了xxxxoooo方法進行了解密。
在這里插入圖片描述
然后進入這個解密方法就能看到很清晰的AES解密邏輯,同時key和``iv就定義在方法的上面。
在這里插入圖片描述
然后可以再看一下這個dd.a是個什么東西,最后發現它就是CryptoJS這個標準庫。
在這里插入圖片描述
OK逆向結束~

代碼實現

選擇直接用python復現JS的加密解密邏輯

"""
-*- coding: utf-8 -*-
@File   : .py
@author : @鯊魚愛兜兜
@Time   : 2025/04/05 21:47
"""from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
import requests
import binascii
from hashlib import md5, sha256
import json
import timedef myDecrypt(encrypted_hex):"""My Decrypt Func:param encrypted_hex::return:"""key = b'xxxxxxxxoooooooo'iv = b'0123456789ABCDEF'ciphertext = binascii.unhexlify(encrypted_hex)cipher = AES.new(key, AES.MODE_CBC, iv)decrypted = cipher.decrypt(ciphertext)plaintext = unpad(decrypted, AES.block_size)return plaintext.decode()cookies = {'Hm_lvt_b5d072258d61ab3cd6a9d485aac7f183': '1743857254','HMACCOUNT': '你的值','sessionid': 'gaq8bymph3affd623emqto7gtxor6lj4','v': '你的值','Hm_lpvt_b5d072258d61ab3cd6a9d485aac7f183': '1743860809',
}
s = 0
for page in range(1, 21):ts = int(time.time() * 1000)M = md5(f'xialuo{ts}'.encode()).hexdigest()headers = {'accept': 'application/json, text/javascript, */*; q=0.01','accept-language': 'zh-CN,zh;q=0.9,en;q=0.8','cache-control': 'no-cache','m': M,'pragma': 'no-cache','priority': 'u=1, i','referer': 'https://stu.tulingpyton.cn/problem-detail/7/','sec-ch-ua': '"Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','sec-fetch-dest': 'empty','sec-fetch-mode': 'cors','sec-fetch-site': 'same-origin','ts': f'{ts}','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36','x-requested-with': 'XMLHttpRequest',}params = {'page': f'{page}','x': sha256(f'{M}xxoo'.encode()).hexdigest(),}response = requests.get('https://stu.tulingpyton.cn/api/problem-detail/7/data/', params=params, cookies=cookies,headers=headers)response.raise_for_status()response.encoding = 'utf-8'print(response.json())s += sum(json.loads(myDecrypt(response.json()['r']))['current_array'])
print(s)

第七題,勉強秒了~[doge]
@鯊魚愛兜兜

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76207.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

上門預約洗鞋店小程序都具備哪些功能?

現在大家對洗鞋子的清洗條件越來越高,在家里不想去,那就要拿去洗鞋店去洗。如果有的客戶沒時間去洗鞋店,這個時候,有個洗鞋店小程序就可以進行上門取件,幫助沒時間的客戶去取需要清洗的鞋子,這樣豈不是既幫…

Node.js EventEmitter 深入解析

Node.js EventEmitter 深入解析 概述 Node.js 作為一種強大的 JavaScript 運行環境,以其異步、事件驅動特性在服務器端編程中占據了重要地位。EventEmitter 是 Node.js 中處理事件的一種機制,它允許對象(稱為“發射器”)發出事件…

C++11QT復習 (十九)

文章目錄 Day13 C 時間庫和線程庫學習筆記&#xff08;Chrono 與 Thread&#xff09;一、時間庫 <chrono>1.1 基本概念1.2 使用示例1.3 duration 字面量單位 二、線程庫 <thread>2.1 基本用法2.2 數據競爭&#xff08;Race Condition&#xff09;2.3 加鎖&#xff…

C++初階-C++的講解1

目錄 1.缺省(sheng)參數 2.函數重載 3.引用 3.1引用的概念和定義 3.2引用的特性 3.3引用的使用 3.4const引用 3.5.指針和引用的關系 4.nullptr 5.總結 1.缺省(sheng)參數 &#xff08;1&#xff09;缺省參數是聲明或定義是為函數的參數指定一個缺省值。在調用該函數是…

Redisson 實現分布式鎖

在平常的開發工作中&#xff0c;我們經常會用到鎖&#xff0c;那么鎖有什么用呢&#xff1f;鎖主要是控制對共享資源的訪問順序&#xff0c;防止多個線程并發操作導致數據不一致的問題。經常可能會聽到樂觀鎖、悲觀鎖、分布式鎖、行鎖、表鎖等等&#xff0c;那么我們今天總結下…

環境—Ubuntu24(py3.12)安裝streamlit(虛擬環境py3.9)

請盡可能不用Ubuntu24請直接跳7.查看解決方案 Action Log 在Ubuntu 24.04中更換為清華源的步驟【Bug】Python 3.12 on Ubuntu 24.04 is Externally Managed - PIP is broken 相關解決方案 從 Ubuntu 24.04 開始&#xff0c;有兩個選項&#xff1a; 1. install python pacakg…

【C++進階】關聯容器:set類型

目錄 一、set 基本概念 1.1 定義與特點 1.2 頭文件與聲明 1.3 核心特性解析 二、set 底層實現 2.1 紅黑樹簡介 2.2 紅黑樹在 set 中的應用 三、set 常用操作 3.1 插入元素 3.2 刪除元素 3.3 查找元素 3.4 遍歷元素 3.5 性能特征 四、set 高級應用 4.1 自定義比較…

[漏洞篇]SSRF漏洞詳解

[漏洞篇]SSRF漏洞詳解 免責聲明&#xff1a; 本文主要講解漏洞原理&#xff0c;以及防御手段&#xff0c;旨在幫助大家更好的了解漏洞危害&#xff0c;以及開發中所需要的點&#xff0c;切勿拿來做違法事情&#xff0c;否則后果自負。 一、介紹 概念 SSRF&#xff1a;服務端請…

nuscenes數據集分析

nuscenes數據集分析 標注與總體介紹 nuscenes包含有相機、激光雷達、毫米波雷達、IMU與GPS等設備提供的數據。它的數據采集了1000個場景&#xff0c;每個場景大約有20s&#xff0c;針對目標檢測任務&#xff0c;對23類物體進行標注&#xff0c;且以2Hz的頻率提供精確的三維目標…

JavaScript學習教程,從入門到精通,JavaScript 運算符及語法知識點詳解(8)

JavaScript 運算符及語法知識點詳解 一、JavaScript 運算符 1. 算術運算符 用于執行數學運算&#xff1a; 加法- 減法* 乘法/ 除法% 取模&#xff08;余數&#xff09; 遞增-- 遞減** 冪運算&#xff08;ES6&#xff09; let a 10, b 3; console.log(a b); // 13 conso…

Shell腳本的學習

編寫腳本文件 定義以開頭&#xff1a;#!/bin/bash #!用來聲明腳本由什么shell解釋&#xff0c;否則使用默認shel 第一步&#xff1a;編寫腳本文件 #!/bin/bash #注釋 echo "這是輸出" 第二步&#xff1a;加上執行權限&#xff1a;chmod x 腳本文件名.sh 第三步&…

在線PDF文件拆分工具,小白工具功能實用操作簡單,無需安裝的文檔處理工具

小白工具中的在線 PDF 文件拆分工具是一款功能實用、操作便捷的文檔處理工具&#xff0c;以下是其具體介紹&#xff1a; 操作流程 上傳 PDF 文檔&#xff1a;打開小白工具在線PDF文件拆分工具 - 快速、免費拆分PDF文檔 - 小白工具的在線 PDF 文件拆分頁面&#xff0c;通過點擊 …

數字的乘階運算

求數字的乘階&#xff1a; 例如&#xff1a;6的乘階運算&#xff1a;6*5*4*3*2*1 例如&#xff1a;3的乘階運算&#xff1a;3*2*1 class Program{static void Main(string[] args){Console.WriteLine("請輸入數字&#xff1a;");int num_01 Convert.ToInt32 (Con…

tcp/ip攻擊及防范

作為高防工程師&#xff0c;我每天攔截數以萬計的惡意流量&#xff0c;其中TCP/IP協議層攻擊是最隱蔽、最具破壞性的威脅之一。常見的攻擊手法包括&#xff1a; 1. SYN Flood攻擊&#xff1a;攻擊者發送大量偽造的SYN包&#xff0c;耗盡服務器連接資源&#xff0c;導致正常用…

C++類成員內存分布詳解

本文將探討C類中成員變量的內存分布情況&#xff0c;包括普通成員、靜態成員、虛函數等不同情況下的內存布局。 一、基本成員內存布局 1. 普通成員變量 普通成員變量按照聲明順序在內存中連續排列&#xff08;受訪問修飾符和內存對齊影響&#xff09;&#xff1a; class Nor…

計算機視覺——為什么 mAP 是目標檢測的黃金標準

概述 在目標檢測領域&#xff0c;有一個指標被廣泛認為是衡量模型性能的“黃金標準”&#xff0c;它就是 mAP&#xff08;Mean Average Precision&#xff0c;平均精確率均值&#xff09;。如果你曾經接觸過目標檢測模型&#xff08;如 YOLO、Faster R-CNN 或 SSD&#xff09;…

C語言單鏈表的增刪改補

目錄 &#xff08;一&#xff09;單鏈表的結構定義及初始化 (二)單鏈表的尾插&#xff0c;頭插 (三)單鏈表的尾刪&#xff0c;頭刪 (四)單鏈表的查找&#xff0c;刪除&#xff0c;銷毀 單鏈表是數據結構課程里的第二個數據結構。單鏈表在邏輯結構是連續的&#xff0c;在物理…

Android10.0 framework第三方無源碼APP讀寫斷電后數據丟失問題解決

1.前言 在10.0中rom定制化開發中,在某些產品開發中,在某些情況下在App用FileOutputStream讀寫完畢后,突然斷電 會出現寫完的數據丟失的問題,接下來就需要分析下關于使用FileOutputStream讀寫數據的相關流程,來實現相關 功能 2.framework第三方無源碼APP讀寫斷電后數據丟…

殺戮尖塔(Slay The Spire) 的全新角色模組 - 女巫

女巫&#xff08;The Witch&#xff09; 殺戮尖塔&#xff08;Slay The Spire&#xff09; 的全新角色模組 女巫模組為游戲增添了超過 75 張新卡牌和 4 個全新遺物&#xff0c;圍繞 詛咒&#xff08;Curses&#xff09; 展開獨特的玩法體驗。她的起始遺物 黑貓&#xff08;Bl…

AI開發學習路線(闖關升級版)

以下是一份輕松版AI開發學習路線&#xff0c;用「闖關升級」的方式幫你從零開始變身AI開發者&#xff0c;每個階段都配有有趣的任務和實用資源&#xff0c;保證不枯燥、可落地&#xff01;&#x1f447; 目錄 &#x1f530; 新手村&#xff1a;打基礎&#xff08;1-2個月&…