欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

紅隊(duì)攻防之JS攻防

jf_73420541 ? 來源:易安聯(lián) ? 作者:易安聯(lián) ? 2024-05-27 10:16 ? 次閱讀

前言:

隨著當(dāng)前攻防水平的不斷提高,實(shí)戰(zhàn)攻防過程中,經(jīng)常能遇到前端的參數(shù)被各種各樣的方式加密的情況。毫無疑問,這種方式能夠防止很多腳本小子的腳步,但是很多網(wǎng)站就存在“金玉其外,敗絮其內(nèi)“的情況,將傳遞的參數(shù)加密了事,忽略很多系統(tǒng)本身存在的安全風(fēng)險(xiǎn)。本文以實(shí)戰(zhàn)角度出發(fā),介紹面對(duì)這種前端加密情況下的攻防技巧。

測(cè) 試 思 路

常見的JavaScript逆向相關(guān)的技巧,包括瀏覽器調(diào)試、Hook、AST、無限D(zhuǎn)ebugger的繞過以及模擬調(diào)用JavaScript等,但是在實(shí)際對(duì)抗過程中,如何將技巧形成一個(gè)行之有效的“套路“來應(yīng)對(duì)JavaScript逆向的流程。一般來說,在實(shí)戰(zhàn)過程中,JavaScript可以分為三大部分:尋找入口、調(diào)試分析和模擬執(zhí)行。

▌尋找入口:

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

▌?wù){(diào)試分析:

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

▌模擬執(zhí)行:

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

01

尋找入口

常見的尋找入口的操作很多,其中包括:查看請(qǐng)求、搜索參數(shù)、分析發(fā)起調(diào)用、打斷點(diǎn)、Hook等操作,這里來分別介紹一下:

「查看請(qǐng)求」

以一次訪問電影網(wǎng)站為例,可以看到首頁有很多數(shù)據(jù),這些數(shù)據(jù)肯定是逐個(gè)請(qǐng)求返回的,我們就要思考,究竟是哪一個(gè)請(qǐng)求返回的內(nèi)容呢?打開瀏覽器開發(fā)者工具-->打開網(wǎng)絡(luò)面板-->點(diǎn)擊搜索按鈕,比如我們這里就搜索唐伯虎點(diǎn)秋香,如下圖所示:

wKgaomS0oWCAckFNAAJvwwHc524674.png

此時(shí)可以看到對(duì)應(yīng)的搜索結(jié)果,點(diǎn)擊搜索到的結(jié)果,我們就可以定位到對(duì)應(yīng)的響應(yīng)結(jié)果的位置,如下圖所示:

wKgaomS0oWaANr9zAAPhXSFR7x8953.png

找到響應(yīng)之后,我們就可以順便找到是誰發(fā)起的請(qǐng)求了,如下圖所示:

wKgZomS0oW2AA_SBAAPxkybj1-8687.png

比如,這里我們想找到我們想要的數(shù)據(jù)所對(duì)應(yīng)的請(qǐng)求位置了。很明顯,請(qǐng)求方法為GET,參數(shù)是limit、offset、token。一般來說,可以通過這種方法來尋找最初的突破口,如果這個(gè)請(qǐng)求帶有加密參數(shù),就需要知道這個(gè)參數(shù)究竟是在哪里生成的。如果這個(gè)參數(shù)沒有加密,爬蟲選手可以直接開爬,就可以獲取該系統(tǒng)所有的電影數(shù)據(jù)。思考一下,如果電影數(shù)據(jù)是身份信息會(huì)怎么樣呢?

「搜索參數(shù)」

在上一步中,我們已經(jīng)找到了最初的突破口,明確了關(guān)鍵請(qǐng)求是如何發(fā)起的,帶有什么加密參數(shù),這里發(fā)現(xiàn)一個(gè)關(guān)鍵參數(shù)token,現(xiàn)在就是去尋找token前世今生的時(shí)候了。最簡(jiǎn)單的方法就是直接進(jìn)行全局搜索。一般來說,參數(shù)名就是一個(gè)普通的字符串,這里的參數(shù)名就叫做token,這里的某個(gè)JavaScript文件中肯定有這個(gè)字符串。這里有一個(gè)搜索技巧,點(diǎn)擊ctrl+shift+F,開啟全局搜索,如下圖所示:

wKgZomS0oZ2AK37fAAB2l0EgT7o375.png

這是一個(gè)資源搜索的入口,可以搜索我們下載下來的JavaScript文件的內(nèi)容,這里我們輸入token來進(jìn)行搜索。

wKgZomS0oaOAayPSAAFHgk5ZpAE180.png

這樣我們就找到一些關(guān)鍵點(diǎn)了,一共五個(gè)結(jié)果,結(jié)果不多,我們可以進(jìn)一步分析。

「調(diào)用分析」

搜索是一種查找入口的方式,這是從源碼層面進(jìn)行查找,我們也可以從發(fā)起調(diào)用邏輯的流程進(jìn)行分析。比如打開Network請(qǐng)求里面的Initiator查看當(dāng)前請(qǐng)求構(gòu)造的相關(guān)邏輯。

wKgaomS0oamAcFEfAAM2jsLpe6o148.png

點(diǎn)擊光標(biāo),會(huì)有完整的請(qǐng)求調(diào)用流程,我們點(diǎn)進(jìn)去就可以尋找到相關(guān)代碼邏輯。

wKgaomS0obuACK53AAMRz8u3GBY890.png

很明顯,紅框處是我們尋找到的入口點(diǎn)參數(shù),我們找到了入口點(diǎn)。

wKgZomS0odWAB9u5AAErzLxF1-w526.png

「斷點(diǎn)分析」

我們還可以通過一些端點(diǎn)進(jìn)行入口的查找,比如XHR斷點(diǎn),DOM斷點(diǎn)、事件斷點(diǎn)等。這里我們?cè)陂_發(fā)者工具Sources面板里添加設(shè)置,比如這里我們添加了XHR斷點(diǎn)和全局Load時(shí)間斷點(diǎn),如圖所示:

wKgZomS0pCyAbsY5AAGhFGBnWAU508.png

我們?cè)谙聢D紅框處找到了入口點(diǎn)。

wKgaomS0pDKAFJCCAAGJ21YFReo253.png

「Hook」

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

02

調(diào)試分析

找到常見入口后,我們需要進(jìn)行的就是整個(gè)流程的調(diào)試分析,這個(gè)步驟中,我們常用到一些格式化、斷點(diǎn)調(diào)試、反混淆的手法來輔助整個(gè)流程分析。

「格式化」

格式化過程很重要,能夠提高代碼的可讀性,一般情況下很多JavaScript代碼都是經(jīng)過打包和壓縮的。多數(shù)情況下,我們可以使用Sources面板下JavaScript窗口左下角的格式化按鈕對(duì)代碼進(jìn)行格式化。如下圖所示:

wKgaomS0pESAE8bWAAKrcF7VroU965.png

「斷點(diǎn)調(diào)試」

代碼格式化之后,我們就需要進(jìn)行正式調(diào)試,基本操作就是給想要調(diào)試的代碼添加斷點(diǎn),同時(shí)在對(duì)應(yīng)的面板觀察變量值。我們知道入口點(diǎn)需要三個(gè)參數(shù),核心加密參數(shù)是token,那么我么應(yīng)該著重關(guān)注token的生成邏輯,如下圖所示,

wKgaomS0pEyAMcKhAAPzaqn9Zzk430.png

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

wKgaomS0pFOAYnIJAABhUKZRxXs483.png

這里的加密邏輯就是:▲將/api/movie放到一個(gè)列表中;▲在列表中添加當(dāng)前時(shí)間戳,調(diào)用push方法,添加到列表中;▲將列表內(nèi)容用逗號(hào)拼接;▲將拼接結(jié)果進(jìn)行SHA1編碼;▲將編碼的結(jié)果和時(shí)間戳再次拼接;▲將拼接后的結(jié)果進(jìn)行Base64編碼。這里結(jié)果用python模擬,將過程的值輸出如下圖:

wKgaomS0pFmAYZSoAAAQ9_JbVto717.png

我們已經(jīng)獲取到加密字段,接下來能干的事情就不詳述。

「反混淆」

實(shí)戰(zhàn)過程中可能遇到各種各樣的混淆方式,比如控制流扁平化、數(shù)組移位等。對(duì)于這種我們可以嘗試AST技術(shù)來對(duì)代碼進(jìn)行還原。比如下圖

wKgaomS0pGCAU0eIAADSK4agsqs974.png

這里while循環(huán)內(nèi)部,通過一些判斷條件執(zhí)行某些邏輯,這種邏輯我們無法直接判斷執(zhí)行順序,對(duì)于這種類似的混淆技術(shù),我們可以嘗試AST進(jìn)行還原。

03

模擬執(zhí)行

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

總 結(jié)

本篇文章,我們從實(shí)戰(zhàn)角度出發(fā),對(duì)整個(gè)JavaScript逆向的流程進(jìn)行了簡(jiǎn)單介紹,通過三大步驟——尋找入口、調(diào)試分析、模擬執(zhí)行來梳理JavaScript逆向過程中常用技巧,文中部分內(nèi)容由于篇幅限制,不夠詳實(shí),僅提供思路,詳細(xì)內(nèi)容歡迎加《權(quán)說安全》技術(shù)交流群進(jìn)行交流。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MCU是如何被破解的?(附MCU攻防技巧)

    這篇文章是俄國(guó)人Sergei P.Skorobogatov就讀英吉利劍橋大學(xué)博士論文,講解了各種MCU的攻防技術(shù),堪稱一部小百科全書。對(duì)于志在研究MCU防護(hù)的筒子,能給你很多參考思路:但對(duì)于想當(dāng)黑客的人,我們對(duì)后果概不負(fù)責(zé)。
    發(fā)表于 09-13 10:49 ?5807次閱讀

    針對(duì)工控系統(tǒng)上位機(jī)操作系統(tǒng)攻防案例有哪些?

    針對(duì)工控系統(tǒng)上位機(jī)操作系統(tǒng)攻防案例有哪些?分別有哪些步驟?
    發(fā)表于 07-15 06:57

    你知道在工控安全項(xiàng)目中進(jìn)行攻防演示的案例有哪些嗎

    你知道在工控安全項(xiàng)目中進(jìn)行攻防演示的案例有哪些嗎?
    發(fā)表于 09-29 06:46

    講講Hook技術(shù)的攻防對(duì)抗思路

    1、論Hook技術(shù)的攻防對(duì)抗  首先,簡(jiǎn)單認(rèn)識(shí)下Hook 技術(shù)?! ook技術(shù)是一門廣泛用于計(jì)算機(jī)攻防對(duì)抗的技術(shù)。它可以監(jiān)視系統(tǒng)或者進(jìn)程中的各種事件消息,截獲發(fā)往目標(biāo)窗口的消息進(jìn)行處理?! ∥覀?/div>
    發(fā)表于 09-28 11:12

    黑客任務(wù)實(shí)戰(zhàn)服務(wù)器攻防

    黑客任務(wù)實(shí)戰(zhàn)服務(wù)器攻防篇網(wǎng)站服務(wù)器的黑客攻防一直是網(wǎng)絡(luò)安全中最重要的一部分。本書作者在經(jīng)過數(shù)月的努力之后,終于將網(wǎng)站服務(wù)器的黑客攻防以深入淺出、簡(jiǎn)單易懂的方
    發(fā)表于 10-22 11:03 ?0次下載
    黑客任務(wù)實(shí)戰(zhàn)服務(wù)器<b class='flag-5'>攻防</b>篇

    基于蜜網(wǎng)的網(wǎng)絡(luò)攻防平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

    本文首先介紹了以往網(wǎng)絡(luò)攻防平臺(tái)的不足,然后采用最新的第三代蜜網(wǎng)技術(shù),設(shè)計(jì)了可滿足不同攻擊方法和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)攻防平臺(tái)。該平臺(tái)在實(shí)際使用中達(dá)到了預(yù)定的設(shè)計(jì)
    發(fā)表于 06-06 15:20 ?13次下載

    基于HLA的導(dǎo)彈攻防仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    基于HLA 建立仿真應(yīng)用系統(tǒng)是提高作戰(zhàn)仿真活動(dòng)效率的有效途徑。分析了導(dǎo)彈攻防仿真系統(tǒng)的功能,并依據(jù)HLA的基本概念、方法和原理對(duì)分布式導(dǎo)彈攻防仿真系統(tǒng)進(jìn)行系統(tǒng)設(shè)計(jì),建
    發(fā)表于 09-03 09:53 ?26次下載

    基于HLA的導(dǎo)彈攻防仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    基于HLA 建立仿真應(yīng)用系統(tǒng)是提高作戰(zhàn)仿真活動(dòng)效率的有效途徑。分析了導(dǎo)彈攻防仿真系統(tǒng)的功能,并依據(jù)HLA的基本概念、方法和原理對(duì)分布式導(dǎo)彈攻防仿真系統(tǒng)進(jìn)行系統(tǒng)設(shè)計(jì),建
    發(fā)表于 12-12 13:59 ?17次下載

    黑客攻防入門與進(jìn)階ddd

    黑客攻防入門與進(jìn)階ddd黑客攻防入門與進(jìn)階ddd
    發(fā)表于 02-23 15:45 ?9次下載

    基于FlipIt模型的非對(duì)稱信息條件下攻防博弈模型

    針對(duì)目前缺少對(duì)高級(jí)持續(xù)威脅(APT)攻擊理論建模分析的問題,提出了一種基于Fliplt模型的非對(duì)稱信息條件下的攻防博弈模型。首先,將網(wǎng)絡(luò)系統(tǒng)中的目標(biāo)主機(jī)等資產(chǎn)抽象為目標(biāo)資源節(jié)點(diǎn),將攻防場(chǎng)景描述為攻防
    發(fā)表于 11-28 15:06 ?0次下載
    基于FlipIt模型的非對(duì)稱信息條件下<b class='flag-5'>攻防</b>博弈模型

    基于攻防信號(hào)博弈模型的防御策略選取方法

    當(dāng)前基于博弈理論的防御策略選取方法大多采用完全信息或靜態(tài)博弈模型,為更加符合網(wǎng)絡(luò)攻防實(shí)際,從動(dòng)態(tài)對(duì)抗和有限信息的視角對(duì)攻防行為進(jìn)行研究。構(gòu)建攻防信號(hào)博弈模型,對(duì)策略量化計(jì)算方法進(jìn)行改進(jìn),并提出精煉貝
    發(fā)表于 02-11 10:44 ?0次下載

    AI技術(shù)在網(wǎng)絡(luò)安全攻防中可發(fā)揮重要作用

    在網(wǎng)絡(luò)安全的攻防演練中,攻擊方叫做藍(lán)隊(duì),防守方叫做隊(duì),藍(lán)隊(duì)的水平往往決定了這場(chǎng)攻防演練的質(zhì)量。
    發(fā)表于 08-25 10:35 ?1102次閱讀

    用于攻防隊(duì)/滲透痕跡隱藏的工具

    注意:此工具是開源的,僅用于協(xié)助隊(duì)的操作,作者對(duì)任何禁止使用此工具所造成的后果概不負(fù)責(zé)。僅在您有權(quán)測(cè)試的機(jī)器上使用它。
    的頭像 發(fā)表于 05-10 09:27 ?601次閱讀
    用于<b class='flag-5'>攻防</b>中<b class='flag-5'>紅</b><b class='flag-5'>隊(duì)</b>/滲透痕跡隱藏的工具

    隊(duì)攻防快速打點(diǎn)

    導(dǎo)讀: 在整個(gè)隊(duì)攻防體系中,打點(diǎn)是最基礎(chǔ)也是最重要的一步。它對(duì)于隊(duì)攻防比賽中取得快速和高效
    的頭像 發(fā)表于 05-27 10:20 ?300次閱讀
    <b class='flag-5'>紅</b><b class='flag-5'>隊(duì)</b><b class='flag-5'>攻防</b><b class='flag-5'>之</b>快速打點(diǎn)

    華為安全大咖談 | 論道攻防第1期:攻防演練之三十六計(jì)——開篇

    本期講解嘉賓 凡戰(zhàn)者,以正合,以奇勝 國(guó)家級(jí)網(wǎng)絡(luò)攻防演練已經(jīng)進(jìn)行了七年,攻防雙方的對(duì)抗日益激烈,技戰(zhàn)術(shù)水平也得到了極大的提升。 除了“正”面常規(guī)技戰(zhàn)術(shù)對(duì)抗之外,攻擊隊(duì)還采用了各種新穎的變形繞過攻擊
    的頭像 發(fā)表于 08-04 20:20 ?944次閱讀
    華為安全大咖談 | 論道<b class='flag-5'>攻防</b>第1期:<b class='flag-5'>攻防</b>演練之三十六計(jì)——開篇