
この拡張機能は、Burp Suite Enterprise Edition 向けで、セッション処理ルールを利用して、送信リクエストに TOTP トークンを提供します。
============================
Burp Suite Enterprise Edition 向け
なお、拡張機能はBurpのサードパーティユーザーによって作成されており、PortSwiggerはその品質や特定の目的に対する有用性について一切保証しません。
Extensions > Installed > Add に拡張機能をロードしますSettings > Search > Sessions に移動しますSession handling rules の下で、 に移動し、利用可能なドロップダウンリストから を選択して をクリックしますAdd > Rule actions > Add > Invoke a Burp extensionTOTP AuthenticateOKScope タブに移動し、Tools scope > Scanner チェックボックスがオンになっていることを確認しますOK をクリックしますExtensions > Installed に移動して拡張機能をリロードします(TOTP Authenticate の "Loaded" チェックボックスをオフにして、再度クリックします)Session handling rules > Cog button > Save settings に移動して、セッションハンドリングルールをエクスポートします
/^^secretKey:BASE32,ruleType:TYPE,parameterName:NAME_OF_PARAMETER_VALUE_OR_BASE64_ENCODED_REGEX^^/
/^^ ルールの開始を示す区切り文字secretKey: BASE32 でエンコードされた OTP シードruleType: ルールを適用する場所を表すparameterName:
ruleType が BODY_REGEX の場合、更新場所を定義する BASE64 エンコードされた正規表現ですruleType が HEADER、URL、COOKIE、BODY_PARAM の場合、追加または更新する key:value ペアのリテラル名です^^/ ルールの終了を示す区切り文字HEADERURLCOOKIEBODY_PARAMBODY_REGEX次の例では、parameterName として正規表現 .*\"AdditionalAuthData\":\"(\d*)\".* を指定し、一致式を識別して (\d*) を生成された OTP ローリングコードに置き換えます
/^^secretKey:EQZWG4RTORIDIJBE,ruleType:BODY_REGEX,parameterName:LipcIkFkZGl0aW9uYWxBdXRoRGF0YVwiOlwiKFxkKilcIi4q^^/
次の例では、TEST という名前のヘッダーを、生成された OTP ローリングコードの値で追加または置き換えます
/^^secretKey:EQZWG4RTORIDIJBE,ruleType:HEADER,parameterName:TEST^^/
{
"project_options":{
"sessions":{
"session_handling_rules":{
"rules":[
{
"actions":[
{
"action_name":"TOTP Authenticate",
"enabled":true,
"type":"invoke_extension"
}
],
"description":"My OTP rule: /^^secretKey:EQZWG4RTORIDIJBE,ruleType:HEADER,parameterName:TEST^^/",
"enabled":true,
"exclude_from_scope":[],
"include_in_scope":[],
"named_params":[],
"restrict_scope_to_named_params":false,
"tools_scope":[
"Scanner"
],
"url_scope":"all",
"url_scope_advanced_mode":false
}
]
}
}
}
}
Burp Suite Enterprise Edition で使用する前に、Burp Suite Professional/Community でこの拡張機能をテストすることをお勧めします。
Enterprise でこの拡張機能をテストするには、Burp を経由するアップストリームプロキシを設定して、トークンが適切に追加されていることを確認できます。
次の設定を使用する場合は、Burp Suite Pro/Community のインスタンスが実行中であり、ローカルエージェントを使用していることを確認してください。
{
"project_options":{
"connections":{
"upstream_proxy":{
"servers":[
{
"auth_type":"none",
"destination_host":"*",
"proxy_host":"127.0.0.1",
"proxy_port":8080,
"enabled":true
}
],
"use_user_options":false
}
}
}
}
gradle fatJar を実行します。