逆向日期:2024.03.01
使用工具:Node.js、Python
加密方法:AES標準算法
文章全程已做去敏處理!!!? 【需要做的可聯系我】
AES解密處理(直接解密即可)(crypto-js.js 標準算法):在線AES加解密工具
僅供學習,僅供學習,不附源碼,全程圖片代碼
1、打開某某網站(請使用文章開頭的AES在線工具解密):/liDZBx6bZua7bit+Hewycjp4zAJsK6BUD1nuOunNn2RGuyWRfvGrfc+U+6GvvGc
2、我們打開網站后,輸入納稅人編號,可以去企查查里拿公開的,必須是山西地區的哦,因為這個網站只能查山西地區的,然后點擊查詢,會看到有一個滑塊讓你驗證,將滑塊劃到正確位置,,,然后在控制臺可以看到,共發送了四次請求,我來和大家一個一個講一下
【第一個api】:荷載的信息都是固定的,【ts】是有一個13位的時間戳,分析圖下方。。。這個接口的作用就是發放無權限token和驗證信息

【第二個api】:載荷的信息只有【token】和【pointJson】會變動。。【token】可在第一個api里獲取。。【pointJson】需要模擬算法生成。。。這個接口的作用就是 驗證滑塊是否成功,并給之前的token賦予訪問權限

【第三個api】:荷載信息只有【captchaVerification】【nd】【NSR】會變動。【captchaVerification】需要模擬算法去生成。【nd】是個13位的時間戳。【NSR】是你要查詢的納稅人識別號。。。。這個api的作用是使用已授權的token進行訪問數據

【第四個api】:這個就不用講了,這個api和第一個api是一樣的作用,,當你信息驗證失敗或你主動刷新滑塊驗證碼的時候,就會有這個請求,,作用和第一個一樣,只是會重新給你一套全新的信息,比如token、滑塊的圖片.....
3、已知第一個api是生成信息,無需模擬算法生成,,那我們直接去模擬第二個api的【pointJson】這個是需要通過算法去生成的,,直接全局搜索大法,找到了,他是把你滑動的距離進行了一個加密,密鑰使用的第一個api內獲取的,加密的參數是你滑動滑塊的距離,然后經過一個簡單的算法運算后得出一個參數【{"x":101.525,"y":5}】

4、我們繼續跟棧走,沒想到呀,他用的是一個AES加密方法,而且還沒有混淆,這感情好呀,我們直接本地模擬去

5、因為js代碼較少,所以我將js代碼寫進了python里,方便直接調用,省去了讀取加載步驟


6、在這里講一下為什么我上面要將計算出的滑塊【距離乘于1.3】,看下面圖,我將原網站的滑塊背景圖在新標簽頁中打開后,發現距離不一樣



7、我們接下來搞第三個api接口,這個接口就是用來獲取最終數據的,但我們還要去模擬【captchaVerification】參數值,其他的參數你們都懂,仍然一樣,全局搜索,,沒想到呀,算法竟然一樣的,直接用上一個算法就可以,只不過加密的參數多了一個token,仍然簡單,直接模擬去

8、都模擬完成了,允許測試,妥了,成功

