<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    萬能網站密碼爆破測試工具:BurpCrypto

    VSole2022-11-28 09:25:17

    BurpCrypto是一款支持多種加密算法、或直接執行瀏覽器JS代碼的BurpSuit插件。

    一、編譯

    mvn package
    

    二、為什么解決了痛點

    目前越來越多的網站系統在登錄接口、數據請求接口中加入各式各樣的加密算法,甚至有些網站在每次請求前都動態請求加密密鑰等措施,對接口滲透工作造成較大障礙。依賴于BurpSuite中的那些編碼方式、Hash算法已經遠遠不夠,通過BurpCrypto內置的RSA、AES、DES模塊可應對較為簡單的前端加密接口,較為復雜的加密算法,可使用ExecJS模塊直接手動編寫處理代碼。同時為了降低ExecJS模塊的上手難度,未來將推出遠程JS模塊倉庫,支持遠程加載已經測試通過的JS功能代碼,方便直接調用。

    三、未來開發計劃

    四、安裝

    BurpCrypto可從其官方Github頁面進行下載已編譯好的版本,或下載源代碼本地編譯,然后在BurpSuite的擴展列表中添加插件,等待Output中輸出BurpCrypto loaded successfully!則表示插件加載成功。

    五、基礎加密模塊使用

    基礎編碼方式,由于不同網站開發人員的使用習慣,加密時所使用的密鑰、加密后的密文會使用不同的編碼方式。目前插件內密鑰輸入所支持的編碼方式有如下三種

    • Base64
    • HEX
    • UTF8String

    密文輸出所支持的編碼方式有如下兩種

    • Base64
    • HEX

    ExecJS模塊的輸出內容由JS代碼決定。

    六、編碼方式的辨別方法

    為了照顧到對編碼方式不了解的朋友,此處會簡單講解這些編碼方式的辨別方法,已經了解的朋友可直接跳過參閱下一章節的具體使用講解.

    Base64編碼與HEX編碼常常用于編碼二進制數據,UTF8String則是我們操作系統、網頁中最常見的字符串的編碼方式,下方是Base64、HEX、UTF8String編碼的示例:

    對字符串"test_z"進行Base64、HEX編碼的結果
    Base64:dGVzdF96
    HEX:746573745f7a
    UTF8String:test_z
    

    AES和DES加密都屬于對稱加密算法,既加解密使用同一套密鑰的加密算法,同時也是目前前端加密中較為常見的加密算法,目前插件支持的AES加密算法有:

    • AES/CBC/PKCS5Padding
    • AES/CBC/NoPadding
    • AES/CBC/ZeroPadding
    • AES/ECB/PKCS5Padding
    • AES/ECB/NoPadding
    • AES/ECB/ZeroPadding
    • AES/OFB/PKCS5Padding
    • AES/OFB/NoPadding
    • AES/OFB/ZeroPadding
    • AES/CFB/PKCS5Padding
    • AES/CFB/NoPadding
    • AES/CFB/ZeroPadding
    • AES/CTR/PKCS5Padding
    • AES/CTR/NoPadding
    • AES/CTR/ZeroPadding

    DES加密算法有:

    • DES/CBC/PKCS5Padding
    • DES/CBC/ZeroPadding
    • DES/CBC/NoPadding
    • DES/ECB/PKCS5Padding
    • DES/ECB/ZeroPadding
    • DES/ECB/NoPadding
    • DES/OFB/PKCS5Padding
    • DES/OFB/ZeroPadding
    • DES/OFB/NoPadding
    • DES/CFB/PKCS5Padding
    • DES/CFB/ZeroPadding
    • DES/CFB/NoPadding
    • DESede/CBC/PKCS5Padding
    • DESede/CBC/ZeroPadding
    • DESede/CBC/NoPadding
    • DESede/ECB/PKCS5Padding
    • DESede/ECB/ZeroPadding
    • DESede/ECB/NoPadding
    • DESede/OFB/PKCS5Padding
    • DESede/OFB/ZeroPadding
    • DESede/OFB/NoPadding
    • DESede/CFB/PKCS5Padding
    • DESede/CFB/ZeroPadding
    • DESede/CFB/NoPadding
    • strEnc
    在前端JS中常常會使用PKCS7Padding,在本模塊中可使用PKCS5Padding代替,不影響使用。
    DES加密中的strEnc算法是取自作者Guapo的一種3DES的模塊,在少數系統中被使用,此處為了方便使用也引入了進來。

    非對稱加密算法

    RSA算法則屬于非對稱加密算法,密鑰分為公鑰與私鑰,暫時僅支持公鑰加密,RSA加密支持兩種公鑰格式的輸入,分別為

    • X509
    • ModulusAndExponent

    X509密鑰格式表現為一串由Base64編碼后的字符串,常常以MIG開頭。ModulusAndExponent(模數,指數)則表現為兩個HEX編碼的參數,Modulus是模數,常常較長,Exponent是指數,常常只有6位,以下為密鑰示例:

    X509: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCC0hrRIjb3noDWNtbDpANbjt5Iwu2NFeDwU16Ec87ToqeoIm2KI+cOs81JP9aTDk/jkAlU97mN8wZkEMDr5utAZtMVht7GLX33Wx9XjqxUsDfsGkqNL8dXJklWDu9Zh80Ui2Ug+340d5dZtKtd+nv09QZqGjdnSp9PTfFDBY133QIDAQAB
    ModulusAndExponent:
      Modulus: A1E4D93618B8B240530853E87738403851E15BBB77421F9B2377FB0B4F1C6FC235EAEC92EA25BB76AC221DCE90173A2E232FE1511909C76B15251D4059B288E709C1EF86BCF692757AAD736882DD1E98BEDFED9311A3C22C40657C9A52880BDC4B9E539041D44D52CB26AD13AB086F7DC294D144D6633A62EF91CA1775EB9A09
      Exponent: 010001
    

    七、使用

    使用方式也較為簡單,首先判斷相關接口的加密算法,填入相應算法的加密密鑰,點擊Add processor,在彈出的加密配置命名輸入對話框中,給予一個易于分辨的名稱,提示Apply processor success!即表示添加成功。

    此處以AES的CBC模式,填充Pkcs7,Key:Y3MxMTg1MzUyOS4x,IV:9875643210132456,Base64編碼的方式做為示例。

    若要刪除processor則要點擊Remove processor,輸入剛剛編寫的配置名,即可刪除。

    關于前端加密的分析過程可參閱jsEncrypter開發者c0ny1的文章:https://gv7.me/articles/2018/fast-locate-the-front-end-encryption-method/

    八、補充閱讀

    對單加密參數的登錄接口進行密碼爆破的一種方法,ExecJS模塊使用由于軟件開發的復雜性,諸如多層嵌套加密、引入時間變量、動態密鑰、魔改加密算法、新算法的涌現,插件注定永遠無法做到對所有加密算法的百分百覆蓋,所以提供了ExecJS模塊,為動手能力較強的使用者提供一條新途徑。

    因JS新特性的快速迭代,插件中內置了Rhino、HtmlUnit、Jre內置三種JS執行引擎,各種執行引擎的優劣勢可參閱BurpCrypto未來開發計劃中對于各個引擎的特性介紹。

    九、編寫簡單的JS腳本

    使用ExecJS模塊前需要先切換至插件的ExecJS選項卡,像常見編程語言一樣,你需要編寫一個入口函數。不過不同于其他編程語言的入口函數,插件將會把待處理/加密的內容傳遞給入口函數的第一個參數,而你編寫的入口函數則需要在處理結束后返回處理結果。

    為了方便使用,插件內置了一個快速生成函數體的菜單,在代碼編輯器中的右鍵菜單中點擊Append Simple Function,即可生成一個空函數calc,并自動在下面的入口函數名填寫入口函數為calc

    我們可以對該函數進行一些簡單的修改,下面是一個示例腳本,該腳本將會把輸入的內容倒轉后再返回。

    function calc(pass) {
         return pass.split("").reverse().join("");
    }
    

    編輯完成后,點擊Add processor即可添加成功。

    十、引用內置JS庫

    目前內置的JS庫只有MD5與Base64,后續版本將會上線在線JS倉庫,操作步驟將會發生變動。

    為避免常見庫的頻繁整理導入的工作量,插件目前內置了MD5和Base64庫,使用方法為在編輯器的右鍵菜單中的Include Snippet選中需要的JS庫,即可引入。

    十一、在功能區中調用插件

    加密,通過在上述幾個模塊中成功添加processor后,即可通過以下兩個渠道進行使用。

    QuickCrypto(全局調用)

    BurpCrypto幾乎可以在BurpSuite的任何位置進行調用,調用方法也較為簡單,以下動圖為示例:

    十二、Intruder(爆破模塊)

    在爆破模塊中引用:

    十三、解密(查詢原文)

    由于部分算法產生的結果具有不可逆性(哈希算法、自定義的JS代碼等),所以通過本插件生成的所有結果均被保存到本地的K/V數據庫中,可以通過插件中的Get PlainText功能獲取原始明文。

    使用方法為完整選中密文內容,右單擊后找到BurpCrypto菜單中的Get PlainText功能,

    此處演示的是RSA公鑰加密后通過密文查詢原始明文。

    十四、結尾

    以上為本插件的使用說明,后續將會將會陸續加入國密算法、ExecJS遠程模塊,模塊互調等小功能更新與Bug修復,如果各位師傅有更多的建議也歡迎提PR或者Issure,謝謝!

    base64
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    適用場景:使用burp作為代理,經過burp的數據包會自動進行base64編碼。
    多次測試后發現確實都相等,確定就是標準的Base64編碼。發現與之前的111極為相似。
    菜刀、冰蝎、蟻劍、哥斯拉的流量特征
    [VNCTF2022]gocalc0復現
    2022-05-07 16:02:38
    看雪論壇作者ID:H3h3QAQ
    Satacom下載程序,也稱為LegionLoader,是2019年出現的一個著名的惡意軟件家族。該惡意軟件利用查詢DNS服務器的技術獲取base64編碼的URL,以便接收當前由Satacom傳播的另一惡意軟件家族的下一階段。
    在滲透測試過程中,我們經常會遇到一些特殊的編碼,如地址欄的URL編碼,如抓包過程中遇到的Unicode編碼、base64編碼等。這款工具界面美觀,使用穩定,相當好用。之前使用的小葵轉碼工具,一旦輸錯就會崩潰,相當淡疼。下面看下它的樣子:可以看到它支持多種編碼轉換,前幾個選項應用場景比較少,從base64往下的選項就比較常用了。
    Decodify是一款功能強大的字符串安全處理工具,在該工具的幫助下,廣大研究人員能夠輕松地以遞歸的方式檢測和解碼編碼字符串。假設現在有一個字符串“s0md3v”,然后使用Base64對其編碼,結果如下:czBtZDN2. 解碼凱撒密碼我們可以使用--rot選項來提供偏移量,或者使用--rot all命令來告訴Decodify使用1-26偏移量來解碼目標字符串。
    MTCTF-2022 部分WriteUp
    2022-11-23 09:35:37
    MTCTF 本次比賽主力輸出選手Article&Messa&Oolongcode,累計解題3Web,2Pwn,1Re,1CryptoWeb★easypickle題目給出源碼:。import base64import picklefrom flask import Flask, sessionimport osimport random. @app.route('/')def hello_world(): if not session.get: session['user'] = ''.join return 'Hello {}!\x93作用同c,但是將從stack中出棧兩元素分別導入的模塊名和屬性名:此外對于藍帽杯WP還存在一個小問題,原題采用_loads函數加載pickle數據但本題是loads,在opcodes處理上會有些微不通具體來說就是用loads加載時會報錯誤如下:對著把傳入參數換成元組就行,最終的payload如下
    前言前幾天對自己學校進行的一次滲透測試,由于深信服過于變態,而且攔截會直接封ip,整個過程有點曲折期間進行了后綴名繞過,jspx命名空間繞過、獲取網站根目錄、base64五層編碼寫入shell等操作0x01 獲取網站接口主界面:上傳點:由于該應用是內嵌企業微信的套皮Html,所以我們首先用Burp Suite抓包獲取接口和cookie任意文件上傳:文件名強制命名為code+學號,后綴為最后一次點號出現之后的字母0x02 后綴名繞過代碼不限制后綴名,但是waf限制呀!
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类