JS逆向-Sekiro框架的簡單使用

2021-02-26 guguji


    本文只作學習研究,禁止用於非法用途,否則後果自負,如有侵權,請告知刪除,謝謝!

     aHR0cHM6Ly93d3cuaWVzZG91eWluLmNvbS9zaGFyZS91c2VyLzgxNDE0MTYyODc2P3NlY191aWQ9TVM0d0xqQUJBQUFBa01DSU11enlDVkxjOXBOZFRLN2tYa05SbDZhT281U0l0NndqeGI2Z2tLOA==    開發者模式抓就行了,喜歡用charles的也可以使用charles

通過抓包可知,該請求為xhr請求,現在sources面板進行xhr斷點,看下請求調用棧

下好斷點,F5刷新頁面,發現已經成功斷點並獲取到詳細調用棧

將該文件內的js代碼全部copy下來,放到webstorm中供後續sekiro調用,這裡我將複製出來的代碼保存的文件命名為sekiro_test.js,首先將sekiro框架的js文件配置文件配好:github地址:https://github.com/virjar/sekiro

瀏覽器打開紅框中的js文件,並將返回的js代碼及藍框中的js代碼內容複製到剛才的sekiro_test.js文件中,如下所示:

配置代碼塊完成之後,打開chrome的reres插件(reres插件可自行搜索下載),進行js文件替換:

配置完成後,取消xhr斷點並刷新頁面,控制臺輸出如下:

打開該連結,其中group即為上輸藍框中wss連結裡的group參數,cation即為registerAction中的action接口clientTime,發現可以正常輸出當前時間,接下來則開始調試sekiro_test.js文件

根據剛才請求的調用棧,發現整個接口的發送邏輯是通過init(config)調用renderMain(config),然後再在renderMain中調用getWorkList(type),而後又通過getWorkList發送ajax請求實現的:

其中init方法參數config在控制臺顯示為一個object對象:

在sekiro_test.js文件中直接使用registerAction註冊一個getaData接口,傳遞resolve和reject參數調用init方法,做如下配置:

提示代碼錯誤,init方法未找到,因為該方法是在自執行函數中定義的,作用域不同,因此無法調用,此處可通過騷操作來調用,先在外部定義一個init_sekiro對象,然後在自執行函數內部定義init_sekiro = init即可在外部實現調用:


記得將resolve和reject也作為參數傳遞給renderMain和getWorkList

renderMain(config, resolve, reject){...}

getWorkList(type, resolve, reject){...}

在getWorkList中返回數據的位置使用resolve接受數據:

配置完成後,啟動reres插件替換js服務,關閉xhr斷點,刷新頁面:

在getWorkList中添加兩行,看下傳遞的參數:

輸出結果:

因為我們還沒有調用client服務,因此resolve為undefined,未避免這種情況,加一個判斷即可:

再次刷新頁面,發現沒有再報錯

使用postman遠程調用試下:

可以正常請求到數據,此時console控制臺輸出:

到這裡就已經實現xhr接口的遠程調用了,但是現在看config參數好像不太美觀,優化一下,將get請求的參數調整為sec_uid和uid:

python腳本也能正常返回數據:

當然,操作過程可能返回的數據是這樣的:

    有可能是接口後臺沒返回數據,多刷新幾次就可以了,畢竟現在的web端手動查看有時候都不返回數據了。

    至此則已實現sekiro框架的遠程調用服務,關鍵點在於找到數據接受和發送的位置,同時修改代碼時儘量不影響原網頁的運行,如有報錯則查看報錯位置的傳參和返回值,缺啥補啥即可,然後在那個地方實現遠程調用,獲取數據。

其中文中的group、client、clientId等都可到github上查看具體含義,在我的理解中,sekiro框架在js中的應用在某方面有點類似frida在安卓hook中的應用,都可以在不影響原網頁或app運行的過程中,將結果hook下來並實現遠程調用,期待後續在安卓群控場景中的應用。github地址:https://github.com/virjar/sekiro僅為測試學習,請勿批量採集,如有商業需求可到github上聯繫原作者virjar。

相關焦點

  • 初步認識vue.js框架的使用
    vue.js框架是幹什麼的Vue.js 是一個JavaScriptMVVM庫,是一套構建用戶界面的漸進式框架。它是以數據驅動和組件化的思想構建的,採用自底向上增量開發的設計。相比於Angular.js,Vue.js提供了更加簡潔、更易於理解的API,使得我們能夠快速地上手並使用Vue.js。如何使用vue.js1.下載 vue.min.js 並用 <script> 標籤引入。
  • Ember.js和Vue.js,哪種框架更適合前端開發?
    隨著前端技術的發展,比起純JavaScript 腳本,大多數開發人員更喜歡使用基於JavaScript的框架來開發Web應用,如Vue、React等。這些框架大大簡化了你的代碼,也使你能夠完成更多的全棧工作。使用什麼類型的框架決定了應用程式的敏捷程度。因此,您必須慎重選擇。在充滿多樣性的前端生態中,有兩個框架十分引人矚目——Ember.js和Vue.js。
  • 在 Vue.js 中集成 CSS 框架
    一般來說在 VUE 中集成 CSS 框架的方法是相同的,本文以被廣泛使用的 Bootstrap 4 為例。安裝併集成 FoundationFoundation 是一個優秀的 CSS 框架。它有兩個框架:一個用於電子郵件,一個用於網站。我們需要的是 Foundation Sites 框架,因為我們只關心在 Web 中使用 Foundation。
  • egg.js和nest.js使用場景對比
    , 不再需要手動維護模塊之間的依賴關係, 核心就是一個loader, 雖然官方沒有提及, 但是本人開下腦洞猜測, 這個模塊的實現靈感有可能來自於墳頭草已經一人高了的seajs, -_-, 這種掛載模式實現起來簡單粗暴直接高效, 但是一個小問題就是在使用TS編寫代碼的時候, 會影響書寫體驗的流暢度, 畢竟不很OOP。
  • 2021了你該知道的6個Node.js後端框架
    目前IT行業中將框架用於開發目的發揮著巨大作用。了解和使用框架是現代IT行業的主要工作因素之一。作為開發人員,大家都至少熟悉一個後端框架。以下將推薦一些2021年應該使用的6個流行的後端框架。
  • ReactJS與VueJS:兩種流行前端 JS 框架之戰
    好吧,兩個最受歡迎的框架 React Js 和 Vue.Js 之間的戰鬥是真實的。確實很難表明哪個能推翻另一個。但是,我們試圖在此處區分這兩個框架。請閱讀本文…不用說,Javascript贏得了數百萬的讚譽,大型巨頭正在使用此技術搶佔份額。但是,最流行的是兩個最受歡迎的 Javascript 框架,React.Js 和 Vue.Js。開發人員正在擁抱這種使用基於魔術的框架。
  • TensorFlow發布JavaScript開發者的機器學習框架TensorFlow.js
    去年的 TensorFlow 開發者大會上,該框架正式升級到了 1.0 版本,逐漸成為最流行的深度學習框架。今年,TensorFlow 發布了面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js。
  • 10 個最適合 Web 和 APP 開發的 NodeJS 框架
    Sail.js 在底層使用了 express框架來提供對 http 請求的處理,同時使用 Socket.IO 框架來處理WebSocket 請求。同時作為一個前端應用開發框架,它允許開發人員選擇他/她熟悉的技術來開發應用。 同時 Sail.js 也通過 waterline 框架實現了 ORM 功能。
  • 詳解Hook框架frida,讓你在逆向工作中效率成倍提升!
    一、frida簡介frida是一款基於python + javascript 的hook框架,可運行在androidioslinuxwinosx等各平臺,主要使用動態二進位插樁技術。本期「安仔課堂」,ISEC實驗室的彭老師為大家詳解frida,認真讀完這篇文章會讓你在逆向工作中效率成倍提升哦!
  • 10個強大的Node.JS框架,加速您的Web開發
    Hapi.js提供諸如使用JOI的輸入驗證、緩存、日誌記錄、配置和錯誤處理等功能,所有這些功能都旨在構建具有乾淨代碼並提供高性能的Web應用程式和API。Sails.jsSails.js是Node.js的另一個強大的框架,也是最受歡迎的MVC框架之一。它用於構建自定義、企業級和實時應用程式。
  • Per.js 2.6 版本發布,執行速度超快的 JS 響應式框架
    Per.js 2.6版本今天發布了,那麼讓我們來看看這次版本更新了哪些內容:dom方法增加info屬性,用來定義值,同時方法中的this指向info
  • Per.js 2.5 版本發布,執行速度超快的 JS 響應式框架
    Per.js 2.5版本今天發布了,那麼讓我們來看看這次版本更新了哪些內容:修復data屬性bug修復for屬性響應式bug
  • Per.js 2.6.1 版本發布,執行速度超快的 JS 響應式框架
    Per.js 2.6.1版本今天發布了,那麼讓我們來看看這次版本更新了哪些內容:
  • Nest.js 5 正式版:基於 TypeScript 的 Node.js 微服務框架
    Nest.js 5 正式版發布了,Nest.js 是基於 TypeScript 面向切面編程的 Node.js 微服務框架,主要改進內容包括:功能特性
  • 幾行JavaScript代碼構建計算機視覺程序,這裡有6個js框架
    TensorFlow.js作為最大的機器學習框架之一,TensorFlow 允許使用 TensorFlow.js 創建 Node.js 和前端 JavaScript 應用程式。下面的demo 使用一系列圖像來匹配人物姿勢。TensorFlow 還擁有一個 playground,用戶可以藉此得到更好的神經網絡可視化,很適合教育目的。
  • 【知識庫】八款你不得不知的開源前端JS框架
    本文推薦了八款比較熱門和經典的Javascript 開源框架,並給出了相關學習資料,有興趣的朋友可以看看~angular.jsTodoMVC是一款開源的JavaScript框架,它使用各種不同的MV*框架實現一個相同的Todo應用。
  • Per.js 2.2 正式發布,中國速度最快的JS大型響應式框架?
    Per.js 2.2版本今天發布了,那麼讓我們來看看這次2.2版本更新了哪些內容:
  • 爬蟲js逆向之加密參數破解--抖音第三方數據分析平臺的坑
    爬蟲js逆向系列我會把做爬蟲過程中,遇到的所有js逆向的問題分類展示出來,以現象,解決思路,以及代碼實現
  • 有人分析了7個基於JS語言的DL框架
    比較不同框架在 CPU 後臺的訓練時間,我們可以看到 ConvNetJS 是所有框架中所有網絡配置下速度最快的。作者分析,可能的原因是 ConvNetJS 的設計比較簡單,這也可以從它的庫文件大小反映出來。在速度方面 Brain.js 緊隨其後,與 ConvNetJS 的性能差距約為 2 倍,而 Tensorflow.js 與 ConvNetJS 的性能差距約為兩到三倍。
  • Node.js核心框架貢獻者力作,終於有電子版了,還是高清PDF
    本書是Node.js的實戰教程,涵蓋了為開發產品及Node應用程式所需要的一切特性、技巧以及相關理念。從搭建Node開發環境,到一些簡單的演示程序,到開發複雜應用程式所必不可少的異步編程。第一部分介紹了Node.js,教授了一些用它做開發所需要的基礎技術。第l章闡述了Node的特徵,並給出了一些示例代碼。第2章指導讀者創建了一個示例程序。第3章闡述了Node.js開發的困難之處,以及可以用來克服這些困難的技術,並給出了組織程序代碼的辦法。