javascript
JS逆向笔记-记录某测试论坛的js逆向练习
這個網站應該是專門練習的,因為有個地方說不太通,在此只能算是練習,記錄下,方便以后進行查閱。
首先訪問主頁:
他會設置一個cookie值,并且會把加密的salt
帶出來。還有個叫l(wèi)t的東西也會用html的形式傳出來。
這個lt,會在發(fā)送請求的時候帶出去。
輸入用戶名密碼后,點擊登錄,發(fā)送的是這樣的body:
username=admin888&password=H1uFJjwe8ZoS04VFZBOCBfma9qdoxrSd%2FND4gBK3%2F8YlVJaQ4ZJFSIO5PLjgZdYTkrgjILDmfXADSDtWJQpZCp%2FOUSX3nOo5zz6fuVHd%2FuU%3D&captchaResponse=hppx<=LT-3032376-qI7M4Pc15tRwukqt4nKojGlPuUL5gx1646621586496-mdSp-cas&dllt=userNamePasswordLogin&execution=e1s1&_eventId=submit&rmShown=1這里重新刷新了下頁面,上面的salt和lt會改變,下面來分析下這個password。關鍵代碼已經定位到此處,下個斷點:
?
function _gas(data, key0, iv0) {key0 = key0.replace(/(^\s+)|(\s+$)/g, "");var key = CryptoJS.enc.Utf8.parse(key0);var iv = CryptoJS.enc.Utf8.parse(iv0);var encrypted = CryptoJS.AES.encrypt(data, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return encrypted.toString(); } function encryptAES(data, _p1) {if (!_p1) {return data;}var encrypted = _gas(_rds(64) + data, _p1, _rds(16));return encrypted; } function _ep(p0, p1) {try {return encryptAES(p0, p1);} catch (e) {}return p0; } var $_chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; var _chars_len = $_chars.length; function _rds(len) {var retStr = '';for (i = 0; i < len; i++) {retStr += $_chars.charAt(Math.floor(Math.random() * _chars_len));}return retStr; }從中可以知道密碼加密是這樣的
加密字符串:64位隨機數(shù)+密碼;
密鑰:登錄首頁時服務器給的16位字符串。
偏移量:16位隨機的字符串。
加密方式:CBC;
填充:pkcs7
比如這樣的:
?他的data是:fa7B3ixA4EP7YBQfjPtbn6PX8THKAYSWD6ncB8RhrNxy5aAcdQWc63PnkGbf8w5padmin888
key0是:Jaj2b6QTiljjdd6J
iv0是:XMZb5i5FEfP4YjSA
用在線AES加密試下:
?GPUjEIFA0wavbfPL9xVlVPE0C/Id2lZfZtiuNfc0Dk4+nA2UD9syrng7xn3PhFrhVRiTI4sMrqfrd+x7Um6REyHwxvyJI38ZoykQAC+SelQ=
看下程序他跑出來是多少
?發(fā)現(xiàn)是一樣的??纯窗l(fā)的包是不是一樣的:
username=admin888&password=GPUjEIFA0wavbfPL9xVlVPE0C%2FId2lZfZtiuNfc0Dk4%2BnA2UD9syrng7xn3PhFrhVRiTI4sMrqfrd%2Bx7Um6REyHwxvyJI38ZoykQAC%2BSelQ%3D&captchaResponse=apcf<=LT-3032840-P9cGjCTq3ciu0bTqOitzoL2nzmTLRv1646622551540-mdSp-cas&dllt=userNamePasswordLogin&execution=e1s3&_eventId=submit&rmShown=1從中可以看到是一樣的,只是轉成了URI。
注:這里服務器在解碼時,必須要偏移量,而從這提交的包中,沒有看到對偏移量相關的加密等。在此感覺,這個站點僅僅是個測試站點。但對我也很有啟發(fā),后面一篇博文,用這種方式,實現(xiàn)密鑰和偏移量的交換。
總結
以上是生活随笔為你收集整理的JS逆向笔记-记录某测试论坛的js逆向练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python没有联网_无网环境下的 Py
- 下一篇: 基于java的银行ATM系统设计(含源文