日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【JS 逆向百例】Ether Rock 空投接口 AES256 加密分析

發布時間:2023/12/10 javascript 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JS 逆向百例】Ether Rock 空投接口 AES256 加密分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關注微信公眾號:K哥爬蟲,持續分享爬蟲進階、JS/安卓逆向等技術干貨!

聲明

本文章中所有內容僅供學習交流,抓包內容、敏感網址、數據接口均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關,若有侵權,請聯系我立即刪除!

逆向目標

  • 目標:Ether Rock(一種數字貨幣)空投接口 AES256 加密分析
  • 主頁:aHR0cHM6Ly9ldGhlcnJvY2submV0L2FpcmRyb3Av
  • 接口:aHR0cHM6Ly9ldGhlcnJvY2submV0L2FpcmRyb3Atc3VibWl0
  • 逆向參數:Form Data:content: U2FsdGVkX1/XnffSPZONOHb... key: jrwBwX2ll38bu/FFql+bAUYrRG8Ij...

逆向分析

來到空投頁面,隨便輸入一個 ETH 錢包地址,點擊提交,可抓包到提交接口,POST 請求,Form Data 里 content 和 key 參數均經過了加密處理,如下圖所示:

老方法,嘗試直接搜索,結果很多,不利于快速定位,XHR 斷點,很容易定位到加密位置,如下圖所示:

一步一步分析,首先定義了 content 對象:

var content={address:$(this).find('input[name=address]').val(),ref:$(this).find('input[name=ref]').val(),uuid:uuid,tz:tz,tz_offset:tz_offset,screen:window.screen.width+'x'+window.screen.height+'x'+window.screen.colorDepth,user_agent:navigator.userAgent,cpu:navigator.hardwareConcurrency,lang:navigator.language||navigator.userLanguage, };

address 是錢包地址,ref、uuid 為空,tz 是時區,tz_offset 是時區偏移量,即當前時區與格林尼治標準時間(GMT)的差,screen 是屏幕相關信息,user_agent 是瀏覽器信息,cpu 是處理器數量,lang 是語言。這些值除了 address 以外都可以固定。

接下來定義了一個 key:var key=random_string(36);,跟進 random_string() 方法,可以看到是進行了一些取隨機值和冪運算,可以直接 copy 下來,如下圖所示:

接著將定義的 content 和生成的 key 進行了一個叫做 AES256 的加密:content=AES256.encrypt(JSON.stringify(content),key); 這里 AES256 一般是指的密鑰長度為 32 bytes(256 bit / 8)的 AES 加密,但是不要被名稱迷惑,我們跟進去看看:

可以看到實際上是調用了 h.AES.encrypt() 方法,往上看這個 h,可以看到是引用了 node-cryptojs-aes,支持 AES 對稱密鑰加密,這里就比較簡單了,我們在本地也直接引入這個庫即可,至此,content 的加密方式就找到了。

接下來看 key 值,這個就更簡單了,很明顯用的是 jsencrypt 庫,對原來生成的 36 位字符串的 key 進行了 RSA 加密,同樣在本地直接引用庫即可。

完整代碼

GitHub 關注 K 哥爬蟲,持續分享爬蟲相關代碼!歡迎 star !https://github.com/kgepachong/

以下只演示部分關鍵代碼,不能直接運行! 完整代碼倉庫地址:https://github.com/kgepachong/crawler/

JavaScript 加密代碼

function randomString(N) {if (!parseInt(N, 10)) N = 6;var rs = Math.floor(Math.pow(36, N) * Math.random()).toString(36);return (Math.pow(10, N) + rs).substr(-N); }var h = require("node-cryptojs-aes").CryptoJS, p = {stringify: function (b) {var e = h.enc.Hex.parse(b.salt.toString()).toString(h.enc.Latin1);b = b.ciphertext.toString(h.enc.Latin1);return h.enc.Latin1.parse("Salted__" + e + b).toString(h.enc.Base64)},parse: function (b) {b = h.enc.Base64.parse(b).toString(h.enc.Latin1);if ("Salted__" !== b.substr(0, 8))throw Error("Error parsing salt");var e = b.substr(8, 8);b = b.substr(16);return h.lib.CipherParams.create({ciphertext: h.enc.Latin1.parse(b),salt: h.enc.Latin1.parse(e)})} };var e = randomString(36);function getContent(address) {var b = JSON.stringify({"address": address,"ref": "","uuid": "","tz": "Asia/Shanghai","tz_offset": 8,"screen": "1920x1080x24","user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36","cpu": 8,"lang": "zh"})return h.AES.encrypt(b, e, {format: p}).toString() }function getKey() {JSEncrypt = require("jsencrypt")var crypt = new JSEncrypt();var pub = ['-----BEGIN PUBLIC KEY-----','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVmYQhCYTnnkTPRMI5Ad3vfad9','lhjzOU92FZ3reUiN/vmqP/wC1DKKExYDsqa+w5xBP0AjGkfDWk3q4PlWu0UsBGZx','62Gvt0ds75u8FnmLv+ufMimF4962/9Lx7uyh9g1H3/ze5ZXscWYy3gtts9d2Ga0R','pl0X49Cz0JhYYicuGwIDAQAB','-----END PUBLIC KEY-----',];crypt.setPublicKey(pub.join('\n'));key = crypt.encrypt(e);return key }function getContentAndKey(address) {result = {"key": getKey(),"content": getContent(address)}return result }// 測試樣例 // console.log(getContentAndKey("xxxxxxxxxxxxxxxx"))

Python 代碼

# ================================== # --*-- coding: utf-8 --*-- # @Time : 2021-11-24 # @Author : 微信公眾號:K哥爬蟲 # @FileName: airdrop_submit.py # @Software: PyCharm # ==================================import execjs import requestsdef get_content_and_key(address):with open("get_content_and_key.js", encoding="utf-8") as f:ether_rock_js = f.read()content_and_key_dict = execjs.compile(ether_rock_js).call('getContentAndKey', address)return content_and_key_dictdef airdrop_submit(content_and_key_dict):submit_url = "脫敏處理,完整代碼關注 GitHub:https://github.com/kgepachong/crawler"headers = {"Accept": "text/html, */*; q=0.01","Accept-Language": "zh,zh-CN;q=0.9,en-US;q=0.8,en;q=0.7","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36","X-Requested-With": "XMLHttpRequest","Host": "脫敏處理,完整代碼關注 GitHub:https://github.com/kgepachong/crawler","Origin": "脫敏處理,完整代碼關注 GitHub:https://github.com/kgepachong/crawler",}data = {"content": content_and_key_dict["content"],"key": content_and_key_dict["key"]}response = requests.post(url=submit_url, data=data, headers=headers)print(response.text)def main():address = input("請輸入ETH錢包地址領取空投: ")content_and_key_dict = get_content_and_key(address)airdrop_submit(content_and_key_dict)if __name__ == '__main__':main()

總結

以上是生活随笔為你收集整理的【JS 逆向百例】Ether Rock 空投接口 AES256 加密分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 蜜桃视频在线观看网站 | 人人插人人看 | 本道久久 | 国产喷水福利在线视频 | 亚洲精品字幕在线观看 | 亚洲欧美中文日韩在线观看 | 91中文字幕视频 | 国产精品久久久久久网站 | 91丨九色丨蝌蚪丨老版 | 丰满熟女人妻一区二区三区 | 三级免费黄 | 久久精品无码毛片 | 久久久久久久久久久av | 亚洲av成人一区二区 | 深夜精品视频 | 欧日韩av| 欧美偷拍精品 | 国产一级做a爰片久久毛片男男 | 高潮毛片 | 亚洲色偷偷色噜噜狠狠99网 | 日本女人黄色 | 朝桐光在线观看 | 国产精品久久久久久人妻精品动漫 | 在线视频污 | 日本美女黄色 | av网址有哪些 | 91成人精品 | 亚洲一级网 | 天天综合在线观看 | 亚洲成人动漫在线观看 | 日本黄色xxxx | 男人的天堂黄色 | 国产性生活片 | 亚洲 欧美 激情 小说 另类 | 日日操日日爽 | 日韩高清在线播放 | 国产成人在线网站 | 超碰2019| 国产一区色 | 日韩不卡毛片 | 亚洲综合色站 | 国产freexxxx性播放麻豆 | 精品国产免费观看 | 欧美a在线观看 | 深夜久久| 欧美精品性生活 | 精品一区二区成人免费视频 | 播播网色播播 | 99夜色 | 亚洲a人 | 免费毛片网站在线观看 | 胖女人毛片 | 色综合久久88色综合天天6 | 中文字幕一区二区人妻痴汉电车 | 久久无码人妻丰满熟妇区毛片 | 大陆一级黄色片 | 国产日韩欧美综合在线 | 91香蕉一区二区三区在线观看 | 亚洲三区在线观看无套内射 | 亚洲综合色一区二区 | 国产黄色高清视频 | 麻豆视频网站入口 | 少妇被按摩师摸高潮了 | 亚洲欧美综合色 | 三及毛片| 网站在线播放 | 中文字幕免费高清在线 | www.色图 | 九色porn| 日本后进式猛烈xx00动态图 | 亚洲av激情无码专区在线播放 | 精品国产一级片 | av免费在线观看网址 | 3d动漫精品啪啪一区二区竹菊 | 久草影音| 免费在线观看av网址 | 国产小视频在线播放 | 免费毛片看片 | 美日韩三级 | 福利影院在线观看 | 大香蕉视频一区二区 | 欧美激情视频在线播放 | 日出白浆视频 | 亚洲tv在线观看 | 免费黄色大片 | 成人一区二区电影 | 亚洲综合射| 欧美性生活一区 | 黄色录像一级大片 | 天天干天天上 | 最新精品在线 | 日韩免费av| www一区二区三区 | v天堂在线 | 色视频网站在线观看 | 精品日韩视频 | 亚洲欲| 国产吃瓜黑料一区二区 | 女性向av免费网站 |