как определить пол по таблице
»пидоры помогите электричество провода
Есть ли туть электрики?
Добрый день, уважаемые, проблема такая:
Делаю электрику в квартире. Все посчитал, посмотрел в интернете много уроков как собрать распред дерьмо щит, получилось следующее:
взлом информационная безопасность sql длиннопост geektimes habrahabr текст много букв СНИЛС дыра story PostgreSQL obrnadzor инн рособрнадзор
"https://habrahabr.ru/post/347760/"
Одиноким вечером, глядя на свою пустую зачётку и осознавая, что конец близок, я снова задумался о том, как бы мне сейчас собрать сумку, или даже просто рюкзак, положить туда рубашку, шорты и свалить в тёплую страну. Было бы хорошо, да вот с дипломом живётся намного лучше. Во всяком случае, мне всегда так говорят.
Также часто слышал много историй про людей, которые приходили на собеседования с красными дипломами МГУ, но при этом абсолютно не разбирались в своей специальности, а потом на корпоративах признавались, что диплом у них купленный.
Но времена сейчас другие, сейчас 21 век, век больших возможностей, любой работодатель, который умеет пользоваться мышкой и знает, как выглядит браузер на рабочем столе, может проверить данные диплома. Каждый диплом, который выдаётся учебным заведением, теперь регистрируется в едином реестре, доступ к которому есть у каждого через сайт Федеральной службы по надзору в сфере образования и науки.
Для получение информации о документе об образовании достаточно просто заполнить форму, передвинуть слайдер и нажать кнопку. Вам либо покажут информацию о документе, либо скажут, что такого нет (но ещё рано обвинять соискателя в обмане, мало ли, что могло произойти).
Ну и пока я смотрел на эту форму, решил я с ней поиграться. Повводил всякой чепухи, и бац — на поле, в которое было введено 1', я получаю такой response:
<h2>Произошла ошибка</h2><p>SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "4"LINE 6: ...me) = UPPER('1'')) AND (doc.education_level_id = '4') AND (U... ^</p>
Голый SQL Injection. Очевидно, что задачи продумать обработку ошибок перед разработчиком не было. Задача была сделать сервис, который работает. Сервис, который является гарантом. Так одинокий вечер превратился в весёлую одинокую ночь.
Ещё будучи подростком я очень любил всякие крутые истории про хакеров, а после того, как решил заняться программированием, изредка почитывал и интересные статьи по взлому и прочему. Так что то, что нужно делать дальше — я знал.
Так как разработчик этого сервиса дал нам удовольствие видеть ещё и часть запроса, то мы можем с уверенностью предположить, что это SELECT запрос. Теперь нам нужно как-то обнулить действие запроса, записанного в php-скрипте, а потом с помощью переменной вставить свой.
Для обнуления запроса достаточно просто добавить невозможное условие и закомментировать последующие строки запроса, что-то наподобие:
Инъекция
...me) = UPPER('1') AND (1=0)) — ')) AND (doc.education_level_id = '4') AND (U…
В ответ просто пришло сообщение о том, что документ не найден.
Также пробовал использовать вместо невозможного условия, наоборот, очевидные. А именно пробовал искать какой-либо документ по id. Писал id=1, id=1024 и прочее, но результатов не дало. Видимо, id давно перевалило за тысячи (спойлер: за миллионы).
Также я совершенно не надеялся на то, что запрос придёт без ошибки. Я был уверен, что пробелы будут экранироваться, удаляться, запрещаться, ещё что-нибудь. Ведь в форме на странице поиска ввести фамилию с пробелами невозможно. Но всё оказалось в разы проще.
Ну а теперь бы хотелось вытащить что-то действительно интересное. Изменить структуру ответа мы не можем никак, то есть если в запросе были, например, SELECT id, name, count, то так оно и останется. Значит надо подстраиваться, а для начала понять, какие же данные запрашиваются из БД, и, главное, сколько? Существует много способов узнать количество полей, но мне помог только ORDER BY. Как это работает?
ORDER BY сделан для сортировки, но его синтаксис не требует обязательно указывать имя поля, достаточно указать его позицию в запросе. Если указать номер позиции больше, чем количество запрашиваемых полей — то будет ошибка. Методом перебора можно подобрать количество полей. Их оказалось 55.
Хочется понять, с чем же мы работаем, что это за база данных такая? Предположим, что это MySQL, в MySQL есть функция Version(), которая возвращает версию БД. Применим:
Инъекция
...me) = UPPER('1') AND (1=0)) UNION SELECT 1,version(),тут ещё 53 поля, типы которых ещё надо определить методом подбора — ')) AND (doc.education_level_id = '4') AND (U…
В ответ пришёл JSON, в котором было:
PostgreSQL 9.1.2 on x86_64-alt-linux-gnu, compiled by x86_64-alt-linux-gcc (GCC) 4.5.3 20120111 (ALT Linux 4.5.3-alt1.M60C.1), 64-bit
Отлично, мы знаем систему, версию БД (под неё вроде даже эксплоиты были). Поле для действия расширилось. Узнаём, как выглядит запрос:
Инъекция
Ответ:
"SELECT "doc".*, "doc_type"."type", "stat"."name" AS "status", "level"."name" AS "level", "rec"."name" AS "rec_name", "rec"."surname" AS "rec_surname", "rec"."patronymic" AS "rec_lastname" FROM "documents" AS "doc" LEFT JOIN "document_types" AS "doc_type" ON doc_type.id = doc.document_type_id LEFT JOIN "document_packages" AS "dp" ON doc.document_package_id = dp.id LEFT JOIN "documents_status" AS "stat" ON stat.id = doc.status_id LEFT JOIN "education_levels" AS "level" ON level.id = doc.education_level_id LEFT JOIN "recipients" AS "rec" ON rec.id = doc.recipient_id WHERE (dp.status = 3) AND (doc.organization_id = '573') AND (doc.year = '2018-01-01') AND (UPPER(rec.surname) = UPPER('1')) UNION SELECT 1,current_query(),'3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '01.01.1970', '01.01.1970', '21', '01.01.1970', '23', '24', '25', '26', '01.01.1970', '28', '29', '30', '31', '32', '33', '28-05-2004 11:11:59', '35', '36', '28-05-2004 11:11:59', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55' -- ')) AND (doc.education_level_id = '4') AND (UPPER(doc.series) = UPPER('1')) AND (doc.number = '1') LIMIT 1"
Вся картина перед нами.
Попробуем узнать, что же за таблицы есть во всей базе данных:
Инъекция
Таким образом получили все таблицы. Узнаём столбцы каждой таблицы следующим образом:
Инъекция
Итак, зная структуру базы данных, я написал скрипт на Питон и выкачал все самые интересные на мой взгляд данные. А именно:
Таблицу с дипломами об образовании (серия, номер, год поступления, год окончания, СНИЛС!, ИНН!!, серия и номер паспорта (честно говоря, у всех записей поля пустые, но сам факт!), дата рождения, национальность (зачем?), учебная организация, выдавшая документ), таблицу с гражданами с образованием (там всё проще: ФИО и всё), таблицу с пользователями системы (стандартно, логин, email, и, НЕОЖИДАНО, md5 хэш пароля, хоть не сам пароль), отдельная таблица admin с одной записью (так же: логин, хэш пароля и прочее), таблица с информацией об учебных заведениях (кто начальник, email, телефон, лицензия — в общем всё, что и так есть в открытом доступе) и ещё кучу вспомогательных таблиц.
По объёмам получилось: около 14 000 000 документов об образовании, около 14 000 000 записей с данными о бывших студентах, 1322 пользователя системы, 1 админ, который логинится по будням в системе, видимо, когда на работу приходит, 3391 учебное заведение и горы непонятной информации типа ОКОГУ и прочее. База весом 5 гб.
А теперь представьте, сколько времени это качалось. Вы думаете, кто-то заметил? Может быть сервис резко отключился, ip заблокировали или ещё что-то? НЕТ!
Конечно, целью не является использовать эту информацию в корыстных целях (да я и не представляю, как). Иначе бы я не писал статью здесь. Но и писать лично администрации сайта или кто там за него отвечает я тоже не горю желанием, хватило истории про Микротех.
Дополнительно решил проверить хэши по радужным таблицам. Не уверен, конечно, что они хэшировались именно голым md5, но, во всяком случае, в открытых базах данных совпадений ни к одному хэшу не нашлось. Или я что-то не умею.
Мог бы я продолжить и получить доступ в систему? Смог бы я сам изменять записи и добавлять свои? Вполне возможно, но я решил этого не делать. Да и сессию надо закрывать, без диплома-то никак…
новости Марс планеты космос
НАСА впервые обнаружило кристаллы серы на Марсе
Ученые НАСА обнаружили кристаллы серы на Марсе, когда аппарат Curiosity случайно расколол камень. Марсоход случайно заехал на целое поле таких камней, сообщает Лаборатория реактивного движения НАСА.
Хотя сульфаты достаточно распространены на Марсе, это первый случай, когда сера была найдена на Марсе в чистом элементарном виде. Еще более захватывающим является то, что канал Гедиз Валлис, где Curiosity сделал свое открытие, покрыт большим количеством похожих камней. Это означает, что каким-то образом элементарная сера в некоторых местах на планете может быть в избытке.
В прошлом на Марсе находили минералы на основе серы, но эта порода состоит из чистой (элементарной) серы. Это минерал без запаха, который на Земле создается различными геологическими процессами, включая вулканическую и гидротермальную активность. «Найти поле камней, состоящее из чистой серы, — это как найти оазис в пустыне», — сказал ученый проекта Curiosity Эшвин Васавада.
Чтобы исследовать находку, ученые с помощью роботизированной руки Curiosity и рентгеновского спектрометра альфа-частиц определили состав камня. Команда ученых пока не знает, какие процессы могли привести к образованию элементарной серы на Марсе, поэтому ищут подсказки в скалах и окрестностях.
Марсоход Curiosity рассмотрел эти желтые кристаллы элементарной серы с помощью своей камеры Mast Camera, или Mastcam, и скорректировал цвет изображения, чтобы ученые убедились в своих выводах. По словам одного из них, элементарной серы на Марсе «быть не должно».
Отличный комментарий!
dev реактор joyreactor api
Пара функций api
По многичсленным просьбам создателей баянометров в лице ExtraDJ были добавлены два вызова, которые в теории должны упростить ему жизнь:1) api/changedPosts - возвращает список постов, контент которых был изменён в последние 24 часа. Кэшируется на 1 час. В поле main_blog_ids возвращает список ид тегов, которые стоят у поста. Чтобы определить имя тега по его ид - можно использовать:
2) api/blogId/<номер тега> - возвращает информацию о теге по его id.
Некоторые теги у нас слиты в один. Например, "политика" и "политота" - это по сути один тег. Посты с ними будут возвращать одинаковый ид главного синонима, хотя в самом посте будет писаться то написание, которое было выбрано пользователем.
joyreactor парсер реактор скачать JoySave
JoySave v26
Предлагаю всем заинтересованным скачивалку картинок.
Умеет качать целый список разных тегов, для каждого группирует картинки в папки по некоторому количеству страниц этого тега на реакторе, умеет само паковать в CBZ (по сути - в ZIP, только переименованный).
Описание есть в самой проге. Там по-русски. Но опишу немного и тут.На вкладке Main таблица заполняется ссылками для сохранения. Копируем адрес в строке адреса браузера, вставляем в клетку URL. Например, переходим в раздел "Котэ". Получится https://joyreactor.cc/tag/котэ. Хотим больше котиков? Переключаем на "Бездну" и копируем. Получается https://joyreactor.cc/tag/котэ/all. Вобщем, понятно. Но если копируете не на последней странице, то в адресе будет номер страницы, например https://joyreactor.cc/tag/котэ/best/2698. Вот его не надо. Номер подставляться будет автоматически, так что номер и последний "/" сотрите.
В столбцах Begin и End вводим номера страниц с какого по какое сохранять. Столбец Folder - это название папки, куда будет сохраняться картинки. Т.е. если введем "SuperCat", то будет сохраняться в папке Pic/SuperCat. Если оставить пустым, то будет имя папки будет номер из столбца No.
Если пустое хоть одно из полей [URL, Begin, End], то строка пропускается. Это удобно, чтоб держать записи на будущее. Например, скачали котиков до страницы 200. Очистим поле Begin, и у нас сохранен адрес и последняя скачанная страница. Когда накопятся новые картинки, то в поле Begin поставим те же 200, а в End уже, например, 250.
Имеет смысл закрыть прогу после заполнения таблицы, чтоб сохранила всё. А то вдруг глюканет и вылетит без сохранения!
Крутилки на главной странице без надобности не трогайте, они сами меняются.
Больше описаний в самой проге на вкладке Help. Не буду копировать сюда весь текст - его много. Только настроек немного еще опишу.
Cookies нужны чтоб качать картинки из-под своего аккаунта (например, чтоб качать избранное, или секретные разделы). Куки можно взять из расширений браузера. Например, для Хрома - Cookie Editor. Достаточно только joyreactor_sess3=значение_этого_поля.
Далее крутилка Timer. Это сколько миллисекунд минимум задержки между запросами (получением постов, скачиванием картинок и прочее). Не ставь мало - заблокируют.
Pages in folder - сколько страниц группируется в подпапку. На мой вкус 50 - оптимально. Больше за раз посмотреть напряжно.
К сожалению, под Linux почему-то не работает HTTP-прокси. SOCKS работает. Прога не многопоточная, потому часто "задумывается", особенно на тяжелых картинках и при упаковке в CBZ. И вообще, это то еще глюкалово, написанное по-быстрому на коленке.
Пишите замечания, ругательства, пожелания.
сыграем в игру?
Тест на гомосексуальность.
Небольшой тест чтобы выявить нактолько вы гомосексуальны.
Не то чтобы вам стоило сомневаться в своей брутальной гетеросексуальности, в конце концов это всего-лишь очередная возможность посмеяться над тем, как какая-то хрень пытается усомнить вас в том, что незыблемо.
итак тест. простые 10 вопросов. отвечаем, подсчитываем очки.
Да - 1 очко
Нет - 0 очков
1. Просто признайтесь честно, вы гомосек?
2. Ок, но вы ведь занимались сексом с представителями своего пола?
3. Но хотели бы?
4. Занимались ли вы сексом с мужчинами столько же раз, сколько и с женщинами?
5. Вы согласны на секс втроем, если один из участников будет вашего пола?
6. А как насчет оргии?
7. Вы смотрите порно, в котором присутствуют представители вашего пола?
8. Фантазировали ли вы когда-нибудь, чтобы стать гомосексуалистом противоположного пола?
9. Прикасались ли вы к представителю своего пола не вымыв руки после мастурбации?
10. Согласились бы вы на однократный акт гомосексуализма, в любой удобной для вас роли, при условии 100% гарантии неразглашения, в обмен на несоизмеримо огромное денежное вознаграждение?
(Подсчитайте количество очков. Задумайтесь. Сверьте свой результат таблицей результатов в комментах)
трансгендер ебанутым нет покоя новости
Присяжные вынесли решение против отца, пытающегося уберечь 7-летнего сына от смены пола.
Жюри присяжных в Далласе вынесло решение против Джеффри Янгера, который пытается не допустить процедуры химической кастрации для своего сына, которому всего 7 лет.
Это означает, что мать продолжит проведение мероприятий по смене пола ребенка, а отцу предложат "признать наконец", что его сын является девочкой, и обяжут его посещать курсы трансгендеризма.
У Джеффри и его бывшей жены растут близнецы Джеймс и Джуд. До сих пор у родителей была совместная опека над детьми.
Джеффри хотел переоформить ее на себя. Он считает, что жена пытается поменять пол Джеймса против желания мальчика.
Мнение жюри передает права на детей в руки матери. Присяжные приняли свое решение 11 голосами против 1. Судья вынесет окончательный вердикт завтра.
Россия которую мы потеряли политота Копиум для кружка марксистов длиннопост
А давайте еще немного поговорим о "СССР который мы потеряли.
Думаю многим известно что Россия была "Житницей европы" и экспортировала зерно.
Вот табличка с валовым сбором и долей экспорта в нем.
Смотря на эту таблицу сложно говорить о том кто то в этот период исповедовал принцип недоедим но вывезем. Экспорт есть, но это не поло вина и даже не треть от производимого. И даже у экспортно ориентрованных культур : пшеницы и ячменя.Дополнительная ссылка с экселями.
Там же вы можете видеть объемы помощи голодающим в периоды недородов.
Думаю сопоставить графики будет не трудно.
И вот мы имея такие предпосылки задаемся вопросом а че там в СССР с сельским хозяйством.
А все очень плохо. Потому что страна которая до этого худо бедно но обеспечивающая себя хлебом Внезапно испытывает кризисы хлебозаготовок и чудовищные голода с миллионами жертв.
А после начинает закупать зерно из заграницы.В связи с чем возникает вопрос к Любителям ссср. А че с сельским хозяйством ? Какого хера страна которая и без индустриализации была способна обеспечить себя хлебом после оной внезапно стала нуждаться в его Импорте ? Но стоило откатиться формации и на смену мудрым коммунистам пришли отсталые капиталисты. Все нахуй развалили и проебали, но аграрный сектор внезапно смог обеспечить зерном страну и даже экспортировать ?Не правда ли удивительно ? А ведь какую страну проебали. Какого покупателя зерна лишился мир.
Отличный комментарий!
-"Россия, у тебя его нет!"