Inhaltsverzeichnis
1.1 Änderungen:
Aufgabenbereich
Filterbedingungsfeld
Implementierungscode für den Abhörabschnitt anfordern
Implementierungscode für den Aufgabenausführungsabschnitt:
Heim Betrieb und Instandhaltung Sicherheit Was ist das von Burpsuit in Kombination mit SQLMapAPI generierte Batch-Injection-Plug-in?

Was ist das von Burpsuit in Kombination mit SQLMapAPI generierte Batch-Injection-Plug-in?

May 12, 2023 pm 07:19 PM
sqlmapapi burpsuit

1.1 Änderungen:

Filtereinstellungen hinzufügen

Anzeigeergebnisse optimieren

Informationen zur laufenden Eingabeaufforderung hinzufügen

Regelmäßige Zuordnung von Domänennamen hinzufügen

Das gesamte Plug-in ist in drei Bereiche unterteilt: Aufgabenbereich, SQLMapapi-Parameterkonfiguration Panel, Filterbedingungen-Panel.

Aufgabenbereich

Was ist das von Burpsuit in Kombination mit SQLMapAPI generierte Batch-Injection-Plug-in?

Server: IP und Port des SQLmapapi-Dienstes

THREAD: Anzahl der gleichzeitig erkannten Aufgaben

Domäne: Zu erkennender Domänenname, unterstützt regulären Abgleich

CLEAN: Aufgaben-Cache-Liste löschen

TEST: Testen Sie, ob die Verbindung zu SQLmapapi erfolgreich ist.

START: Erkennung einschalten.

Unten links ist die Aufgabenliste und der Aufgabenstatus, die untere linke Schaltfläche ist der Informationsaufforderungsbereich und der untere Teil ist die Anfrage Details und Scanergebnisse.

sqlmapapi-Parameterkonfigurationsfeld

Was ist das von Burpsuit in Kombination mit SQLMapAPI generierte Batch-Injection-Plug-in?

Die Einstellungen hier beziehen sich auf die Parametereinstellungen von sqlmap.

Manipulation: Die Liste ist die Manipulation, die mit sqlmap geliefert wird. Benutzerdefinierte Manipulation kann in das Eingabefeld eingegeben und durch Kommas getrennt werden.

LogFile: Legen Sie die Scan-Protokolldatei fest. Der Speicherpfad dieser Datei ist der Pfad auf dem sqlmapapi-Server.

Filterbedingungsfeld

Was ist das von Burpsuit in Kombination mit SQLMapAPI generierte Batch-Injection-Plug-in?

ExcludeSuffix: Wird verwendet, um einige Anfragen mit angegebenen Suffixen auszuschließen und reguläre Ausdrücke für den Abgleich zu verwenden. Zum Beispiel: Bilder, CSS, JS usw.

IngoreCase: Beschränken Sie, ob bei ExcludeSuffix die Groß-/Kleinschreibung beachtet wird.

IngoreParams: Parameter, die ignoriert werden müssen, wenn Duplikate von Anfragen erkannt werden, getrennt durch Kommas, zum Beispiel: die Zufallszahl timeStamp in der Anfrage usw.

ExcludeParams: Wenn dieser Parameter beim Filtern der Anfrage vorhanden ist, wird die Anfrage nicht zur Testliste hinzugefügt, zum Beispiel: Bestätigungscode checkCode usw.

Die oben genannten Änderungen basieren auf einigen Änderungen, die während der tatsächlichen Nutzung in diesem Zeitraum vorgenommen wurden. Das Plug-in wird in Zukunft auf der Grundlage Ihrer Vorschläge weiter optimiert.

Im Folgenden finden Sie einige Code- und Implementierungsideen im Programm:

Implementierungscode für den Abhörabschnitt anfordern

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());
                    }
                }
            }
        }
    }
Nach dem Login kopieren

Implementierungscode für den Aufgabenausführungsabschnitt:

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());
                        }
                    }
                }
            }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist das von Burpsuit in Kombination mit SQLMapAPI generierte Batch-Injection-Plug-in?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)