The OpenNET Project

 
Поиск (теги):    НОВОСТИ (+) КОНТЕНТ WIKI MAN'ы ФОРУМ twitter

08.01.2017 12:01  Уязвимость, позволяющая осуществить подстановку SQL-кода в GitHub Enterprise

В GitHub Enterprise, варианте GitHub для предприятий, позволяющем развернуть окружение для совместной разработки внутри корпоративной сети на подконтрольном оборудовании, выявлена уязвимость, позволяющая через отправку специально оформленного запроса выполнить произвольный SQL-код на сервере.

В описании уязвимости приводится заслуживающий внимания рассказ об организации работы кода GitHub Enterprise, который во многом пересекается с кодом публичного сервиса GitHub. Пакет поставляется в виде образа виртуальной машины, доступной для бесплатного ознакомительного использования в течение 45 дней. Исходные тексты скрыты и поставляются в упакованном виде, напоминающем зашифрованный набор данных. Прозрачная распаковка в момент выполнения осуществляется при помощи библиотеки ruby_concealer.so, анализ которой показал, что метод упаковки сводится к сжатию кода при помощи Zlib::Inflate::inflate и применению операции XOR с предопределённым ключом.

После распаковки было выяснено, что большая часть кода написана на языке Ruby с использованием фреймворков Ruby on Rails и Sinatra, но также применяются компоненты на Python, Bourne Shell, C++ и Java. По мнению исследователя безопасности, код, отвечающий за работу web-сервисов, основан на реальной кодовой базе github.com, gist.github.com, render.githubusercontent.com и api.github.com. Получив доступ к коду исследователь, до этого не имевший дело c языком Ruby, потратил всего четыре дня на поиск возможных уязвимостей и выявил проблему в обработчике PreReceiveHookTarget, позволяющую осуществить подстановку SQL-кода через передачу специально оформленных данных через параметр "sort", отправив запрос к общедоступному Web API.



   $ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
   'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=????????&sort=id,(select+1+from+information_schema.tables+limit+1,1)'

   $ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
   'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=????????&sort=id,if(user()="github@localhost",sleep(5),user())'

GitHub был уведомлен о проблеме в конце декабря и устранил уязвимость в выпуске GitHub Enterprise 2.8.5. Выявившему уязвимость исследователю выплачено вознаграждение в размере 5 тысяч долларов США.

  1. Главная ссылка к новости (http://blog.orange.tw/2017/01/...)
  2. OpenNews: Выявлена порция уязвимых SSH-ключей доступа к GitHub
  3. OpenNews: Возможность доступа к приватным репозиториям GitHub при помощи серии незначительных уязвимостей в OAuth
  4. OpenNews: Через уязвимость в GitHub от имени Линуса Торвальдса создан фиктивный репозиторий linux-ng
  5. OpenNews: В GitHub устранена уязвимость, допускающая внедрение кода в любой репозиторий
  6. OpenNews: Половина кода на GitHub поставляется без указания лицензии и небезопасна для интеграции в открытые проекты
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: github
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 12:49, 08/01/2017 [ответить] [смотреть все]
  • +4 +/
    Хороший способ заработать  5 тыс $ за 4 дня.
     
     
  • 2.21, Аноним, 18:47, 08/01/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    А могли бы исследователю просто дать абонемент на год бесплатного Github Enterpr... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, Аноненамус, 19:49, 08/01/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Но зачем? где он его тратить будет?
     
     
  • 4.52, Аноним, 18:29, 09/01/2017 [^] [ответить] [смотреть все]  
  • +/
    это, видимо - отсылка к наградам некоторых компаний
     
  • 1.2, deadfood, 13:16, 08/01/2017 [ответить] [смотреть все]  
  • +6 +/
    >Прозрачная распаковка в момент выполнения осуществляется при помощи библиотеки ruby_concealer.so, анализ которой показал для метод упаковки сводится к сжатию кода при помощи Zlib::Inflate::inflate и применению операции XOR с предопределённым ключом.

    что на опеннете делает эта гнусная проприетарщина?

     
     
     
    Часть нити удалена модератором

  • 3.9, VANANIMAS, 17:34, 08/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Ноет.
     
  • 2.36, Аноним, 05:43, 09/01/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Кормит троллей лулзами разве что Для чего-то такого проприетарь и нужна ... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, IB, 14:13, 08/01/2017 [ответить] [смотреть все]  
  • +/
    Вашу ж мать, когда "ынтырпрайз" научится использовать prepared statements
     
     
  • 2.4, Ordu, 14:54, 08/01/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –3 +/
    Это ruby и ActiveRecord Там это может быть не столь элементарно, чем в случае, ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.11, Аноним, 17:46, 08/01/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    Проблема не в ActiveRecord, а в том, что входные данные никто не проверяет как с... весь текст скрыт [показать]
     
     
  • 4.17, Алексей Морозов, 18:37, 08/01/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    Оставлять проверку входных данных на прикладного программиста 8212 изощренный... весь текст скрыт [показать]
     
     
  • 5.30, АнониМ, 23:21, 08/01/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    от prepared statements может просесть производительность Тот же оракл может оче... весь текст скрыт [показать]
     
     
  • 6.34, Анином, 03:18, 09/01/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Ахаха Тот же оракл просядет, если его кеш запросов будут забивать запросами с ... весь текст скрыт [показать]
     
  • 6.35, ., 04:18, 09/01/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Ага, расскажи о вкусе ананасов тем кто их и в самом деле ел - В общем - в с... весь текст скрыт [показать]
     
  • 6.51, anonymous, 17:44, 09/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Отпимизация случайного возникшего хорошего случая не забываем, что речь идет о ... весь текст скрыт [показать]
     
  • 5.58, xz, 12:52, 12/01/2017 [^] [ответить] [смотреть все]  
  • +/
    А какая связь между автоматическим созданием SQL-стейтмента и prepared ... весь текст скрыт [показать]
     
  • 4.33, Ordu, 02:22, 09/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Конечно же Сколь бы дурацкий инструмент мы не использовали, если не справляется... весь текст скрыт [показать]
     
     
  • 5.40, Аноним, 11:23, 09/01/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    клоун Пока запрос пишется в текстовом виде, будут существовать ошибки подстанов... весь текст скрыт [показать]
     
     
  • 6.43, Аноним, 13:27, 09/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Однако ж попробуй заинъектить что-нибудь в простую key-value базу, где ключ и зн... весь текст скрыт [показать]
     
     
  • 7.44, Аноним, 13:44, 09/01/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    клоун если программа работает с внешними данными, то можно подобрать такой их н... весь текст скрыт [показать]
     
     
  • 8.54, Аноним, 20:03, 09/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Только если автор - дол и не понял что извне таки натурально могут приехать Л... весь текст скрыт [показать]
     
  • 6.45, Ordu, 14:02, 09/01/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Бла-бла-бла Ещё какой всемирный закон ты открыл Сколько _тебе_ лет, что ты н... весь текст скрыт [показать]
     
     
  • 7.46, Аноним, 14:18, 09/01/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    клоун Ты в суть проблемы то вник Они неверно экранировали входные данные Каки... весь текст скрыт [показать]
     
     
  • 8.50, Ordu, 17:40, 09/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Ты с ActiveRecord знаком, деточка ActiveRecord занимается сборкой текстового sq... весь текст скрыт [показать]
     
  • 3.12, Kodir, 17:48, 08/01/2017 [^] [ответить] [смотреть все]  
  • –7 +/
    AR вообще тут не причём Какой бы ни был ORM, программист просто не имеет права ... весь текст скрыт [показать]
     
     
  • 4.13, Аноним, 17:55, 08/01/2017 [^] [ответить] [смотреть все]  
  • +6 +/
    > Уязвимость, позволяющая осуществить подстановку SQL-кода в GitHub Enterprise
    > Эксплойт лишний раз доказывает, насколько раздута слава git
    > GitHub Enterprise
    > git
    > GitHub Enterprise
    > git
    > GitHub Enterprise
    > это написал наш великий Линус!
    > GitHub Enterprise
    > это написал наш великий Линус!

    Слишком толсто, попробуйте потоньше.

     
  • 4.37, Аноним, 05:45, 09/01/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Угу, ваше Ну тогда и т ся сам с собой c анекдот ... весь текст скрыт [показать]
     
  • 2.14, Crazy Alex, 17:57, 08/01/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –6 +/
    Гитхаб с руби - это так себе энтерпрайз Со джавой спрингом я подобных уязвимост... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Лютый жабист__, 18:41, 08/01/2017 [^] [ответить] [смотреть все]  
  • –5 +/
    Prepared statements на любом языке это кал Приходится писать их 100500 однотипн... весь текст скрыт [показать]
     
  • 3.19, Алексей Морозов, 18:41, 08/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Известный мне open source пример 8212 querydsl http www querydsl com stati... весь текст скрыт [показать]
     
     
  • 4.31, Crazy Alex, 23:48, 08/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Это вообще не то Во-первых, я говорил о том, что подобная штука должна быть чем... весь текст скрыт [показать]
     
     
  • 5.49, Алексей Морозов, 16:28, 09/01/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Реальность, данная нам в ощущениях, явственно говорит, что в существующие SQL RD... весь текст скрыт [показать]
     
  • 2.42, angra, 13:04, 09/01/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Когда уже невежды узнают про ограниченность возможностей prepared statements и п... весь текст скрыт [показать] [показать ветку]
     
  • 2.47, mimocrocodile, 15:12, 09/01/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    И тут ты такой приводишь пример использования prepared statements с задаваемой п... весь текст скрыт [показать] [показать ветку]
     
  • 1.32, Вы забыли заполнить поле Name, 01:55, 09/01/2017 [ответить] [смотреть все]  
  • –1 +/
    > анализ которой показал, что метод упаковки сводится к сжатию кода при помощи Zlib::Inflate::inflate и применению операции XOR с предопределённым ключом.
    > после распаковки было выяснено, что большая часть кода написана на языке Ruby

    Я правильно понял, что выявивший уязвимость определил ключ и получил код?

    > По мнению исследователя безопасности, код, отвечающий за работу web-сервисов, основан на реальной кодовой базе github.com, gist.github.com, render.githubusercontent.com и api.github.com.

    Как он это понял, если код перечисленных сервисов закрыт?

     
     
  • 2.39, Аноним, 05:49, 09/01/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Правильно, определять надо путем drop table students без лишних церемоний, это н... весь текст скрыт [показать] [показать ветку]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2016 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by BSH TopList