• XSS.stack #1 – первый литературный журнал от юзеров форума

Так какой язык?

grozdniyandy

White-Hat
Premium
Регистрация
11.08.2023
Сообщения
522
Реакции
677
Гарант сделки
2
П.С. Я программирование не знаю и всё что напишу может быть ошибочным

Хотелось бы изучить такой язык, который поможет для находки новык типов "проблем" или уязвимостей.

Например, в ПХП есть нулл байт и эта тема связана с СИ и вроде это всё ведёт к ассембли(ер) (там вроде нужно показать конец стринга). Или тот же реквест смагглинг, смтп спуфинг и тп как по мне системные проблемы нежели проблемы веб-а. Конечно сам веб интересен и быть "экспертом" довольно сложно, типо чтобы везде все скули, рце-шки найти и тп. Но как бы я не поступил, я знаю что итогом всего будет находка уязвимостей не в продуктах, а находка новых типов уязвимостей, о которых никто не знал, либо знали но были только возможны в теории.

Что мне такое изучить, чтобы я мог писать веб эксплоиты (запросы туда сюда), +- понять ассембли(ер), мог понять то как строятся процессы которые с ОС связаны в целом. Можете ответит в такой форме "Для винды лучше этот язык, а для линукса тот"

Я понимаю что таких тем не мало, но сомневаюсь что кто-то задавал вопрос идеального языка в котором ты бацнешь веб и следовательно ОС. Мне нужна кнопка "круче тебя никого нет" кароч.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Сейчас JS востребованный, на нем и бек и фронт держится. Так же и приложение тот же клиент стима на Реакте, Дискорд на Electron, большинство интерфейсов в играх это вебвью(браузер) к примеру cs2 и когда была rce которая выполняла тег <script> и могла юзеру запустить код удаленно.
PHP на мой взгляд уж старый слишком и самое большое кол-во уязвимостей почему то с ним находят.
 
Не забивай голову, хочешь понять, что такое компутер и как он работает (от процессора -> шины -> памяти и до переферии) учи С. Асм как приложение к С, наглядно показывает как работает проц.
Ос вообще тут не при чем, на базовых парах. От проца до вэба большой путь, хорошо иметь представление о нем. Фундамент надо знать, как по мне. Хотя веротнее после этого у тебе перестанет стоять на вэб :)
Не знаю ни кого кто мог-бы сказать, желею, что выучил C. Так-же предерживаюсь мнения, что каждые 3-5 лет надо братся за новый язык (хотябы базово), что-бы не деградировать.
Относительно новых багов и вэба, фазинг с поиском необычной рекции, а веб реквесты писать можно хоть на GO.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
П.С. Я программирование не знаю
Теперь мы знаем, что ты скрипт-кидди, в этом нет ничего зазорного всеми ими были, чем быстрее пройдет этот этап, тем лучше. В любом случае нужно знать 1 компилируемый язык, и 1 интепретируемый. А так к слову люди на одном языке по 10 лет пишут. Программирование это всего лишь инструмент. Соотвественно под каждую задачу свой инструмент.
Хотелось бы изучить такой язык, который поможет для находки новык типов "проблем" или уязвимостей.
Такого языка не существует. Хотя я могу предложить тебе в контексте этих задач изучить GraphQL
новых типов уязвимостей, о которых никто не знал, либо знали но были только возможны в теории.
Чтобы находить такие проблемы прежде всего надо знать очень хорошо язык, а когда ты знаешь очень хорошо язык, ты сможешь абузить, какие-то конструкции языка и находить новые типы уязвимостей. Так же читать спецификации языка и смотреть что в спецификации написано, а почему оно так написано ,а реализовано не так итд.
Что мне такое изучить, чтобы я мог писать веб эксплоиты (запросы туда сюда)
Если бы этот вопрос был задан 20 лет назад я бы сказал изучай Perl , для автоматизации самое то. К примеру Python есть не везде, а вот Perl как и TCL практически везде. В общем то тебе нужен просто язык для автоматизации я бы порекомендовал тебе изучить Python или Ruby.

Стандарный набор вебера это PHP + SQL + JavaScript
 
Стандарный набор вебера это PHP + SQL + JavaScript
Стандартный набор вебера 10 лет назад, ну или на галерах. В крупных компаниях стандартный набор вебера это сюрприз: C++ / Rust / Scala / etc. (нередко ещё Java встречается), Python, JS & TS (React / Vue / Angular / etc. для отрисовки в браузере), Java / ObjC и/или Kotlin / Swift соответственно (если нативно под мобилки) или всё тот же TS с реакт нативом например, это из распространнёных языков, вы вполне можете встретить и какой-нибудь Dart например.
Из субд нередко своя NewSQL (YDB у яндекса, google spanner у гугла, и так далее), если нет, то часто postgres совместимая (cockroachdb, yugabytedb, etc.). Как правило большой объем данных хранят в nosql базах по типу mongodb, cassandra (или совместимые с ними, например scylladb) и тд., для статистики и аналитики нередко юзают тот же clickhouse.
Бекенды как правило распределенные, то бишь это не один сервер, а много, соответственно им нужен консенсус хотя бы для генерации айдишников, а ещё нужно обмениваться сообщениями. Для консенсуса очень часто юзают apache zookeeper, для обмена сообщениями как между собой, так и между другими микросервисами юзаются месседж брокеры вроде activemq, rabbitmq, apache kafka, apache pulsar и так далее, для кеширования либо memcached (редко), либо redis (часто, он так же может юзаться как месседж брокер), если вместо сообщений нужен постоянный стрим, то apache flink можно взять например. Если нужно именно rpc, то как правило юзают grpc, впрочем protobuf'ы тоже частенько юзаются для сериализации внутренних сообщений передаваемых через месседж брокеры, хотя сообщения могут передаваться в любом формате, в том же json например. Ну и так далее, и это мы лишь самую базу бекенда разобрали, как видите, стандартный набор вебера может очень сильно отличаться в зависимости от того, где и на кого вы работаете.

Программирование это всего лишь инструмент. Соотвественно под каждую задачу свой инструмент.
Такого языка не существует.
👍
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Стандартный набор вебера 10 лет
Не соглашусь, большая часть сайтов в интернете на php сделаны, в контекста веб-хакинга имхо нужно знать пых. Это сейчас мода пошла все на javascript делать со своими фреймворками и nodejs. Базы да, бывают разные но SQL нужно знать. Дальше уже прорабатывать на конкретной СУБД инъекции, включая и nosql инъекции.

Ты забыл еще написать про Go.... В вебе C++ / Rust / Scala ? Это где на бекенде? Я видел конечно либу с помощью который можно делать полноценный сайт на С++ но это извращение.

Java, да распространена в корпах её тоже имеет смысл изучать.

А так тут есть рейтиг языков программирования

Даже тиоб на PHP
 
Ты забыл еще написать про Go.... В вебе C++ / Rust / Scala ? Это где на бекенде? Я видел конечно либу с помощью который можно делать полноценный сайт на С++ но это извращение.
Go сейчас потихоньку уходит в прошлое, на нём в основном пишут внутренние тулзы. C++ используется в яндексе, тиньке, гугле, фейсбуке, даже бекенд телеги на плюсах написан, ну и тд (вообще весь фаанг использует плюсы). Кстати яндекс выкладывает некоторые свои фреймворки в паблик, например userver. Scala тоже много где юзается, например, в сбере, Rust всё в том же тиньке, а ещё бекенд дискорда на нём написан полностью (оффтоп, на раст сейчас вообще много чего переписывается, гугл переписывает многие свои сервисы с плюсов на раст, майки тоже его уже во всю юзают, некоторые дрова уже были переписаны на раст).

Про полноценный сайт, большие современные сайты делаются не так, как ты думаешь, им вообще не нужен php, от сервера требуется отдавать лишь статическую инфу, буквально, потому что весь рендер происходит на стороне клиента в зависимости от ответов бекенда, к которому фронт и обращается. На пхп в основном написаны старые сайты. Конечно никто не запрещает писать и новые сайты на пхп различным интузиастам и фрилансерам, но крупные IT компании активно избавляются от пхп, с развитием js и появлением фреймворков по типу реакта он просто стал больше не нужен.

И того, чтобы сделать полноценный сайт, сегодня тебе нужен реактивный фронтенд фреймворк + бекенд фреймворк чтобы написать апи, и бекенд фреймворков сегодня уже как грязи (под плюсы начиная с boost.beast, заканчивая да тем же userver'ом, под раст actix web, tower, axum и так далее, ну ты понял). =)

Edit: Не пойми меня неправильно, пхп всё ещё хорош для небольших сайтов, ибо на нём достаточно быстро можно скляпать сайт для скама например, но даже здесь его уже потесняет питон, и как видишь по рейтингу, он уступает уже даже Delphi. =)
Edit 2: Про Go, язык уходит в прошлое в плане высоконагруженной бекенд разработки, почему именно очень хорошо разъясняет статья от разработчиков дискорда, в остальных сферах он возможно популярен, но из-за своего сборщика мусора Go сильно уступает тем же плюсам и расту и проседает при высоких нагрузках.
 
Последнее редактирование:
Встречал такое утверждение, что на GO можно сделать одно но только одним путём, а на C# например можно сделать это поразному. Правильно ли это утверждение? И почему ни кто не говорит про C# ? Неужели гомно немодно?
 
П.С. Я программирование не знаю и всё что напишу может быть ошибочным

Хотелось бы изучить такой язык, который поможет для находки новык типов "проблем" или уязвимостей.

Например, в ПХП есть нулл байт и эта тема связана с СИ и вроде это всё ведёт к ассембли(ер) (там вроде нужно показать конец стринга). Или тот же реквест смагглинг, смтп спуфинг и тп как по мне системные проблемы нежели проблемы веб-а. Конечно сам веб интересен и быть "экспертом" довольно сложно, типо чтобы везде все скули, рце-шки найти и тп. Но как бы я не поступил, я знаю что итогом всего будет находка уязвимостей не в продуктах, а находка новых типов уязвимостей, о которых никто не знал, либо знали но были только возможны в теории.

Что мне такое изучить, чтобы я мог писать веб эксплоиты (запросы туда сюда), +- понять ассембли(ер), мог понять то как строятся процессы которые с ОС связаны в целом. Можете ответит в такой форме "Для винды лучше этот язык, а для линукса тот"

Я понимаю что таких тем не мало, но сомневаюсь что кто-то задавал вопрос идеального языка в котором ты бацнешь веб и следовательно ОС. Мне нужна кнопка "круче тебя никого нет" кароч.
Начни с выстраивания методологии. Определи для себя сначала приоритеты - бинарные уязвимости либо веб. Бинарные - это база С и ассемблера + пара курсов по реверс-инжинирингу, где обьяснят как реверсить и что искать + основы OSI и строения сети (хотя они являются по сути общей базой). Если веб - пара курсов по OWASP + база в виде PHP и Python.
 
Сорри если грубо но:
А веб на небе стоит? (Голос внутри меня:Нет, на облаке лол)
По твоему проблемы с нулл байтами, это проблемы веб-а? Нет конечно, но при этом испольуется для веб атак, это проблема системного уровня.
Любое приложение или веб сайт это комплексная система. Тем не менее при изучении инфраструктуры стараются выделять отдельные направления и поиск уязвимостей в них: уязвимости ОС, БД, сети, веба. Конечно подходы будут пересекаться в какой-то части, но есть и различия. Определи, что тебе интересно и начни вырабатывать под это базу. После того как освоишь какое-либо из этих направлений, можешь расширять стек и захватывать соседние компетенции просто добивая свои знания недостающими деталями.
 
Сорри если грубо но:
А веб на небе стоит?
По твоему проблемы с нулл байтами, это проблемы веб-а? Нет конечно, но при этом испольуется для веб атак, это проблема системного уровня.
Примерно так тебя и понял, когда отвечал тебе выше. Я читаю, что тебе очень хочется именно асма предостерегаю от него без C, на голую голову это сложно поместить, это машнный код, я ни знаю ни кого (_indi?) кто писал бы исключительно на асм в этом нет практического смысла, это просто не удобно (шеснадцатеричные данные и невероятный объем команд к процессору) для этого и придуманы языка более высокого уровня что-бы ты не сошел с ума от тонны однотипных операций к процессору и преоброзований удобной инфы для тебя в удобный формат для него. Начав с С ты сможешь разобратся с базой. Напомню, на нем написано всё, а если и не все то 99% всего. На сколько я понял тебя интересует опрос наследования, более глубинные вещи чем просто чей-то говнокод на php без должной фильтрации/типизации. Я считаю, что картинка ниже это вообще основа основ (все начинается с процессора, по тому тебе и интересен асм) ,а без понимания архитектуры вообще сложно говорить о безопасности. Просто попрубуй найти хоть один язык программирования написанный не на C и компании.
1920px-Priv_rings.svg.png
 
Последнее редактирование:
Встречал такое утверждение, что на GO можно сделать одно но только одним путём, а на C# например можно сделать это поразному. Правильно ли это утверждение? И почему ни кто не говорит про C# ? Неужели гомно немодно?
C# это дотнет, а если знаешь дотнет это хорошо, например powershell для шустрой автоматизации, а тот же шарп или, прости хосспаде, бейсик для компилируемых творений, ну и кусочек веба зацепишь в виде asp, но последнее уже мертво.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх