Burpsuit と SQLMapAPI を組み合わせて生成されるバッチ インジェクション プラグインとは何ですか?
1.1 変更点:
フィルター設定の追加
表示結果の最適化
実行中のプロンプト情報の追加
追加ドメイン名の正規一致
プラグイン全体は、タスク パネル、sqlmapapi パラメーター設定パネル、フィルター条件パネルの 3 つのパネルに分かれています。
タスクパネル
サーバー: SQLmapapi サービスの IP とポート
スレッド: 同時に検出されたタスクの数
ドメイン: 検出する必要があるドメイン名。通常の一致をサポートします。
CLEAN: タスク キャッシュ リストをクリアします。
TEST: SQLmapapi 接続が成功したかどうかをテストします。
START:検出をオンにします
左下はタスク リストとタスク ステータス、右ボタンの下は情報プロンプト領域、その下はリクエストの詳細とスキャン結果です。
sqlmapapi パラメータ設定パネル
ここでの設定は、sqlmap のパラメータ設定を参照します。
タンパー: リストは sqlmap に付属するタンパーです。カスタム タンパーは入力ボックスに入力し、「,」カンマで区切ることができます。
LogFile: スキャン ログ ファイルを設定します。ファイルの保存パスは sqlmapapi サーバー上のパスです。
フィルター条件パネル
ExcludeSuffix: 指定されたサフィックスを持つ一部のリクエストを除外し、一致に通常のルールを使用するために使用されます。例: 画像、CSS、JS など。
IngoreCase: ExcludeSuffix で大文字と小文字が区別されるかどうかを制限します。デフォルトでは大文字と小文字が区別されません。
IngoreParams: リクエストの再現性を検出するときに無視する必要があるパラメータ。「,」カンマで区切られます。例: リクエスト内の乱数 timeStamp など。
ExcludeParams: リクエストのフィルタリング時にこのパラメータが存在する場合、リクエストはテスト リストに追加されません (例: 検証コード checkCode など)。
上記は、この期間中に実際に使用した際の修正を元にしていますが、今後は皆様からのご意見をもとにプラグインをさらに最適化していきますので、どうぞよろしくお願いいたします。
プログラム内のいくつかのコードと実装アイデアを次に示します。
リクエスト リスニング セクションの実装コード
public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) { boolean addFlag = false;// 是否添加到扫描列表 // 判断是否为request请求、开关是否打开 if (messageIsRequest && sqlmapApiPanel.isStart()) { String host = helpers.analyzeRequest(messageInfo).getUrl().getHost(); if (host.matches(targetDomian)) { IRequestInfo iRequestInfo = helpers.analyzeRequest(messageInfo); // 从?号处截断URL 可区分http 和 https String url = String.valueOf(iRequestInfo.getUrl()); url = url.indexOf("?") > 0 ? url.substring(0, url.indexOf("?")) : url; // 排除指定后缀URL(eg : .jpg|.png|.ico) if (!excludeSuffix.matcher(url).matches()) { // 构造任务实体 TaskEntity entity = new TaskEntity(iRequestInfo.getUrl(), // iRequestInfo.getMethod(), // callbacks.saveBuffersToTempFiles(messageInfo), // iRequestInfo); // 进行数据去重检测 String hash = bCrypt.hashpw(entity.getSignString(-1, ingoreParams), SALT); Integer repeatCheckValue = 1; if (String.valueOf(iRequestInfo.getHeaders()).indexOf("Chris-To-Sqlmap") != -1) { if (repeatCheck.containsKey(hash)) { repeatCheckValue = repeatCheck.get(hash) + 1; hash = hash + repeatCheckValue; } addFlag = true; } // 检测当前数据包是否重复,检测当前数据包是否要根据参数可选过滤 else if (!repeatCheck.containsKey(hash) && !entity.hasParams(excludeParams)) { // repeatCheck if (!entity.getParamBody().isEmpty()) {// 检测post参数是否为空 addFlag = true; } else if (!entity.getParamUrl().isEmpty()) {// 检测get参数是否为空 addFlag = true; } else if (sqlmapApiOption.getLevel() >= 3 && !entity.getParamCookie().isEmpty()) {// level参数大于3是应检测cookie注入 addFlag = true; } } if (addFlag) { int row = listTasks.size(); repeatCheck.put(hash, repeatCheckValue); listTasks.add(entity); fireTableRowsInserted(row, listTasks.size()); } } } } }
タスク実行セクションの実装コード:
public void run() { while (true) { if (!threadFlag) { try { sqlmapApiPanel.setMessage("Waiting."); sleep(3 * 1000); } catch (InterruptedException e) { stderr.print(e.getMessage()); } continue; } // 增加任务 if (runingTasks.size() removeList = new ArrayList(); for (String key : runingTasks.keySet()) { TaskEntity entityRuning = runingTasks.get(key); String status = sqlmapapi.flushStatus(sqlmapapiServer, entityRuning); sqlmapApiPanel.setMessage("Flash task [" + key + "] " + status + " ."); if ("terminated".equals(status)) { entityRuning.setTaskStatus(status); entityRuning.setTaskScanData(sqlmapapi.flushScanData(sqlmapapiServer, entityRuning)); sqlmapApiPanel.setMessage("Task [" + key + "] finished ."); removeList.add(key); } else if ("not running".equals(status)) { stderr.println(entityRuning.getTaskid() + " not running"); // entityRuning.setTaskEngineid(taskStart(entityRuning)); } else { entityRuning.setTaskStatus(status); } try { sleep(3 * 1000); } catch (InterruptedException e) { stderr.print(e.getMessage()); } } if (!removeList.isEmpty()) { for (String key : removeList) { runingTasks.remove(key); } } fireTableRowsInserted(0, listTasks.size()); } else { try { sleep(3 * 1000); } catch (InterruptedException e) { stderr.print(e.getMessage()); } } } }
以上がBurpsuit と SQLMapAPI を組み合わせて生成されるバッチ インジェクション プラグインとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







