Старый 13.01.2013, 18:31   #2641
nomad
 
Аватар для nomad
 
Регистрация: 23.07.2010
Сообщений: 179
Репутация: 7
По умолчанию

Цитата:
Сообщение от Flakt Посмотреть сообщение
вот аналогичный случай

_http://www.sheffieldjazz.org.uk/lala.php

при заливки с99 и взятого из паблика wso шелла выводится

Forbidden

You don't have permission to access /lala.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


вопрос был решен, криптовым wso шеллом
Боюсь, это не мой случай - я даже phpinfo(); выполнить не могу, поэтому вопрос не в палевности шелла.



Да, на всякий случай, при magic_quotes on нельзя воспользоваться конструкцией into outfile?
__________________
Roamer, wanderer
Nomad, vagabond
Call me what you will

(c) Metallica

Последний раз редактировалось nomad; 13.01.2013 в 18:42..
nomad вне форума   Ответить с цитированием
Старый 13.01.2013, 20:10   #2642
Flakt
 
Аватар для Flakt
 
Регистрация: 18.02.2011
Сообщений: 90
Репутация: 0
По умолчанию

Цитата:
Сообщение от nomad Посмотреть сообщение
Да, на всякий случай, при magic_quotes on нельзя воспользоваться конструкцией into outfile?


Существует способ, но сам не проверял

https://forum.antichat.ru/showpost.php?p=663815&postcount=39
Flakt вне форума   Ответить с цитированием
Старый 15.01.2013, 11:09   #2643
euro
 
Регистрация: 09.07.2010
Сообщений: 66
Репутация: 8
По умолчанию

хелпаните по pgsql.
У скули прова root, но не работает точка с запятой ; ,тоесть синтаксис примерно такой
(Select+cast(usename||chr(58)||passwd+as+int)+from +pg_user)
как мне создать таблицу при таком раскладе ? ибо id=27456;CREATE TABLE аааа (b text); не работает.
euro вне форума   Ответить с цитированием
Старый 17.01.2013, 20:27   #2644
Untitled
 
Аватар для Untitled
 
Регистрация: 24.06.2012
Сообщений: 131
Репутация: 30
По умолчанию

Есть какие-то способы динамического выбора количества колонок в MySQL-запросе? Например:
SELECT <...> UNION SELECT 1,2,3,f(...),f(...), где в зависимости от входных в функцию f(...) данных UNION будет либо на 3, либо на 5 колонок.
Untitled вне форума   Ответить с цитированием
Старый 18.01.2013, 06:30   #2645
Sleep
 
Регистрация: 29.04.2012
Сообщений: 17
Репутация: 4
По умолчанию

Такой вопрос.
есть шелл на серве с айпи к примеру 70.0.0.0 рута нету, ядро не рутабельно вроде как. есть сайт на соседнем серве 70.0.0.1 на сайте есть LFI но толку от нее хз. ингклудить нечего кроме как ./etc/passwd и пару конфигов апача и еще что-то ни логов ни куков ни каких форм для загрузки чего либо.в админки есть возможность вставлять пхп код в страницу но туда попасть не могу т.к в корне админки лежит файл .htaccess с
3 айпи адресами для которых разрешен вход на страницу айпи: 70.0.0.30 70.0.0.32 70.0.0.1.
так же пытался инклудить страницу которая в админки, в которой есть уязвимость исполнение пхп кода,выдает еррор 500 (((
как быть ?
add:
на серве где есть шелл, есть рут доступ к mysql'y но там ничего интересного нет ((
Sleep вне форума   Ответить с цитированием
Старый 18.01.2013, 09:38   #2646
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию

Untitled
99.9% что нет. есть Row Subqueries, но их можно использовать только в операциях сравнения. а функции и операторы вроде if и case могут, по моему, возвращать только скалярный результат.

Sleep
наиболее вероятностный вектор - искать то, что все таки можно проинклудить через lfi
отсюда (Особенности реализации PHP Include.) все методы пробовал ?
попробуй
php://input
data:application/x-httpd-php;base64 (хотя с lfi по идее не будет работать, надо rfi)
варианты с /proc/...
еще есть методы [LFI через mail], [LFI через phpinfo]
DrakonHaSh вне форума   Ответить с цитированием
Старый 18.01.2013, 12:33   #2647
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

Sleep:

из админки запускаешь phpinfo()->смотришь, где хранятся сессии(session.save_path)->из админки пишешь с помощью php-кода нужный тебе файл в папку с сессиями->инклудишь из папки с сессиями

или просто пишешь в /tmp, в общем твоя задача просто записать файло в общедоступную папку и оттуда проинклудить уже

PHP код:
file_put_contents("полный_путь_куда_кладем", "<?php phpinfo();?>");chmod("полный_путь_куда_кладем", 0777);
PS: может и не прокатить, если хостер не балбес

Последний раз редактировалось Pashkela; 18.01.2013 в 12:49..
Pashkela вне форума   Ответить с цитированием
Старый 18.01.2013, 13:53   #2648
Sleep
 
Регистрация: 29.04.2012
Сообщений: 17
Репутация: 4
По умолчанию

Цитата:
Сообщение от DrakonHaSh Посмотреть сообщение
Sleep
наиболее вероятностный вектор - искать то, что все таки можно проинклудить через lfi
отсюда (Особенности реализации PHP Include.) все методы пробовал ?
попробуй
php://input
data:application/x-httpd-php;base64 (хотя с lfi по идее не будет работать, надо rfi)
варианты с /proc/...
еще есть методы [LFI через mail], [LFI через phpinfo]
да обертки пробовал все((
phpinfo() нету.mail() думаю тоже врятли т.к на сайте нету не регистрации ни юзеров.
двиг на smarty, бд не использует (
Sleep вне форума   Ответить с цитированием
Старый 18.01.2013, 14:04   #2649
artrix
 
Регистрация: 13.12.2012
Сообщений: 16
Репутация: -1
По умолчанию

PHP код:
unction parse_clean_key($key)
    {
        if (
$key == "")
        {
            return 
"";
        }
        
        
$key htmlspecialchars(urldecode($key));
        
$key preg_replace"/\.\./"           ""  $key );
        
$key preg_replace"/\_\_(.+?)\_\_/"  ""  $key );
        
$key preg_replace"/^([\w\.\-\_]+)$/""$1"$key );
        
        return 
$key;
    }


    function 
parse_clean_value($val)
    {
        if (
$val == "")
        {
            return 
"";
        }
    
        
$val str_replace" "" "$val );
           
$val str_replacechr(0x10), ""$val );
           
$val str_replacechr(0x13), ""$val ); 
        
$val str_replace"&"            "&amp;"         $val );
        
$val str_replace"<!--"         "<!--"  $val );
        
$val str_replace"-->"          "-->"       $val );
        
$val preg_replace"/<script/i"  "<script"   $val );
        
$val str_replace">"            "&gt;"          $val );
        
$val str_replace"<"            "&lt;"          $val );
        
$val str_replace"\""           "&quot;"        $val );
        
$val preg_replace"/\n/"        "<br />"        $val ); // Convert literal newlines
        
$val preg_replace"/\\\$/"      "$"        $val );
        
$val preg_replace"/\r/"        ""              $val ); // Remove literal carriage returns
        
$val str_replace"!"            "!"         $val );
        
$val str_replace"'"            "'"         $val ); // IMPORTANT: It helps to increase sql query safety.
        
$val str_replace'"'            "&#x22;"        $val );
        
        
$get_magic_quotes = @get_magic_quotes_gpc();
        if ( 
$get_magic_quotes )
        {
            
$val stripslashes($val);
        }

        
$val preg_replace"/\\\(?!&amp;#|\?#)/""\"$val ); 
        
        return 
$val;
    }
    
    if ( 
is_array($_GET) )
    {
        while( list(
$k$v) = each($_GET) )
        {
            if ( 
is_array($_GET[$k]) )
            {
                while( list(
$k2$v2) = each($_GET[$k]) )
                {
                    
$_GETparse_clean_key($k) ][ parse_clean_key($k2) ] = parse_clean_value($v2);
                }
            }
            else
            {
                
$_GETparse_clean_key($k) ] = parse_clean_value($v);
            }
        }
    }
    if ( 
is_array($_POST) )
    {
        while( list(
$k$v) = each($_POST) )
        {
            if ( 
is_array($_POST[$k]) )
            {
                while( list(
$k2$v2) = each($_POST[$k]) )
                {
                    
$_POSTparse_clean_key($k) ][ parse_clean_key($k2) ] = parse_clean_value($v2);
                }
            }
            else
            {
                if(
$k=='oldURL')
                {
                    if(!
preg_match("#^http:\/\/".$_SERVER['HTTP_HOST']."#isU"$v))
                    {
                        
$_POST[$k] = "http://".$_SERVER['HTTP_HOST'];
                    }
                } else {
                    
$_POSTparse_clean_key($k) ] = parse_clean_value($v);
                }
            }
        }
    } 
День добрый. Можно как нибудь обойти данный способ фильтрации?
artrix вне форума   Ответить с цитированием
Старый 18.01.2013, 14:30   #2650
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию

Sleep
если на серваке открыт 25 порт, то значит туда можно слать письма. если послать письмо юзеру www-data/apache (имя юзера от которого работает lfi, его надо угадать), то это письмо упадет куда-то на сервер.

почитать тут: http://www.xakep.ru/post/49508/?print=true
так же подобный прием есть в видео Hack Quest 2010.avi и в хакере 2011-03 [xa_146.pdf - можно скачать с самого хакера]

еще неплохо, если еще этого не сделал, запустить toolza от Pashkela на эту LFI - можно найти интересные логи/файлы.

еще, предполагая что серваки 70.0.0.0 и 70.0.0.1 имеют схожую изначальную конфигурацию, изучить через шел то, во что можно писать извне(логи ftp,ssh,www,mail,... еще служба для которых порты открыты) на 70.0.0.0 и пробовать тож самое на 70.0.0.1
DrakonHaSh вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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