Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah pemalam suntikan kumpulan yang dihasilkan oleh Burpsuit digabungkan dengan SQLMapAPI?

Apakah pemalam suntikan kumpulan yang dihasilkan oleh Burpsuit digabungkan dengan SQLMapAPI?

WBOY
WBOYke hadapan
2023-05-12 19:19:041260semak imbas

Perubahan 1.1:

Tetapan penapis tambahan

Hasil paparan yang dioptimumkan

Menambah maklumat segera berjalan

Ditambah Padanan biasa nama domain

Keseluruhan pemalam dibahagikan kepada tiga panel: panel tugas, panel konfigurasi parameter sqlmapapi dan panel syarat penapis.

Panel Tugas

Apakah pemalam suntikan kumpulan yang dihasilkan oleh Burpsuit digabungkan dengan SQLMapAPI?

Pelayan: IP dan port perkhidmatan SQLmapapi

THREAD: Bilangan tugas yang dikesan serentak

Domain: Nama domain yang perlu dikesan, menyokong pemadanan biasa

BERSIH: Kosongkan senarai cache tugas

UJIAN: Uji sama ada sambungan SQLmapapi berjaya

MULA: Hidupkan pengesanan

Bawah kiri ialah senarai tugas dan status tugas, di bawah butang kanan ialah kawasan gesaan maklumat, dan di bawah ialah butiran permintaan dan hasil imbasan.

panel konfigurasi parameter sqlmapapi

Apakah pemalam suntikan kumpulan yang dihasilkan oleh Burpsuit digabungkan dengan SQLMapAPI?

Tetapan di sini merujuk kepada tetapan parameter sqlmap.

Tamper: Senarai ialah tamper yang disertakan dengan sqlmap Custom tamper boleh diisi dalam kotak input dan dipisahkan dengan "," koma.

Fail Log: Tetapkan fail log pengimbasan Laluan storan fail ini ialah laluan pada pelayan sqlmapapi.

Panel keadaan penapis

Apakah pemalam suntikan kumpulan yang dihasilkan oleh Burpsuit digabungkan dengan SQLMapAPI?

ExcludeSuffix: Digunakan untuk mengecualikan beberapa permintaan dengan akhiran tertentu, menggunakan ungkapan biasa untuk pemadanan. Contohnya: gambar, css, js, dsb.

IngoreCase: Hadkan sama ada ExcludeSuffix adalah sensitif huruf besar atau tidak.

IngoreParams: Parameter yang perlu diabaikan apabila mengesan pertindihan permintaan, dipisahkan dengan "," koma, contohnya: nombor rawak timeStamp dalam permintaan, dsb.

ExcludeParams: Jika parameter ini wujud semasa menapis permintaan, permintaan itu tidak akan ditambahkan pada senarai ujian, contohnya: checkCode kod pengesahan, dsb.

Di atas adalah beberapa pengubahsuaian yang dibuat semasa penggunaan sebenar dalam tempoh ini. Pemalam akan dioptimumkan lagi berdasarkan cadangan anda pada masa hadapan. Terima kasih atas sokongan anda.

Berikut ialah beberapa kod dan idea pelaksanaan dalam program:

Minta kod pelaksanaan bahagian mendengar

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());
                    }
                }
            }
        }
    }

Kod pelaksanaan bahagian pelaksanaan tugas:

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());
                        }
                    }
                }
            }

Atas ialah kandungan terperinci Apakah pemalam suntikan kumpulan yang dihasilkan oleh Burpsuit digabungkan dengan SQLMapAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam