[JS Reverse AES Reverse Encryption] python crawler combat, les jours sont de plus en plus décisifs

Cinq paquets de spaghettis! 2021-10-29 03:44:54
js reverse aes reverse encryption

Bonjour tout le monde,Je suis hottie..

C'est le numéro un de mon projet crawler22Articles,Le but est d'écrire100Articles,J'espère que tout le monde pourra suivre cette colonne.

Un cousin de l'industrie de la construction a dépensé beaucoup d'argent pour obtenir des données commerciales1w,Ce truc que je peux résoudre en une demi - heure,C'est le charme de la technologie【Ramper dans les données publiques oui!】

Ramper sur la cible

Site Web:La plateforme réglementaire

image.png

Utilisation des outils

Outils de développement:pycharm Environnement de développement:python3.7, Windows10 Utilisation du kit:requests,AES,json

ParticipationAESProblème de cryptage symétrique Besoin Installationnode.jsEnvironnement
Utilisernpm install Installation crypto-js
​

Analyse des idées de projet

  1. Déterminer les données Sur cette page vous pouvez voir que les données sont retournées dynamiquement Mais Tout est crypté Comment déterminer ce dont nous avons besoin?

    123.png

    Ça m'est venu à l'esprit. Si je pagaie La deuxième page sera - t - elle chargée directement? Et voir la similitude Trouver la première page, Je suis si intelligente.

    234.png

    On a les données. Commencez à chercher le cryptage. Mais il s'est avéré que non. Mots clés chiffrés? Alors, on passe.url Essaie. InAllTout à l'intérieur Recherche query/comp/list(urlParamètres suivants)

    345.png

    Trouvez cette interface Clic droit de la souris Vous pouvez le voir à la source

    456.png

    567.png

    678.png

    Mise en service lente Trop de débogage intermédiaire Je ne vais pas prendre toutes les captures d'écran. Viens ici. Découvertedata Paramètres à l'intérieur Compatible avec le cryptage que nous avons vu

h(t.data) Emplacement chiffré

789.png

Entrez.hÀ l'intérieur (Le curseur de la souris est placé hLà - haut Il va le montrer. jsAdresse Si elle n'est pas affichée C'est la preuve que vous n'êtes pas encore arrivé ici. Besoin d'un point d'arrêt devant Rafraîchir le débogage de la page)

8910.png

Découvrez l'adoptionAESAlgorithme de chiffrement Utiliser un modèleCBCMode La méthode de remplissage est: Pkcs7

AES.decrypt() # Description des paramètres Clé secrète Mode Valeur offset
f = 'jo8j9wGw%6HbxfFn' # Clé secrète
m = '0123456789ABCDEF' # Valeur offset

Prouver que la dérivation des données est correcte In return r.toString() Point d'arrêt

91011.png

rLes données sont retournées normalement.

Partage simple des sources(Enregistrer plus tard sans écrire Vous pouvez essayer vous - même Pas question. Attention Une conversation privée.)

import requests
from Crypto.Cipher import AES
import json
​
​
url = 'http://jzsc.mohurd.gov.cn/api/webApi/dataservice/query/comp/list?pg=2&pgsz=15&total=0'
headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38'
}
response = requests.get(url, headers=headers).text
f = 'jo8j9wGw%6HbxfFn'  # Clé secrète
m = '0123456789ABCDEF'  # Valeur offset
​
# Transcodage utf-8? Octets 16Décimal
m = bytes(m, encoding='utf-8')
f = bytes(f, encoding='utf-8')
​
# Créer unAESAlgorithmes Clé secrète Mode Valeur offset
cipher = AES.new(f, AES.MODE_CBC, m)
# Décrypter
decrypt_content = cipher.decrypt(bytes.fromhex(response))
result = str(decrypt_content, encoding='utf-8')
​
# OKCS7 Remplissage
length = len(result) # Longueur de la chaîne
unpadding = ord(result[length - 1]) # Obtenir la dernière chaîneASCII
result = result[0:length - unpadding]
result = json.loads(result)['data']['list'] # dupms json.dumps() dict Format jsonDe
# {"Clé":"Valeur"}
​
for i in result:
   print(i)

Informations sur l'industrie:Attention à recevoirPPTModèle、Modèle de CV、Livres Classiques de l'industriePDF.
Questionnaire d'entrevue:Par des partenaires du Groupe technique,Le vrai problème de l'entretien d'usine chaud,Mise à jour continue.
Matériel d'apprentissage:Y compris le langage de programmation、Algorithmes、Composantes de l'écosystème des mégadonnées(Mysql、Hive、Spark、Flink)

版权声明
本文为[Cinq paquets de spaghettis!]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/10/20211028191003264J.html

  1. 怎么用Python打印数字三角
  2. 怎麼用Python打印數字三角
  3. Comment imprimer un triangle numérique en python
  4. Tester la fonctionnalité de base du tableau de développement microspython mm32f3277 Flying - by - flying
  5. Python extrait plusieurs champs de plusieurs chaînes
  6. Pandas核心用法
  7. Utilisation centrale de pandas
  8. Python, problème de fonctionnement du fichier de données, Code désiré
  9. 【78技术人社群~Python分部】,就在今天成立 →
  10. 社区共读《Python编程从入门到实践》第一天阅读建议
  11. La communauté lit les recommandations de lecture pour la première journée de la programmation Python de l'introduction à la pratique
  12. [78 Communauté des technologues ~ Division Python], fondée aujourd'hui →
  13. Pandas核心用法
  14. 您好,请问您的python按钮开了线程处理还卡ui的问题解决了吗
  15. Python: résolution d'exemples, je ne sais pas comment attendre que tous les chiffres soient entrés avant de sortir
  16. Bonjour, puis - je vous demander si votre bouton Python est activé pour le traitement du thread et le retour de l'interface utilisateur de la carte a été résolu?
  17. Utilisation centrale de pandas
  18. Python technique 2: advanced usage of function parameters
  19. OpenCV-Python实战(14)——人脸检测详解(仅需6行代码学会4种人脸检测方法)
  20. OpenCV-Python實戰(14)——人臉檢測詳解(僅需6行代碼學會4種人臉檢測方法)
  21. OpenCV - Python Real play (14) - face detection details (six lignes de code seulement pour apprendre 4 méthodes de détection de visage)
  22. 你好,python开发mes系统,能分享下吗,我最近也想搞这方面的
  23. 你好,python開發mes系統,能分享下嗎,我最近也想搞這方面的
  24. Bonjour, Python a développé mon système, pouvez - vous le partager?
  25. Introduction to tuples in Python
  26. Introduction to strings in python (Part 2)
  27. Introduction to strings in python (Part 1)
  28. python关于 if 的简单操作时,输出结果不是预期所要的结果 的问题
  29. python關於 if 的簡單操作時,輸出結果不是預期所要的結果 的問題
  30. Lorsque Python fonctionne simplement sur if, la sortie n'est pas le résultat attendu
  31. Python中字典问题请求解惑
  32. Python中字典問題請求解惑
  33. Demande de résolution de problèmes de dictionnaire en python
  34. Python中字典问题请求解惑
  35. Python technique 2: advanced usage of function parameters
  36. Demande de résolution de problèmes de dictionnaire en python
  37. Preliminary Knowledge - Python Core use Common Data Analysis Library (ⅱ)
  38. 关于python的代码问题,终端打印为什么会起飞
  39. En ce qui concerne les problèmes de code Python, pourquoi l'impression du terminal décolle - t - elle?
  40. Python中种子seed的运用问题
  41. L'application de Seed en python
  42. Python functional programming series 008: Testability
  43. [must see for getting started with Python] the difference and connection between cookie and session in Python!
  44. Python Xiaobai from scratch pyqt5 project actual combat (4) basic controls
  45. Python Xiaobai starts the pyqt5 project from scratch (3) connection between signal and slot
  46. Echarts ne peut pas afficher le HTML en PDF en utilisant le pdfkit de Python
  47. 一只Python 小white 的日常提问(づ ●─● )づ
  48. 2021 tutoriel complet d'automatisation des tests d'interface python [matériel d'apprentissage joint]
  49. Décrivez ce que les connaissances pertinentes jouent dans votre travail en utilisant arduino ou Python, y compris les bibliothèques pertinentes, en conjonction avec votre travail quotidien.
  50. Une question quotidienne d'un petit morceau de Python (づ● - ●)
  51. Python中字典问题请求解惑
  52. 一只Python 小white 的日常提問(づ ●─● )づ
  53. 在python中的问题,请问如何解决
  54. Only 10 questions are needed to easily master Matplotlib graphics processing | Python skill tree
  55. 在python中的問題,請問如何解决
  56. Comment résoudre le problème en python
  57. Demande de résolution de problèmes de dictionnaire en python
  58. 使用python,在一个命名为.txt文本文档写入n m乘法表。
  59. En utilisant Python, écrivez une table de multiplication n m dans un document texte nommé.txt.
  60. 使用python,在一個命名為.txt文本文檔寫入n m乘法錶。