<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>

    【技術分享】Burpsuite插件改造計劃

    VSole2021-09-13 18:00:36

    前言

    之前逛GitHub的時候看到一個老同事寫的一個插件,于是就多喵了兩眼,然后發現其實這個插件還是很實用的!于是就安裝使用了!簡而言之該插件就是利用正則來從數據包中匹配,如果匹配到了規則則高亮顯示!該插件也支持規則導入導出,綜合來講在實戰中就非常有用的!比如去年大殺四方的shiro反序列化,它的數據包的特征就非常明顯即:響應數據包字段中rememberMe=deleteMe,我們只需要寫個正則,然后就可以自動化對數據包做反序列化無損化檢測了!該插件的官方GitHub地址:https://github.com/gh0stkey/HaE,使用效果如下圖所示

    但是我在使用的過程中遇到一個很嚴重的問題:如果規則比較多的話,顏色就會重疊,而且我們也不能直觀地看到到底匹配的什么規則!于是我就修改了一下源碼將其改造成了我想要的樣子!下面則是記錄了我是如何從burpsuite的hello world開始到改造插件的過程!本文使用的所有代碼址:https://github.com/ba1ma0/burpsuite_extension

    入門

    老規矩我們先從helloworld走起,官方已經給出了教程:https://portswigger.net/burp/extender/writing-your-first-burp-suite-extension

    官方的教程我總結一下可以分為三步:

    從burpsuite中導出api文件。創建Java項目。導出Java代碼的jar包安裝運行。
    

    下面就針對這三點我我介紹一下以便讀者可以跟著這個自己寫出helloworld,然后再改造插件,讓其成為我們想要的樣子。

    第一步從burpsuite中導出API文件

    第一步打開burpsuite,從Extender->APIS->SaveInterface到一個本地的文件件中

    第二步創建Java項目

    創建Java項目的時候注意以下兩點:

    創建一個burp文件夾用于存放上一步導出的API文件。在Burp文件夾中創建名為BurpExtender.java文件
    

    創建之后我們在BurpExtender.java中寫幾句簡單的代碼即可,如下圖所示

    第三步導出jar包運行

    代碼寫完之后,我們需要將我們寫的Java導出為jar包,這樣方便我們在burpsuite上安裝運行.接下來我用的是IntelliJ IDEA Community版本作為演示.首先第一步打開File->Project Structure->Project Settings->Artifacts->JAR->From modules with dependencies...,如下圖所示

    第二步選擇Module為burp,并且Main class地方為空即可

    第三步首先Build->Build project

    接著Build->Build Artifacts…->burp:jar->Build輸出插件的jar包如下圖所示

    最后安裝并運行burpsuite插件運行成功,至此我們的入門階段完成了!接下來就開始進階部分:如何改造別人的插件讓其成為我們想要的樣子!

    進階

    首先我們在腦海中要有一個概念,我們想要的效果是將顏色和對應的正則描述name全部在burpsuite中顯現出來!而且此時正則和顏色是一一對應的,也就說我們如果能搞清楚顏色color生成邏輯,大概率也是能夠按照相同規律生成對應的正則描述name,并且將其顯示出來的!所以第一步我們就先在代碼中全局搜索一下color如下圖所示,還記得入門部分我們提到的BurpExtender.java嗎?該文件是插件的入口文件,可以將功能類同于main函數!我們要搞懂color的生成邏輯,最開始的要從這個入口文件中查起!

    進入該入口文件之后,我發現color第一被使用出現在114行,被函messageInfo.setHighlight(color) 直接處理

    那我們就直接跟進該函數進去看看,而進去之后發現了一個意外之喜.為什么這么說呢?文章前面說過,我們需要將顏色和正則描述全部顯示出來,而burpsuite展示界面唯一一個讓用戶修改的列是comment,我們在IHttpRequestResponse.java直接看到了官方已經將修改comment的接口setComment(String comment)定義好了,那么我們只需要調用即可!

    那接下來我們就只需要了解color的生成以及調用邏輯,然后按照相同的邏輯同時生成對應的name即可,最后再調用setComment(String comment)就能實現我們想要的結果!接下來我捋了一下所有跟color有關的變量并且最終定位到了最原始的變量obj如下圖所示

    變量obj又誕生于ec.matchRegex中,那我們繼續跟進進入ExtractContent.java,進入之后我們發現這里就是最原始的color產生的地方,且color被存放在一個map中,obj其實就是存放color的map,所以要想要想實現color和name一一對應地展示出來,只要在此處將name和color對應關系一起保存在map中返回即可,原作者這里其實是沒有將這個name一起返回的,我們在這里添加幾行代碼將其返回即可如下圖所示

    了解了obj的產生過程,接下來我們看一下他是怎么被調用的,處理obj的是da.highlight,所以直接跟進去看一下實現邏輯!進去之后發現他的實現邏輯其實很簡單,就是從obj中取出colo!color和name其實是一一對應的,所以我就按照相同的邏輯,寫了跟原作者一模一樣的函數將color和name按照name:color 的形式一起返回來如下所示

    colorList和commentList是在相同的時間和相同的地方一起產生的!那我們按照相同的順序從他們中取出和color和name此時兩個變量也肯定是一一對應的!取出兩個變量之后我們再調用burpsuite官方提供的修改color和comment的兩個接口就能實現我們想要的結果!

    一切修改完之后按照上面導出jar的流程直接導出jar運行,最終實現我們想要的結果

    后言

    通過這次修改代碼,我發現良好的代碼規范真的很重要,尤其是這種協同的開源項目!原作者的代碼非常規范,所以當我我在調試,追蹤的時候就很舒服!本文作者能力有限,文章若有紕漏請讀者不吝賜教!


    burpsuite
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    AuthMatrix 是一個Burp Suite擴展,用于檢測權限授權問題,設置好session就能進行自動化測試。相似功能的插件還有:BurpSuite Authz。Authz會先訪問一遍接口抓包,然后“Send request(s) to Authz”,設置低權限的cookie,“Run”就會使用低權限的cookie去請求,結果會匹配給出相似度百分比,可以查看每個請求的詳細,半自動測試。
    備份輸入密碼:a把新備份證書導入burp 就可以了,這個時候輸入密碼a就可以成功導入客戶端證書了注意事項:如果在user options 配置了證書,記得不要勾選project options 的Client SSL Certificates 的override user options此時就可以訪問之前400的網頁了,此時不再是400了。
    0x01 工具介紹最近寫了一個BurpSuite Extensions用來標記請求包中的一些敏感信息、JS接口和一些特殊字段,防止我們疏忽了一些數據包,我將它命名為“Unexpected information”,使用它可能會有意外的收獲信息。
    下載地址:鏈接:https://pan.baidu.com/s/1YYczvGvRaeBGzGijrtWXnw 提取碼:okj2
    適用場景:使用burp作為代理,經過burp的數據包會自動進行base64編碼。
    某日, 我的同學突然 @crane 問我有沒有能檢測 burp 的方法. 突然想起來之前就看見過別人的 burp 被攔截, 但是當時測試下來由于我的 burp 不會被攔截, 所以就沒有太在意. 現在回想起來有點在意為什么會出現這種檢測上的選擇性, 于是剛好學習一下相關方法了解原因。
    base64md5sha1sha254sha384sha512RSA2、編寫phantomJS運行腳本jsEncrypter/js/jsEncrypter_base.js為插件phantomJS腳本模板。我們只需要將實現加密算法的js文件引入模板腳本,并在模板腳本的js_encrypt函數體中完成對加密函數的調用。/* 1.在這引入實現加密所有js文件,注意引入順序和網頁一致 */
    而安全練兵場是由理論知識到實戰過渡的一道大門,安全練兵場星球鼓勵大家從實戰中成長,提供優質的靶場系列,模擬由外網滲透到內網攻防的真實環境。此外,同步更新最新的技術文檔,攻防技巧等也是對成長的保駕護航。公眾號后臺回復:“MS08067安全練兵場身份驗證”獲取完整PDF注:征集優秀的靶場Writeup,一經采納可免費加入星球。
    而安全練兵場是由理論知識到實戰過渡的一道大門,安全練兵場星球鼓勵大家從實戰中成長,提供優質的靶場系列,模擬由外網滲透到內網攻防的真實環境。此外,同步更新最新的技術文檔,攻防技巧等也是對成長的保駕護航。
    滲透測試用到Burp時候很多,整理了一些tips供測試時候更得心應手~光標錯位和中文顯示新版一打開容易光標錯位,默認情況下使用字體是Courier New,顯示不了中文。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类