今日目標站node
aHR0cHM6Ly9tLndjYmNoaW5hLmNvbS9sb2dpbi9vdGhlci1sb2dpbi5odG1sjson
老規矩先抓包分析請求【圖1-1】:ide
圖1-1網站
能夠看到提交的參數是 json 格式的數據,分別有 sign、password 這兩個比較明顯的加密,先逐個搜索一下。加密
直接經過搜索參數名是能夠直接定位到加密位置的。【圖2-1】3d
圖2-1code
打開【圖2-1】中第二個搜索結果,能夠看到比較明顯的加密位置。【圖2-2】blog
圖2-2md5
從新請求能夠直接斷在咱們斷點的位置,變量 v 與 變量 g 的值都是 undefine,變量N是變量c哈希後大寫的結果。【圖2-3】ci
圖2-3
咱們能夠用 Python 代碼驗證一下。
from hashlib import md5 def md5value(s): a = md5(s.encode()).hexdigest() return a print(md5value('1570346144866').upper()) =============結果================== 7AB7BB567F34658742D95D9F6B72ECC34
按照上面的思路咱們搜索一下參數名 password , 搜索出來的結果比較多【圖3-1】。
圖3-1
一個一個找太麻煩了,比較簡單的方法是直接用 XHR 斷點而後直接翻堆棧。
先根據 XHR 請求添加一個 XHR 斷點【圖3-2】
圖3-2
從新請求後在右側堆棧欄逐步向上翻【圖3-3】,同時觀察左側 password 值的變化。能夠看到當斷點在【圖3-3】位置時,password 的值是咱們輸入的明文,到下一步時值就被加密過了。
圖3-3
同時能夠定位 password 的加密位置在【圖3-4】
圖3-4
加密邏輯也很是簡單。
from hashlib import md5 def md5value(s): a = md5(s.encode()).hexdigest() return a print(md5value('11111111111').upper()) ============結果================== ADBC91A43E988A3B5B745B8529A90B61
到這裏總體的加密就分析出來了,很是簡單。
同類型的加密網站還有:
5rG96L2m5LmL5a62
5piT6LS36YCa
5oOg6YeR6ZSB
5b2T5LmQ572R
5aW96LGG6I+c6LCx572R
像 md5 這類的 hash 用 Python 實現比 node.js 實現方便的多,不用扣取代碼,複用上面的 Python 代碼就能夠實現。
感興趣的朋友能夠試試上面的這些網站,總結出 md5 hash 的一些特徵。
鹹魚總結了一些簡單特徵:
md5 hash的結果是固定不變的
EOF