Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

29.12.2007, 21:14
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Сообщение от ShAnKaR
про HEADER имеется ввиду- такой к примеру скрипт edit.php в админке, в начале проверяется залогинился ли ты под админом , если нет идет редирект, но после функции header не стоит exit, поэтому можно использовать этот скрипт дальше невзираю на права.
А ну дык ) Это неинтересно
|
|
|

18.02.2008, 06:25
|
|
Reservists Of Antichat - Level 6
Регистрация: 16.07.2005
Сообщений: 653
Провел на форуме: 8854279
Репутация:
2727
|
|
Сообщение от Tem
Вообшем прочитал всё 3 раза, был в шоке, после пива очнулся. Но малекий шок остался, после того как прочитал про inval() я думал что кроме числовых значей он больше нечего не берёт , но окозалось не так жаль. Вот иди после всего этого и пиши скрипт.
она и не берет, просто надо ее правильно юзать.
PHP код:
$id = intval($_REQUEST['id']);
sql_query("select $id from table_name");
Elekt, спасибо! статья ммм супер )
зы. фишку с header понял. 
__________________
ПИУ-ПИУ...
|
|
|

22.02.2008, 23:12
|
|
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме: 9751379
Репутация:
3812
|
|
Есть ещё несколько забавных вещичек связанных с переменной $_SERVER['PHP_SELF']
например кодес
PHP код:
echo "<form action='".$_SERVER['PHP_SELF']."'>";
при обращении к скрипту как
Код:
http://localhost/script.php/">lalala
вы увидем выход за пределы тега etc, т.е. потенциальная xss)
При этом возможно передавать переменные через GET, например
PHP код:
echo "<a href='".$_SERVER['PHP_SELF']."?lalala'>link</a>";
if($_GET['hek']=='4') echo 'тынц-тынц';
Код:
http://localhost/script.php/"><script>alert(/XSS/)</script>?hek=4
на выходе мы получим наш алерт и надпись "тынц-тынц" =)
Далее если $_SERVER['PHP_SELF'] используется при перенаправлении путём посылки хэдера, то можно вызвать раскрытие пути
PHP код:
header("Location: {$_SERVER['PHP_SELF']}");
Код:
http://localhost/script.php/%0ALocation:%20http://www.google.com
Warning: Header may not contain more than a single header, new line detected. in X:\home\localhost\www\script.php on line 4
Так же можно обойти некоторые ограничение безопасности, например в wp-ids
файл wpids-css.php
PHP код:
<?php
if(eregi("^wpids\-css\.php", basename($_SERVER['PHP_SELF']))) {
die('You cannot call this file directly.');
}?>
<style type="text/css">
#wpids_wrapper {
padding:20px;
background-color:#fbfbfb;
}
...
обходится элементарно
Код:
http://localhost/wp-ids/wpids-css.php/lalala
PHP код:
basename($_SERVER['PHP_SELF'])='lalala'
PS ничё особенного в файле нет, но всё-таки) но если брать конкретно wp-ids, то главным образом обламывает .htaccess +)
линк
__________________
Последний раз редактировалось +toxa+; 06.04.2009 в 16:15..
|
|
|

22.03.2008, 19:21
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
To nerezus, [ cash ]
совершенно верно, не претендую на первоткрывателя.
Это обзор того что известно, только все вместе с моими коментариями и некоторыми доработками.
[ _REQUEST {variables_order} OVERWRITE ]
Глобальный массив реквеста формируется по принципу последней перезаписи переменных из других глобальных массивов в порядке, заданном директивой php.ini :
variables_order = EGPCS (по дефолту)
где
E - $_ENV[]
G - $_GET[]
P - $_POST[]
C - $_COOKIE[]
S - $_SERVER[]
только для реквеста енв и серверный массивы будут проигнорированны.
Тоесть в данном порядке конечные значения $_REQUEST будут переписаны содержимым куков в последнюю очередь.
Это можно использовать при криво поставленных фильтрах безопасности со всеми вытекающими.
Примерно как и импортреквест для инклуда в слаеде.
Кстати дайте мне в ПМ последнюю его версию, потестим.
Пример, есть код:
PHP код:
<?php
print "variables_order : ".ini_get('variables_order')."<br>";
print "<br>GET : ";print_r($_GET);
print "<br>POST : ";print_r($_POST);
print "<br>COOKIE: ";print_r($_COOKIE);
print "<br><br>REQUEST: ";print_r($_REQUEST);
?>
Шлем пакет на скрипт:
Код:
POST /1.php?a=1 HTTP/1.0
Host: localhost
Cookie: a=3;
Content-Length: 3
Content-Type: application/x-www-form-urlencoded
a=2
Наблюдаем:
Код:
variables_order : EGPCS
GET : Array ( [a] => 1 )
POST : Array ( [a] => 2 )
COOKIE: Array ( [a] => 3 )
REQUEST: Array ( [a] => 3 )
Последний раз редактировалось Elekt; 01.04.2008 в 14:48..
|
|
|

06.04.2008, 19:27
|
|
Участник форума
Регистрация: 06.11.2007
Сообщений: 143
Провел на форуме: 350782
Репутация:
81
|
|
Я в шоке как так всегда использовал ereg и ereg_replace!!
только что дома на 2008 denver попробовал все ок уязвимости с %00 нет. У меня php версии 5.2.4. Скажите в каких версиях ereg уязвима?????
|
|
|

06.04.2008, 19:55
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
жесть... на самом деле тут нет ничего страшного, ну кроме ereg, просто ошибки вызваны нереальной кривостью рук программиста или админа, а более-менее знающий пхп(больше 2-3 дней) так уже не напишет.
|
|
|

22.04.2008, 04:56
|
|
Новичок
Регистрация: 04.01.2008
Сообщений: 21
Провел на форуме: 22522
Репутация:
0
|
|
Сообщение от nerezus
многие пункты типа "intval" и "urldecode после addslashes" ,addslashes_deep - вообще бред. В документации ясно все про это написано. А последняя функция - вообще непонятно что.
"urldecode после addslashes" - на этой ошибке построена blind SQL injection в wordpress2.1
intval - вполне возможно такое встретить
addslashes_deep - не понял что тебе тут не понятно
header() - не знаешь что за ф-ция или не знаешь к чему может привести ее использование без die(); ?
Думай в следующий раз прежде чем что то пукнуть.
Сообщение от madnet
Хорошая статья, Элек на высоте, но вот только мое ИМХО, журнал Х не стоит таких мыслей и такой Pr ачату не нужен, все разработки, подобные этой, должны оставаться внутри закрытых комунити.
Все это уже старо и всем давно известно. В анонсе написано "Поиск уязвимостей медленно но верно переходит на новую качественную ступень - исследование платформы/интерпретатора, изучение особеностей работы критичных для безопасности функций, пограничные состояния, переполнения буфера." Вот бага с оператором unset() из первой части это что то качественно новое, а фичи из 2 части никак не тянут на новую ступень...
|
|
|

22.04.2008, 08:42
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
intval - вполне возможно такое встретить
Понимаешь, если человек забивает гвозди латексовым членом говорит, что член от этого портится - то это не член хреновый, а человек хреновый.
Так что пукаешь тут ты, покрывая такого человека )
Посмотри на форумы по пхп. Ну нету там таких тем. А вот в мануал посылают
не знаешь что за ф-ция или не знаешь к чему может привести ее использование без die();
с чего ты взял?
Дело в том, что я ориентировался на первую тему(роковые ошибки), где были показаны ошибки пхп. А в этой теме именно ошибки админов и программистов, но чтобы не допускать их достаточно лишь немного думать и знать предметную область.
В то время как ошибки самого пхп - это реально ошибки.
|
|
|

22.04.2008, 09:44
|
|
Новичок
Регистрация: 04.01.2008
Сообщений: 21
Провел на форуме: 22522
Репутация:
0
|
|
ну если называшь бредом именно несоответсвие анонсу, то это так, автор проперся, т.к. все это документированные возможности. Надеялся узнать что то новое об ошибках уровня платформы, а все что в статье уже практически в двигах не встречается (
|
|
|

06.06.2008, 18:41
|
|
Постоянный
Регистрация: 22.03.2008
Сообщений: 325
Провел на форуме: 1208132
Репутация:
63
|
|
О половине `фичах ` написанно напрямую в книгах о ПХП
допустим что переписывается сначало Get=>post=>cookie,
а 2 половина была оч.полезной... .Автору +
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|