Тема: 1024cms
Показать сообщение отдельно

  #5  
Старый 22.03.2010, 23:51
Welemir
Познающий
Регистрация: 10.01.2008
Сообщений: 58
Провел на форуме:
122329

Репутация: -2
По умолчанию

Пассивная XSS
Скрипт: /admin/index.php

Участок кода:

PHP код:

if(isset($_SESSION['admin']) || $page == 'login') {
    
define("_AJAX_INCLUDE_""./ops/".$page."/ajax/ajax.js");
    include(
"./lang/".$lang."/".$page."/default.php");
    include(
"../includes/header.php"); 
    include(
"./themes/".$admin_theme_dir."/templates/header.tpl");
    include(
"./ops/".$page."/default.php");
    include(
"./themes/".$admin_theme_dir."/templates/footer.tpl");
} [
SIZE=2][COLOR=Red]else echo "<META http-equiv='refresh' content='0; URL=index.php?op=login&amp;f=".urlencode($_SERVER['REQUEST_URI'])."'>"[/COLOR];[/SIZE
Заливка шелла через аватары:

Скрипт:
PHP код:
http://localhost/1024/admin/index.php?op=avatars 
Необходимо только сменить расширение файла на extension.evil ,где evil - расширение шелла,а extension - расширение файла,например,test.gif.php

Warning: В некоторых местах аплоада пофиксено,но там есть XSS ).

P.S.: Необходимы права админа.
ЗЫ: Аватары хранятся в папке /images/avatars/ директории /1024

Остальное в пути ).За кривое оформление заранее извиняюсь,ибо не умею.


Вот вся функция upload(),которая взаимодействует со скриптом аплоада аватара,кому интересно:

PHP код:

function upload() {
    global 
$admin_theme_dir;
    if(!isset(
$_FILES['upload']) || trim($_FILES['upload']['tmp_name']) == "") echo "<meta http-equiv='refresh' content='0;URL=index.php?op=avatars'>";
    else {
        echo 
"<div align='center'>";
        include(
"../includes/classes/uploading.php");
        
$upload $_FILES['upload'];
        
$tmp_name $_FILES['upload']['tmp_name'];
        
$name $_FILES['upload']['name'];
        
$filepath "";
        if(
is_uploaded_file($tmp_name)) {
            if(
$_FILES['upload']['error'] == UPLOAD_ERR_OK) {
                
$path "../images/avatars/";
                if(!
is_dir($path)) die("Cannot find path: ".$path);
                if(
preg_match('(\.gif|\.png|\.jpg|\.jpeg)'$name)) {
                    
$name $_FILES['upload']['name'];
                    
$filepath $path.$name;
                    if(
file_exists($filepath)) die("Avatar already exists, rename the image and try again");
                    if(
move_uploaded_file($tmp_name$filepath)) {
                        
define("_REDIRECT_""./index.php?op=avatars");
                        
define("_CONTENT_"_CONFIRMED_);
                        include(
"./themes/".$admin_theme_dir."/templates/successfulprocess.tpl");
                    } else die(
"Cannot upload file, please try again");
                } else die(
"File Type not allowed. You can upload: .gif, .png, .jpg, .jpeg");
            } else echo 
"ERROR:".file_error_check($_FILES['upload']['error']);
        } else die(
"Error uploading file");
    }
    echo 
"</div>";


Последний раз редактировалось Welemir; 23.03.2010 в 00:24..