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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS逆向实战26——某店ua模拟登陆

發(fā)布時間:2023/11/18 javascript 64 coder
生活随笔 收集整理的這篇文章主要介紹了 JS逆向实战26——某店ua模拟登陆 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

聲明

本文章中所有內(nèi)容僅供學(xué)習(xí)交流,抓包內(nèi)容、敏感網(wǎng)址、數(shù)據(jù)接口均已做脫敏處理,嚴(yán)禁用于商業(yè)用途和非法用途,否則由此產(chǎn)生的一切后果均與作者無關(guān),若有侵權(quán),請聯(lián)系我立即刪除!

目標(biāo)

目標(biāo)網(wǎng)站

aHR0cHM6Ly9kLndlaWRpYW4uY29tL3dlaWRpYW4tcGMvbG9naW4=

目標(biāo)
獲取登錄接口 UA 參數(shù)加密,UA參數(shù)經(jīng)過了OB混淆加密
其他
**本文更新于2023/11/13 **
與之前版本不太一樣的是增加了phone和password 以及CountryCode的加密。
ps: 上一次發(fā)的文章中有個錯誤。我的賬號和密碼加密沒有添加公鑰 導(dǎo)致請求失敗。
還有的就是對ua的某些值的校驗。

其他參數(shù)加密


如上圖所示:除了ua是我們本文需要研究的。還有幾個參數(shù)也是需要我們給逆向逆出來的。
分別為:

  • phone
  • countryCode
  • password
  • wdtoken

我們直接搜索 countryCode

如上圖所示。這里就直接顯示出了加密的位置。后面就一直跟棧一直扣就行了。很簡單。

跟到這個地方。把這一整個JSEncrypt 文件保存下來。然后簡單補(bǔ)兩個環(huán)境。

具體代碼如下:
JSEncrypt.js

window = global;
navigator={
    appName:'Netscape'
}
...

login_encrypt.js

window = global;

var JSEncrypt =require("./JSEncrypt.js")
var v = new JSEncrypt()

_encrypt = function (e) {
    return e ? v.encrypt(e + "") : ""
}

getCountryCode = function (e) {
    return Number(e.split("-")[0])
}


function encrypt_up(t){
    return _encrypt(t)
}

function encrypt_CountryCode(){
    return _encrypt(getCountryCode("86-Z"))
}

// i = window.getUa()
// phone = _encrypt(17772231096)
// countryCode = _encrypt(getCountryCode("86-Z"))
// password = _encrypt("1323123213")
//
// console.log(phone,countryCode,password)

至于wdtoken
其實是通過某個請求set_cookie得來的。

抓包分析

研究完其他參數(shù)。我們可以來搞UA了。
在剛剛的抓包過程中。我們已經(jīng)找到了加密位置。

可以看到 ua加密賦值給了i 。i最后再通過URL編碼。得到了網(wǎng)頁上呈現(xiàn)的UA。
進(jìn)棧之后

可以看到 這就是個標(biāo)準(zhǔn)的OB混淆啊。至于什么是OB混淆,自己搜搜資料。這里貼一個官網(wǎng)地址: https://obfuscator.io/#upload
簡單來說就是一個免費且高效的 JavaScript 混淆器。使代碼更難復(fù)制,并防止其他人竊取代碼。
可以通過AST的方式。或者是工具的方法去給解混淆。
這里我通過
https://tool.yuanrenxue.cn/decode_obfuscator
模式2 的方式去解混淆。

代碼分析

解混淆后的主要代碼如下

確實到這邊已經(jīng)一目了然了。
這里簡單來看看 _0x2e98dd 和 _0x420004

_0x2e98dd:

_0x420004:

如此一來。可以得到一下如此結(jié)論

UA參數(shù)由三部分組成。最后通過gzip壓縮然后btoa(base64)加密。

  1. _0x7dfc34 這個值很簡單。通過JS生成的時間戳
  2. _0x1722c3(_0x2e98dd) 這部分是瀏覽器的環(huán)境代碼
  3. _0x1722c3(_0x420004) 這部分是鼠標(biāo)軌跡以及一些是否點擊的鼠標(biāo)環(huán)境。
  4. 最后通過gzip壓縮 然后base64 加密。
var _0x261229 = _0x1722c3(_0x2e98dd) + "|" + _0x1722c3(_0x420004) + "|" + _0x7dfc34["toString"](16);

_0x261229 = btoa(_0x570bef["gzip"](_0x261229, {
  "to": "string"
}));

參數(shù)分析

這里扣代碼其實很簡單。因為已經(jīng)脫混淆了。缺什么補(bǔ)什么就行了
這里需要注意的是最后通過zip壓縮 然后base64加密的那部分函數(shù)代碼。

這里可以通過兩種方法去補(bǔ)全。

  1. 扣代碼(最穩(wěn)定且最容易出正確結(jié)果的)
  2. 因為是gzip壓縮算法,可以直接套庫。

代碼

我們把所有值帶入

誒 發(fā)現(xiàn)為什么是參數(shù)錯誤呢?
哦我的天哪。好像并沒有看上去那么簡單。經(jīng)過我無間斷的測試。我發(fā)現(xiàn)ua確實是沒問題的。
而真正出問題的是 phone 和password 這個rsa加密。
我們網(wǎng)上去找。
按步驟去跟棧 最后發(fā)現(xiàn)在初始化V的時候。還有個地方設(shè)置了個公鑰。我并沒有發(fā)現(xiàn)。所以導(dǎo)致請求的時候 老是參數(shù)錯誤。

設(shè)置完公鑰后。重新請求。
然后就可以了。搞的時候感覺很難。真正寫出來。感覺好簡單。。。


可以關(guān)注我的微信公眾號。
某些文章,核心代碼,以及提前更新都在微信公眾號上。

總結(jié)

以上是生活随笔為你收集整理的JS逆向实战26——某店ua模拟登陆的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。