<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Уязвимость, позволяющая осуществить подстановку SQL-кода в G...</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html</link>
    <description>В GitHub Enterprise (https://enterprise.github.com/home), варианте GitHub для предприятий, позволяющем развернуть окружение для совместной разработки внутри корпоративной сети на подконтрольном оборудовании, выявлена (http://blog.orange.tw/2017/01/bug-bounty-github-enterprise-sql-injection.html) уязвимость, позволяющая через отправку специально оформленного запроса выполнить произвольный SQL-код на сервере. &lt;br&gt;&lt;br&gt;&lt;br&gt;В описании уязвимости приводится заслуживающий внимания рассказ об организации работы кода GitHub Enterprise, который во многом пересекается с кодом публичного сервиса GitHub. Пакет поставляется в виде образа виртуальной машины, доступной для бесплатного ознакомительного  использования в течение 45 дней. Исходные тексты скрыты и поставляются в упакованном виде, напоминающем зашифрованный набор данных. Прозрачная распаковка в момент выполнения осуществляется при помощи библиотеки ruby_concealer.so, анализ которой показал для метод упаковки сводится к сжатию кода при помощи Zlib::Inflate::inflate и прим</description>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (xz)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#58</link>
    <pubDate>Thu, 12 Jan 2017 09:52:35 GMT</pubDate>
    <description>&amp;gt; SQL-стейтменты должны формироваться автоматом. Простой, хотя и не гибкий и не всегда &lt;br&gt;&amp;gt; применимый способ &amp;#8212; prepared statements.&lt;br&gt;&lt;br&gt;А какая связь между автоматическим созданием SQL-стейтмента и prepared?&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#54</link>
    <pubDate>Mon, 09 Jan 2017 17:03:17 GMT</pubDate>
    <description>&amp;gt; клоун: если программа работает с внешними данными, то можно подобрать такой их &lt;br&gt;&amp;gt; набор, который приведёт к нарушению корректной работы.&lt;br&gt;&lt;br&gt;Только если автор - дол... и не понял что извне таки натурально могут приехать ЛЮБЫЕ данные. А если автор программы к этому готов - то, собственно, какие проблемы?!&lt;br&gt;&lt;br&gt;Сейчас вообще мода пошла - fuzz&apos;ить программы. Чтобы проверить что это и правда так. Штуки типа AFL позволяют прицельно кроить структуры, чтобы их не отбил первый же фильтр на входе как явно некорректные и они проехали в более глубокие куски логики. А чтоб посмотреть - не сломается ли что еще и там?&lt;br&gt;&lt;br&gt;&amp;gt; Построчно читается банальный текстовый файл? Сделаем несоответствие&lt;br&gt;&amp;gt; размера файла реальным данным, вставим непечатаемые символы, вкл. перевод каретки,&lt;br&gt;&lt;br&gt;Нормально написанная программа увидит что файл битый. И прекратит разбор или пропустит проблемные строки, в зависимости от того какие требования. Ну это если программу писал вменяемый человек а не сишарпер/вебмакака, над которыми стоял надсмотрщик с пл</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#52</link>
    <pubDate>Mon, 09 Jan 2017 15:29:35 GMT</pubDate>
    <description>это, видимо - отсылка к наградам некоторых компаний&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (anonymous)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#51</link>
    <pubDate>Mon, 09 Jan 2017 14:44:00 GMT</pubDate>
    <description>&amp;gt; от prepared statements может просесть производительность. Тот же оракл может очень хорошо &lt;br&gt;&amp;gt; оптимизнуть запрос, ежель имеет конкретные значения, а не ps. Так что &lt;br&gt;&amp;gt; я б поостерёгся от утверждений &quot;SQL-стейтменты должны формироваться автоматом&quot;.&lt;br&gt;&lt;br&gt;Отпимизация случайного возникшего хорошего случая (не забываем, что речь идет о параметрах, формируемых из пользовательсокого ввода) не стоит возникающих из-за нее хлопот. Отпимизировать имеет смысл плохие и средние случаи&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (Ordu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#50</link>
    <pubDate>Mon, 09 Jan 2017 14:40:01 GMT</pubDate>
    <description>Ты с ActiveRecord знаком, деточка? ActiveRecord занимается сборкой текстового sql-запроса, и в частности экранированием. Задумка, примерно как в cl-sql: создать язык изоморфный SQL внутри языка общего назначения, чтобы функция query принимала бы запрос не как текстовую строку, а как более сложную структуру данных, которая бы позволяла библиотечному коду знать где строки которые надо подставить в запрос, а где ключевые слова SQL. И там, и там это достигается тем, что ключевые слова SQL передаются в библиотечный код не как строки, а иным путём. Всё же, что не ключевые слова, рассматривается библиотечным кодом как потенциально вредоносные строки, которые экранируются.&lt;br&gt;&lt;br&gt;Но если лисп позволяет такие извращения в любых масштабах, благодаря тому, что для лиспа код и данные -- это одна фигня, в лисповский синтаксис можно уложить SQL, и написать код, который будет этот SQL компилировать в строку, то ruby -- хоть и довольно мощный язык, но всё же слабоват для подобного. В результате, не любое SQL-выражение можно запи</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (Алексей Морозов)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#49</link>
    <pubDate>Mon, 09 Jan 2017 13:28:08 GMT</pubDate>
    <description>&amp;gt; Во-первых, я говорил о том, что подобная штука должна быть чем-то стандартным и разбираться в базе&lt;br&gt;&lt;br&gt;Реальность, данная нам в ощущениях, явственно говорит, что в существующие SQL RDBMS запросы всовываются в текстовом виде. Да, я знаю, что у многих из таких RDBMS есть альтернативные способы формирования запросов, более структурированные. Однако, речь идет именно об SQL, он ровно такой, какой есть.&lt;br&gt;&lt;br&gt;&amp;gt; Во-вторых, она не решает те проблемы, из-за которых обычно начинают руками генерировать SQL&lt;br&gt;&lt;br&gt;Ещё как решает. Если в объекте, отвечающем за таблицу, есть фиксированный набор методов/пропертей, описывающих манипуляции с полями, то и в формируемый SQL-запрос можно будет затолкать ровно эти поля.&lt;br&gt;&lt;br&gt;&amp;gt; Например, &quot;сунуть в SELECT список полей из конфига&quot;.&lt;br&gt;&lt;br&gt;В этом случае прикладной программист будет, по первости чертыхаясь и жалуясь на непроизводительную трату времени, писать явный разбор входных данных и явный маппинг токенов в разобранном тексте на вызовы DSL&apos;я.&lt;br&gt;&lt;br&gt;Собственно, прямо буквально за соседним столом т</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (mimocrocodile)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#47</link>
    <pubDate>Mon, 09 Jan 2017 12:12:35 GMT</pubDate>
    <description>И тут ты такой приводишь пример использования prepared statements с задаваемой пользователем сортировкой&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#46</link>
    <pubDate>Mon, 09 Jan 2017 11:18:10 GMT</pubDate>
    <description>клоун: Ты в суть проблемы то вник? Они неверно экранировали входные данные. Какие ещё грабли?&lt;br&gt;&lt;br&gt;Грабли - это о другом. Напр в php есть уже 3 функции экранирования (экранирование при выводе в HTML, экранирование для SQL, улучшенное экранирование для SQL). Последнее - как раз те самые грабли. &quot;Руководство по собиранию парашюта. Версия вторая. Исправленная&quot;. Мало того что они накосячили при первой реализации экранирования, так они ещё оставили обе функции. Более того: они использовали пересекающуюся терминологию (слово &quot;экранирование&quot; в обоих случаях) чтобы накосячил прикладной программист. Вот это грабли как они есть.&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость, позволяющая осуществить подстановку SQL-кода в G... (Ordu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/110116.html#45</link>
    <pubDate>Mon, 09 Jan 2017 11:02:15 GMT</pubDate>
    <description>&amp;gt; Пока запрос пишется в текстовом виде, будут существовать ошибки подстановки в него &quot;инъекций&quot;.&lt;br&gt;&lt;br&gt;Бла-бла-бла... Ещё какой всемирный закон ты открыл?&lt;br&gt;&lt;br&gt;&amp;gt; Сколько тебе лет что ты веришь в священные граали, решающие все проблемы лишь фактом своего существования?&lt;br&gt;&lt;br&gt;Сколько _тебе_ лет, что ты никак не можешь излечиться от юношеского максимализма? Если священного грааля не существует, значит не надо, создавая API, думать о том, как бы поменьше граблей туда напихать?&lt;br&gt;</description>
</item>

</channel>
</rss>
