これはシーエー・アドバンス Advent Calendar 2021 25日目の記事です。
初めまして、シーエー・アドバンス(CAAD)技術統括本部セキュリティチームの @miya_zato です。
今日ってクリスマスっていう日らしいですね、「12/25、空いてますか?(暗黒微笑)」って連絡が最近来てました、憎しみの連鎖は僕が今日断ち切ります。
普段の業務ではBurp Suiteというローカルプロキシツールを利用して脆弱性診断を行っています。
今日はこの相棒に、クリスマスを少し祝って貰おうかと思います。
同じチームの @miya_ken さんの記事を参考に、拡張機能を簡単に作成してみます。
参考記事
https://qiita.com/miya_ken/items/f88a051e4c6cfd2a67de
さっそく祝って貰おう!
今回はpythonでクリスマス用の拡張機能を用意しました。
また、環境の準備や拡張機能の導入は参考記事に記載されているので今回は省略します。
拡張機能を読み込んだ直後にMerryChristmas
拡張機能を読み込んだ時に最初に表示されるのがここになります。
普段は何も表示されていないか、問題なく追加できた事を伝える文章が迎えてくれますが、今日はクリスマスです。
挨拶のようなMerryChristmasです。
from burp import IBurpExtender
from java.io import PrintWriter
class BurpExtender(IBurpExtender,ITab,IContextMenuFactory):
def registerExtenderCallbacks(self, callbacks):
stdout = PrintWriter(callbacks.getStdout(), True)
# ここでoutput出力時にメリークリスマス
stdout.println("MerryChristmas")
例外が発生した時にMerryChristmas
拡張機能を読み込む際にエラーが発生した場合は、Errorsのタブでエラーの詳細が確認出来ます。
ここでもクリスマスが出来ます。
先ほどの挨拶のような感じとは違い、ちょっと忙しさを感じますね
from java.lang import RuntimeException
class BurpExtender(IBurpExtender,ITab,IContextMenuFactory):
def registerExtenderCallbacks(self, callbacks):
# 例外を投げる時にメリークリスマス
raise RuntimeException("MerryChristmas")
今回はpythonのraiseを利用して例外を発生させています
Event logからMerryChristmas
拡張機能の読み込みが終わった後のEvent logからもMerryChristmasしてもらえます
二度見しちゃうタイプのMerryChristmasですね、通りすがりのおじさんにボソッ言われて、「えっ...あのっ...!」って振り返る雰囲気を感じ取ってください
from burp import IBurpExtender
class BurpExtender(IBurpExtender):
def registerExtenderCallbacks(self, callbacks):
# 指定したメッセージをBurp Suite警告タブに表示する
callbacks.issueAlert("MerryChristmas")
タブからMerryChristmas
拡張機能の読み込みが終わった後は様々な場所でクリスマスが出来ます。
一見すると気づかないような所から祝って貰いました。
あっ...MerryChristmas...というような控えめなMerryChristmasです。
from burp import IBurpExtender
from burp import ITab
from javax.swing import JPanel
from javax.swing import JMenuItem
class BurpExtender(IBurpExtender,ITab):
TAB = "MerryChristmas"
# コンポーネントの用意
def __init__(self):
self.TAB_panel = JPanel()
# タブの名前を付ける
def getTabCaption(self):
return self.TAB
# タブがBrupに追加された時に使用するコンポーネントを取得する
def getUiComponent(self):
return self.TAB_panel
def registerExtenderCallbacks(self, callbacks):
# Burp Suiteのウィンドウにタブを追加する
callbacks.addSuiteTab(self)
タブの名前自体は変数にMerryChristmasを入れておくだけですが、
タブが追加された時にBurpが利用するコンポーネントの用意から、タブの名前の付け方から調べながらやっていてとても詰まってしまったので
日頃の勉強不足を痛感していました...(参考記事に助けてもらいました)
まとめ
今回は4か所からクリスマスとして祝って貰えました、今回は拡張機能を読み込んでメッセージを表示させたりUIを追加する程度だったので、来年にはもう少し実りのある記事をかけるように頑張ろうと思いました。
それではみなさん、MerryChristmas!!!!!