成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實戰攻防:紅隊視角下的JS攻防

安全 應用安全
本篇文章,我們從實戰角度出發,對整個JavaScript逆向的流程進行了簡單介紹,通過三大步驟——尋找入口、調試分析、模擬執行來梳理JavaScript逆向過程中常用技巧,文中部分內容由于篇幅限制,僅提供思路,歡迎大家進行交流。

前言

隨著當前攻防水平的不斷提高,實戰攻防過程中,經常能遇到前端的參數被各種各樣的方式加密的情況。毫無疑問,這種方式能夠防止很多腳本小子的腳步,但是很多網站就存在“金玉其外,敗絮其內“的情況,將傳遞的參數加密了事,忽略很多系統本身存在的安全風險。本文以實戰角度出發,介紹面對這種前端加密情況下的攻防技巧。

測試思路

常見的JavaScript逆向相關的技巧,包括瀏覽器調試、Hook、AST、無限Debugger的繞過以及模擬調用JavaScript等,但是在實際對抗過程中,如何將技巧形成一個行之有效的“套路“來應對JavaScript逆向的流程。一般來說,在實戰過程中,JavaScript可以分為三大部分:尋找入口、調試分析和模擬執行。

尋找入口

關鍵步驟,逆向大部分情況下就是分析加密參數是如何來的,實戰過程中,遇到請求中的加密參數比如token、sign等,這個加密邏輯是如何形成的?這個關鍵邏輯可能寫在某個方法、或者隱藏在某個關鍵變量中,眾所周知,一個網站加載了很多JavaScript文件,如何尋找這個加密邏輯就是我們尋找入口所要做的事情。

調試分析

找到入口之后,我們找到這個參數是在某個方法里面執行的,那么到底是如何執行這個加密邏輯的呢?里面究竟調用了多少加密算法,經歷了多少次賦值和轉換呢?這些都是我們要思考的點,以便于我們后續進行模擬調用或者邏輯改寫。在這個過程中我們主要是借助瀏覽器的調試工具打斷點進行分析,或者借助反混淆工具進行代碼的反混淆等。

模擬執行

經過調試分析后,我們已經大致弄清楚整個加密邏輯,但是我們最終的目的就是如何加解密參數,方便我們進行攻擊操作。因此這個過程就需要對整個加密邏輯進行復寫或者模擬執行,比如我們輸入的是一些惡意代碼,經過調用后,就是服務器能夠識別的加密代碼,從而完成一次攻擊。

01尋找入口

常見的尋找入口的操作很多,其中包括:查看請求、搜索參數、分析發起調用、打斷點、Hook等操作,這里來分別介紹一下:「查看請求」以一次訪問電影網站為例,可以看到首頁有很多數據,這些數據肯定是逐個請求返回的,我們就要思考,究竟是哪一個請求返回的內容呢?打開瀏覽器開發者工具-->打開網絡面板-->點擊搜索按鈕,比如我們這里就搜索唐伯虎點秋香,如下圖所示:

此時可以看到對應的搜索結果,點擊搜索到的結果,我們就可以定位到對應的響應結果的位置,如下圖所示:

找到響應之后,我們就可以順便找到是誰發起的請求了,如下圖所示:

比如,這里我們想找到我們想要的數據所對應的請求位置了。很明顯,請求方法為GET,參數是limit、offset、token。一般來說,可以通過這種方法來尋找最初的突破口,如果這個請求帶有加密參數,就需要知道這個參數究竟是在哪里生成的。如果這個參數沒有加密,爬蟲選手可以直接開爬,就可以獲取該系統所有的電影數據。思考一下,如果電影數據是身份信息會怎么樣呢?「搜索參數」在上一步中,我們已經找到了最初的突破口,明確了關鍵請求是如何發起的,帶有什么加密參數,這里發現一個關鍵參數token,現在就是去尋找token前世今生的時候了。最簡單的方法就是直接進行全局搜索。一般來說,參數名就是一個普通的字符串,這里的參數名就叫做token,這里的某個JavaScript文件中肯定有這個字符串。這里有一個搜索技巧,點擊ctrl+shift+F,開啟全局搜索,如下圖所示:

這是一個資源搜索的入口,可以搜索我們下載下來的JavaScript文件的內容,這里我們輸入token來進行搜索。

這樣我們就找到一些關鍵點了,一共五個結果,結果不多,我們可以進一步分析。「調用分析」搜索是一種查找入口的方式,這是從源碼層面進行查找,我們也可以從發起調用邏輯的流程進行分析。比如打開Network請求里面的Initiator查看當前請求構造的相關邏輯。

點擊光標,會有完整的請求調用流程,我們點進去就可以尋找到相關代碼邏輯。

很明顯,紅框處是我們尋找到的入口點參數,我們找到了入口點。

「斷點分析」我們還可以通過一些端點進行入口的查找,比如XHR斷點,DOM斷點、事件斷點等。這里我們在開發者工具Sources面板里添加設置,比如這里我們添加了XHR斷點和全局Load時間斷點,如圖所示:

我們在下圖紅框處找到了入口點。


「Hook」在實戰過程中Hook也是常用的查找入口點的功能。一些代碼搜索或者斷點并不能很有效地找到對應的入口,這種情況下就可以用Hook。比如說,對一些常見的加密和編碼算法、常用的轉換操作都可以進行Hook,比如Base64編碼、Cookie的賦值、JSON的序列化。常用Hook方式就是通過TemporMonkey來實現。具體實現過程本篇文章暫不詳述。

02調試分析

找到常見入口后,我們需要進行的就是整個流程的調試分析,這個步驟中,我們常用到一些格式化、斷點調試、反混淆的手法來輔助整個流程分析。「格式化」格式化過程很重要,能夠提高代碼的可讀性,一般情況下很多JavaScript代碼都是經過打包和壓縮的。多數情況下,我們可以使用Sources面板下JavaScript窗口左下角的格式化按鈕對代碼進行格式化。如下圖所示:

「斷點調試」代碼格式化之后,我們就需要進行正式調試,基本操作就是給想要調試的代碼添加斷點,同時在對應的面板觀察變量值。我們知道入口點需要三個參數,核心加密參數是token,那么我么應該著重關注token的生成邏輯,如下圖所示,

不斷回溯,找到我們的token生成邏輯。

這里的加密邏輯就是:▲ 將/api/movie放到一個列表中;▲ 在列表中添加當前時間戳,調用push方法,添加到列表中;▲ 將列表內容用逗號拼接;▲ 將拼接結果進行SHA1編碼;▲ 將編碼的結果和時間戳再次拼接;▲ 將拼接后的結果進行Base64編碼。這里結果用python模擬,將過程的值輸出如下圖:

我們已經獲取到加密字段,接下來能干的事情就不詳述。「反混淆」實戰過程中可能遇到各種各樣的混淆方式,比如控制流扁平化、數組移位等。對于這種我們可以嘗試AST技術來對代碼進行還原。比如下圖

這里while循環內部,通過一些判斷條件執行某些邏輯,這種邏輯我們無法直接判斷執行順序,對于這種類似的混淆技術,我們可以嘗試AST進行還原。

03模擬執行

經過一系列調試,我們已經了解其中的加密邏輯,接下來就是調用執行的過程了。常見的調用流程如下:● Python改寫或者模擬執行適用于整體邏輯不復雜,我們可以嘗試用Python來實現整個加密流程。● JavaScript模擬執行+API適用于Python不兼容部分JavaScript的情況,而Node.js天生就支持JavaScript,為了更加通用實現JavaScript的模擬調用,我們可以用express類模擬JavaScript,實現跨語言調用。● 瀏覽器模擬執行適用于調試分析結果不理想的情況,由于整個邏輯都是在瀏覽器中運行,我們可以利用Selenium、PlayWright來嘗試將一些JavaScript代碼,得到一些返回結果。

總 結

本篇文章,我們從實戰角度出發,對整個JavaScript逆向的流程進行了簡單介紹,通過三大步驟——尋找入口、調試分析、模擬執行來梳理JavaScript逆向過程中常用技巧,文中部分內容由于篇幅限制,僅提供思路,歡迎大家進行交流。

責任編輯:武曉燕 來源: ???FreeBuf.COM?
相關推薦

2023-09-12 15:02:33

2010-05-20 09:48:36

2020-05-25 22:08:23

網絡安全網絡安全攻防

2021-06-25 15:09:36

攻防演練

2009-08-20 16:45:32

2024-03-04 13:07:16

2015-12-25 16:31:54

開源攻防平臺DVNA

2025-02-06 15:16:19

2021-06-16 09:40:44

網絡安全物聯網代碼

2010-09-13 13:29:38

2013-04-24 09:51:34

2009-04-29 15:30:39

2016-02-23 10:36:35

2009-07-22 16:44:06

2012-04-20 13:56:16

2010-08-24 11:03:43

2009-01-07 14:31:09

2010-01-21 11:51:11

2024-08-01 16:06:12

2022-11-28 18:54:59

安全技術成熟度
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产不卡在线观看 | 日本理论片好看理论片 | 亚洲精品视频二区 | 国产日韩一区二区三免费高清 | 91极品视频| 久久久蜜臀国产一区二区 | 国产精品久久久久久吹潮 | 精品一区二区久久久久久久网站 | 7777在线视频 | 国产精品毛片一区二区三区 | 网站黄色在线免费观看 | 一区二区在线 | 日本欧美国产在线观看 | 亚洲色图50p | 黄在线 | 97精品国产一区二区三区 | 国产亚洲人成a在线v网站 | 四虎影院新地址 | 男女羞羞在线观看 | 日本精品视频 | 99精品视频一区二区三区 | 在线观看视频中文字幕 | 99在线免费观看视频 | 激情综合五月 | 亚洲免费在线视频 | 人人鲁人人莫人人爱精品 | 在线观看中文字幕 | 91久久国产综合久久 | 在线观看免费观看在线91 | 日本精品一区二区 | 亚洲精品视频在线看 | 国产精品视频久久久 | 日韩国产中文字幕 | 国产一区二区小视频 | 国产精品精品久久久 | 国产一区二 | 国产精品91久久久久久 | 国产欧美一区二区精品忘忧草 | 国产精品一区二区日韩 | 国产视频1区 | 久久中文字幕一区 |