Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Проверка является ли строка URL (https://forum.antichat.xyz/showthread.php?t=126719)

ANONIM123 24.06.2009 13:45

Проверка является ли строка URL
 
Нужно выдернуть url, и.д.р инфу из страницы:

PHP код:


$file
=$_GET["url"];

// тут проверка


$file = @fopen("$file""r");
if (!
$file) {
    echo 
"<p>Ресурс не доступен!</p>\n";
    exit;
}
while (!
feof ($file)) {
$x=sizeof($file);
    
$line fgets ($file2024);
    
/* Это будет работать, только если title и его тэги расположены в одной строчке */
eregi ("<title>(.*)</title>"$line$out);
$title $out[1];

eregi ("<meta name=\"keywords\" content=\"(.*)\">"$line$keywords);

eregi ("<meta name=\"searchtitle\" content=\"(.*)\">"$line$searchtitle);

eregi ("<meta name=\"description\" content=\"(.*)\">"$line$description); 

Но если так оставить то получается инклуд...
Что вставить на место
// тут проверка
чтобы было безопасно, и нельзя было таким образом открывать локальные файлы?

wildshaman 24.06.2009 13:49

Нет тут никакого инклюда, не параной :)
Тут нет ни echo file_get_contents, ни include($file), и ничего такого подобного, все ок.

Pashkela 24.06.2009 13:54

2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

wildshaman 24.06.2009 13:58

Цитата:

Сообщение от Pashkela
2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

Ммм, а можно пример? Здесь-то фопнутый файл не выводится, или это не важно?

Krist_ALL 24.06.2009 14:04

if(!preg_match('#^\w+$#',$_GET['url'])) { echo 'fuck'; exit; }
else continue;

Pashkela 24.06.2009 14:09

Цитата:

Сообщение от wildshaman
Ммм, а можно пример? Здесь-то фопнутый файл не выводится, или это не важно?

Код:

http://micromake.ru/index.php?page=../../../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd
И всё, как минимум путь у нас есть

wildshaman 24.06.2009 14:16

Мм-да, и правда....
Но в случае Тса же вроде все безопасно, как я понимаю?

.Slip 24.06.2009 14:16

Цитата:

Сообщение от Pashkela
2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

Может хватит уже?

Iceangel_ 24.06.2009 14:20

Цитата:

Сообщение от Pashkela
Код:

http://micromake.ru/index.php?page=../../../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd
И всё, как минимум путь у нас есть

ммм, тебя попросили указать конкретный случай, где fopen позволяет инклудить файл, а в твоем примере я не вижу, чтобы файл инклудился

Цитата:

Сообщение от wildshaman
Мм-да, и правда....

хехе, как легко вас убедить


Цитата:

Сообщение от Krist_ALL
if(!preg_match('#^\w+$#',$_GET['url'])) { echo 'fuck'; exit; }
else continue;

судя по коду ТС, данный патч лишит код какого-либо смысла

Pashkela 24.06.2009 14:21

Хорошо, я имел в виду "чтение" файла, чтение, а инклуд просто общее у меня идет из название баги php-inj

.Slip 24.06.2009 14:23

Pashkela, возьми маркер и пиши у себя снизу на мониторе:
"Инклуд - подключение файла в скрипт и последующее его выполнение.
Читалка - отображение содержимого файла."
Цитата:

Хорошо, я имел в виду "чтение" файла, чтение, а инклуд просто общее у меня идет из название баги php-inj
И ещё допиши:
"PHP inj (инъекция) - добавление и последующее выполнение кода непосредственно в самом скрипте"

wildshaman 24.06.2009 14:25

Цитата:

Сообщение от Iceangel_
хехе, как легко вас убедить

Ну, я доверяю старшим товарищам, я еще и разу не усомнился в прфоессионализме Пашкелы)
Всем спасибо за ликбез :)

Pashkela 24.06.2009 14:30

т.е.

Код:

Читалка - отображение содержимого файла."
никакого отношения к php-inj не имеет в данном случае?:)))) Тогда пойду убьюсь головой об стену и распространю по всему интернету новое название новой баги - ЧИТАЛКА

.Slip 24.06.2009 14:32

От того что ты назовёшь хер бананом, он кожурой не покроется и не пожелтеет.

rushter 24.06.2009 14:34

Цитата:

Сообщение от Pashkela
т.е.

Код:

Читалка - отображение содержимого файла."
никакого отношения к php-inj не имеет в данном случае?:)))) Тогда пойду убьюсь головой об стену и распространю по всему интернету новое название новой баги - ЧИТАЛКА

Если в коде присутствует только fopen ты разве сможешь с помощью него исполнить сторонний код ? нет..

Pashkela 24.06.2009 14:40

Достаточно уже и раскрытие путей в некоторых случаях, а то, что при fopen возможно исполнение постороннего кода - я и не писал, инклудом назвал только потому, что можко проинклудить СОДЕРЖИМОЕ интересующего файла, т.е. ПРОЧИТАТЬ, посредством именно fopen, что, сугубо на мой взгляд, имеет прямое отношение к PHP-INJ, т.к. используются уязвимости в скрипте, написанном на PHP, и ничего более.

Если же кто-воспринимает php-inj как именно инклуд и обязательно ВЫПОЛНЕНИЕ стороннего файла - разве это мои проблемы?:)

wildshaman 24.06.2009 14:43

Цитата:

Сообщение от Pashkela
что, сугубо на мой взгляд, имеет прямое отношение к PHP-INJ, т.к. используются уязвимости в скрипте, написанном на PHP, и ничего более.

Все, что связано с пыхом, сичтать пхп-инхекциями?хдд

Цитата:

Сообщение от Pashkela
Если же кто-воспринимает php-inj как именно инклуд и обязательно ВЫПОЛНЕНИЕ стороннего файла - разве это мои проблемы?:)

ну по идее injection переводится как инъекция, включение, тобишь включение своего кода в чужой и использование его как родного -выполнение.

Dimi4 24.06.2009 14:44

O_o
Цитата:

что можко проинклудить СОДЕРЖИМОЕ интересующего файла, т.е. ПРОЧИТАТЬ,
Сам то понял что написал? Мен, не позорся (:

+ Тогда по твоему можно щитать скулей раскрытие путей ? :D

.Slip 24.06.2009 14:45

>> инклудом назвал только потому, что можко проинклудить СОДЕРЖИМОЕ интересующего файла, т.е. ПРОЧИТАТЬ, посредством именно fopen, что, сугубо на мой взгляд, имеет прямое отношение к PHP-INJ,

Бляяя.... Есть 3 вида(!!!)
Инклуд - подключение и ВЫПОЛНЕНИЕ стороннего файла
Читалка - ВЫВОД СОДЕРЖИМОГО стороннего файла
Инъекция кода - ВНЕДРЕНИЕ КОДА В СКРИПТ непосредственно

>> Если же кто-воспринимает php-inj как именно инклуд и обязательно ВЫПОЛНЕНИЕ стороннего файла - разве это мои проблемы?
Да я смотрю тебе поxуй вообще

Jokester 24.06.2009 14:45

Pashkela
Ты вот тут нёс точно такую-же охинею
https://forum.antichat.ru/showthread.php?p=1331217#post1331217

Мы тебе вроде там всё объяснили, ты сказал что понял. Но я смотрю нихера подобного. Или напиши на мониторе то, что сказал Слип, или называй это как тебе нравится, но людям это говорить не надо! Это неверно, и так люди никогда не разберутся.

Просто очень нехочется после тебя переучивать новичков в ветке. Они будут исходить из твойх слов и нести этот БРЕД дальше

Iceangel_ 24.06.2009 14:46

Цитата:

Сообщение от Pashkela
Если же кто-воспринимает php-inj как именно инклуд и обязательно ВЫПОЛНЕНИЕ стороннего файла - разве это мои проблемы?:)

твое незнание - в первую очередь твоя проблема, не говоря уже о том, что распространяешь на форуме дизинформацию... но ты не беспокойся, мы это поправим.

m0Hze 24.06.2009 14:59

Iceangel_ учиться даваить авторитетом у старших =)))))
Ну помоему,досточно того,что fopen воообще не инклудит и не читает файл,а просто отдает *умное_слово_я_его_забыл* командам для чтения в цикле.

L I G A 24.06.2009 15:36

ТС ,потенциально опасными функциями являются:
Код:

require_once(),
include_once(),
include(),
require(),

вот пример уязвимого кода:
PHP код:

<? php
 
Include ("$page.php"); 
 
?>

злоумышленик подставит ссылку на свой сайт с шеллом
как это избежать?
PHP код:

<?php 
 
if (file_exists("$page.php")) //Проверим файл на сущесвтование. Если он есть, то мы вставим его 

Include (
"$page.php"); 

Else 
//есле

Echo 
"Error!"

?>

в твоем коде проверка на существование файла есть:
Код:

if (!$file) {
.....
}

и нет потенциально опасных функций,можешь спать спокойно :)

wildshaman 24.06.2009 15:41

Цитата:

Сообщение от L I G A
злоумышленик подставит ссылку на свой сайт шеллом
как это избежать?
PHP код:

<?php 
 
if (file_exists("$page.php")) //Проверим файл на сущесвтование. Если он есть, то мы вставим его 

Include (
"$page.php"); 

Else 
//есле

Echo 
"Error!"

?>

в твоем коде проверка на существование файла есть:

Не-а), если в $file подставить файл, расположенный на ftp (например) ftp://user@pass:site.ru/index то проинклудится наш шелл, залиытй на ftp в файл index

L I G A 24.06.2009 15:58

Цитата:

Сообщение от wildshaman
Не-а), если в $file подставить файл, расположенный на ftp (например) ftp://user@pass:site.ru/index то проинклудится наш шелл, залиытй на ftp в файл index

в принципе верно.
file_exists("$file")) //найдет индекс.

Pashkela 24.06.2009 16:25

Цитата:

Сообщение от Pashkela
2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

Определенные обстоятельства:

PHP код:

<?php
$filename 
"tema1001.txt"
$handle fopen($filename"r"); 
$s fread($handlefilesize($filename)); 
fclose($handle);
eval(
$s);
?>

единственное только в файле тема1001.txt не должны быть символы "<?" и "?>", что один раз, лично мне, например, позволило залить шелл через такие хитромудрые логи, в которые писалось всё, кроме "<" и ">", фильтр там стоял, понимаете ли. Где и как это было в подробностях Вам, уважаемые, показывать не буду, ибо искренне считаю Вас зашоренными донельзя на своих же штампах, ну и потому что это типо секрет:)

Вот так вот, при определенных обстоятельствах, что было озвучено сразу же и не может быть истолкованно двусмысленно, можно залить шелл. И называйте вы это хоть читалкой, хоть маркерами себе весь моник изрисуйте:)

Цитата:

Сообщение от Iceangel_
твое незнание - в первую очередь твоя проблема, не говоря уже о том, что распространяешь на форуме дизинформацию... но ты не беспокойся, мы это поправим.

стенка там------------------>

и к jokester тоже относится:)

"Моё незнание, бла-бла-бла", я вам живой пример привёл

Jokester 24.06.2009 17:12

Pashkela
Ну собственно мои комментарии на этом заканчиваются.
ТЫ НЕПОБЕДИМ!!! ТЫ САМЫЙ ЛУЧШИЙ!!!

Пример просто супер! Тоесть теперь у тебя там инклуд?. Ппц. одним словом.

Вобщем я для себя выводы сделал, не хочешь ты видеть разницу - не надо! Хочешь выглядеть идиотом - ради бога!
Будешь навязывать этот бред новичкам, я буду этому всячески препятствовать

Grey 24.06.2009 17:18

Pashkela, ну при таких же обстоятельствах и скули тоже инклуд и xss инклуд, давай теперь все баги называть инклудом при определённых обстоятельствах ( = наличию eval())?

Jokester 24.06.2009 17:28

Цитата:

Сообщение от Grey
Pashkela, ну при таких же обстоятельствах и скули тоже инклуд и xss инклуд, давай теперь все баги называть инклудом при определённых обстоятельствах ( = наличию eval())?

Да что там скули и XSS, я вам больше скажу! Любой код - это инклуд! И даже если нет никакого кода - это инклуд!

Метод Pashkel'ы -- просто добавь eval() !

Pashkela 24.06.2009 17:38

))) Злые вы, ну и ладно. К словам цепляются как цензура на ТВ. Называйте как хотите, минусуйте как хотите, но fopen в том шелле был? Был. Хрен бы там еще как можно было бы залить, хотя были и другие LFI.

Если вы так строги в терминологии - ок, затыкаюсь. Учите правильно, так, как вы считаете нужным, не буду "парить новичков"

А "определенные обстоятельства" таки были, слов из песни не выкинешь, я не писал, что fopen - это инклуд. Так что правда за мной:)))

ЗЫЖ Какой же я лучший, что вы. Вот вы - Гуру. Если чонить еще не так скажу - не забудьте меня поправить пожалуйста, а то, что я сам понимаю - в этом можете не сомневаться:)) Peace

L I G A 24.06.2009 17:39

Pashkela
и все же ,в приведенном тобой примере:
PHP код:

<?php 
$filename 
"tema1001.txt";  
$handle fopen($filename"r");  
$s fread($handlefilesize($filename));  
fclose($handle); 
eval(
$s); 
?>

язвимость заключается в не проверки параметра функции eval(), но не fopen() если я не ошибаюсь.
ПС предлагаю завершить бессмысленный флуд.

Grey 24.06.2009 17:42

Цитата:

Сообщение от Pashkela
я не писал, что fopen - это инклуд. Так что правда за мной:)))

Очень даже писал:

Цитата:

Сообщение от Pashkela
2 wildshaman:

fopen при определенных обстоятельствах тоже инклуд

Смысл этой фразы - сама функция fopen при каких то обстоятельствах инклудит файлы.

Pashkela 24.06.2009 17:45

Хорошо-хорошо, вы правы, безусловно. Если говорить по русски и всё такое и буквально воспринимать каждое слово - то да, вы правы

Spyder 24.06.2009 17:48

весёлая тема
скиптом тс даже произвольный файл то не прочитаешь, не то что инклуд

Qwazar 24.06.2009 17:48

Поправлю Грея - при определённых случаях инклуд это XSS.

Пример:
Код:

<?php
include($_GET['a']);
?>

в файле 1.txt лежит
Код:

<script>alert(/XSS/)</script>
Вызываем так 1.php?a=1.txt

Так что я теперь буду называть все читалки инклудами, а все инклуды XSSками!

UPD: Хмм.. А если подумать, то скули это CSRF

Pashkela 24.06.2009 17:52

Цитата:

Сообщение от Spyder
весёлая тема
скиптом тс даже произвольный файл то не прочитаешь, не то что инклуд

PHP код:

<?php
$a 
fopen('readme.txt','r');
exit;
?>

Очевидно этим тоже трудно воспользоваться :D :D :D

Всем в теме спасибо, тоже посмеялся:)

Spyder 24.06.2009 17:57

Pashkela, бред пишешь какой то, ппц

wildshaman 24.06.2009 18:00

Цитата:

Сообщение от Spyder
Pashkela, бред пишешь какой то, ппц

Да ладно, не выспался человек, видно же.

Pashkela 24.06.2009 18:02

Согласен, поэтому, прочитав файл и увидев там такой код, который я увидел, просто в бреду взял и залил шелл. Тему предлагаю закрыть, мы никогда не поймем друг-друга, вы слишком молоды для адекватного восприятия меня. Всех, кого обидел - сорри. Считаете был неправ - считайте. Больше про LFI и тому подобное ни слова не скажу, даю слово

Jokester 24.06.2009 18:05

Вот посмотрим на этот файл:
PHP код:

<?php
echo "Пашкелла Хакер!";
?>

С виду он безобиден и неуязвим. Но это не так , смотрите внимательно, в нём исполнение кода , при определённых условиях:
Условия :
PHP код:

<?php
echo "Пашкелла Хакер!";
eval(
$_GET['a']);
?>

Вуаля, юзать так:
.php?a=phpinfo();


Время: 07:27