Статья Свой GUI интерфейс для SQLmap на C#

Привет кодебай, моя первая статья на этом форуме. Сегодня мы сделаем свой GUI для sqlmap, с блекджеком и гугл дорками, поехали!

Для начала нам понадобится пайтон скрипт sqlmap:
Теперь перейдём к кодингу, открываем Visual Studio и создаём "Приложение Windows Forms", версия фремворка 4.5

29350


Объявим необходимые юзинги:
C#:
using System;
using System.Diagnostics;
using System.Windows.Forms;
Теперь идём к конструктору формы, добавляем один TextBox, один Label, один Button, у меня получилось примерно так:

29351


На обработку кнопки Get DB (button1) добавляем код:
C#:
string textb1 = textBox1.Text;
            if (textb1 != "") // Если текстбокс не пуст
            {
                ProcessStartInfo psi = new ProcessStartInfo(); // Создаём новый процесс
                psi.FileName = "cmd"; // Имя процесса
                psi.Arguments = @"/k sqlmap.py -u " + textb1 + " --dbs"; // Аргументы для запуска
                Process.Start(psi); // Запуск процесса
            }

            else if (textb1 == "" || textb1 == null) // Иначе если, текстбокс ничему не равен
                MessageBox.Show("URL ERROR"); // Выводим сообщение о ошибке
29352


Данный код запускает sqlmap в cmd, далее sqlmap ищет базы данных

Снова добавляем тексбокс, лейбл, кнопку:

29353


На обработку кнопки Get Tables (button2) добавляем следующий код:
C#:
string textb2 = textBox2.Text;

            if (textb2 != "" && textBox1.Text != "") // Если тексбокс2 и текстбокс1 не пуст
            {
                ProcessStartInfo psi = new ProcessStartInfo(); // Создаём новый процесс
                psi.FileName = "cmd";
                psi.Arguments = @"/k sqlmap.py -u " + textBox1.Text + " -D " + textb2 + " --tables"; // Запуск SQlmap
                Process.Start(psi); // Старт процесса
            }
     
            else if (textb2 == "" || textBox1.Text == "") // Иначе если, текстбокс2 или текстбокс1 ничему не равны
                MessageBox.Show("Table ERROR"); // Выводим сообщение о ошибке
29354


Данный код запускаем SQLmap, который ищет таблицы в БД.

Опять добавляем элементы на форму:

29355


На обработку кнопки Get Columns добавляем код:
C#:
string textb3 = textBox3.Text;

            if (textb3 != "" && textBox1.Text != "" && textBox2.Text != "") // Если текстбоксы не пусты
            {
                ProcessStartInfo psi = new ProcessStartInfo();
                psi.FileName = "cmd";
                psi.Arguments = @"/k sqlmap.py -u " + textBox1.Text + " -D " + textBox2.Text + " -T " + textb3 + " --columns"; // Аргументы для запуска
                Process.Start(psi); // Запуск

            }

            else if (textb3 == "" || textBox1.Text == "" || textBox2.Text == "") // Иначе если, тексбоксы пусты
                MessageBox.Show("Columns ERROR"); // Выводим собщение о ошибке
29356


Эта команда в SQLmap ищет колонки для дампа.

Добавляем элементы на форму:

29357


На обработку кнопки Dump (button4) добавляем код:
C#:
string textb4 = textBox4.Text;

            if (textb4 != "" && textBox3.Text != "" && textBox1.Text != "" && textBox2.Text != "") // Если текстбоксы не пусты
            {
                ProcessStartInfo psi = new ProcessStartInfo();
                psi.FileName = "cmd";
                psi.Arguments = @"/k sqlmap.py -u " + textBox1.Text + " -D " + textBox2.Text + " -T " + textBox3.Text + " -C " + textb4 + " --dump"; // Аргументы для запуска
                Process.Start(psi); // Запуск
            }

            else if (textb4 == "" || textBox1.Text == "" || textBox2.Text == "" || textBox2.Text == "") // Иначе если, текстбоксы пусты
                MessageBox.Show("Dump ERROR"); // Выводим сообщение о ошибке
29358


Эта команда производит дамп колонок с сайта, которые вы указали.

Добавляем элементы:

29359


На обработку кнопки Search (button5) добавляем код:
C#:
string request = textBox5.Text;

            ProcessStartInfo psi = new ProcessStartInfo(); // Новый процесс
            psi.FileName = "cmd";
            psi.Arguments = @"/k sqlmap.py -g " + request; // Аргументы для запуска
            Process.Start(psi); // Старт процесса
29360


Теперь, когда основная часть проекта готова, можно немного улучшить интерфейс. Для этого в Управлении пакетами NuGet ищем Metro Framework:

29361


Осталось лишь подключить фреймворк к форме, для этого поднимаемся к началу кода, и ищем эту строку:
29362


Заменяем на
C#:
public partial class Form1 : MetroForm
И добавляем юзинг
using MetroFramework.Forms;

Теперь наша форма выглядит так:

29363


Для того, чтобы использовать интерфейс, просто добавьте EXE файл в папку с sqlmap.py:

29364


На этом всё, с вами был @3xpl01t Всем удачи!
 

Debug

Red Team
07.07.2017
217
445
BIT
6
Дизайн так себе, на троечку, во-первых лучше использовать WPF. Если это не представляется нужным либо вы не знакомы, то отличной идей должно быть использование фреймворка - bunifuframework, с ним можно творить очень красивые гуишные приложения.

29365


Ссылка на фреймворк:
 
  • Нравится
Реакции: Andrij Legolas и 3xpl01t

MLNK

Mod. Ethical Hacking
Red Team
23.01.2018
560
706
BIT
7
Дизайн так себе, на троечку, во-первых лучше использовать WPF. Если это не представляется нужным либо вы не знакомы, то отличной идей должно быть использование фреймворка - bunifuframework, с ним можно творить очень красивые гуишные приложения.

Посмотреть вложение 29365

Ссылка на фреймворк:
Гишка такое себе темболее если пишишь под себя и для удобства я вот WPF не особо люблю в системных программах.

Привет кодебай, моя первая статья на этом форуме. Сегодня мы сделаем свой GUI для sqlmap, с блекджеком и гугл дорками, поехали!
хорошая работа!
 

h4x0r

Member
11.03.2019
11
-11
BIT
0
Дизайн так себе, на троечку, во-первых лучше использовать WPF. Если это не представляется нужным либо вы не знакомы, то отличной идей должно быть использование фреймворка - bunifuframework, с ним можно творить очень красивые гуишные приложения.

Посмотреть вложение 29365

Ссылка на фреймворк:
Он Платный держу в курсе
 
  • Не нравится
  • Нравится
Реакции: WorldCount и mrOkey
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!