Привет, друзья! Я надеюсь, что у вас все хорошо, и вы работаете над своим материалом. У нас довольно много времени из-за пандемии, и, к счастью, мы являемся одной из самых редких групп людей, которым это нравится (я имею в виду людей из баунти и т. Д.). Как вы можете видеть в заголовке этого блога, он основан на постоянных дебатах о том, нужны ли вам некоторые знания в области программирования, или вам нужно действительно хорошо в них разбираться, или это нормально, даже если у вас есть хорошие знания нескольких языков программирования. Я считал, что пришло время убрать все с моей стороны, и вот мы здесь! Прямо с этой статьи :)

Что ж, я разделил это чтение на три части. Что происходит, когда :

  • Вы совсем не разбираетесь в программировании и можете читать строки только на простом английском / математике.
  • Вы понимаете основы программирования и можете читать, что происходит в кодах, но не можете как-то это записать.
  • Вы одинаково хорошо понимаете и пишете коды.

Это поможет нам лучше понять эту тему, и люди, попадающие во все три категории, смогут понять ее. Прежде чем закончить тему, я также выскажу свою точку зрения. Позвольте мне прояснить это здесь: это полностью мое мнение, и ваши мысли могут быть разными. Я полностью это уважаю :) Давайте продолжим с этим вступлением.

Хотите прочитать эту историю позже? Сохраните это в журнале.

Давайте обсудим первый пункт. Предположим, есть кто-то, кто не умеет кодировать и не может понять применяемые структуры кода и алгоритмы. Таким образом, весь код приложения будет работать для него / нее как обычные английские / математические уравнения. Что ж, вы все еще можете найти ошибки, такие как бизнес-логика / раскрытие конфиденциальных данных, но, если я буду честен, в наши дни это невысокие проблемы, пока вы не углубитесь в поисках чего-либо. Даже после этого тебе нужно немного везения, не так ли? Правильно, вам многого будет не хватать. Плюсы и Минусы для этой категории:

Плюсы: нет

Минусы: вы не можете найти серьезные ошибки, так как не понимаете, что на самом деле происходит за кулисами приложения. Вы не сможете обойти практически любые ограничения, например брандмауэры. Вместе с тем у вас будет очень меньше шансов найти ошибки по сравнению с людьми, имеющими знания в области программирования. Кроме того, вам нужно будет зависеть от автоматизированных инструментов, которые были написаны давно, и почти каждый парень (который не может писать свой собственный код) использует тот же инструмент, который вы будете использовать, шансы снова уменьшились. Смотри, столько лазеек :(

2-й пункт: у вас есть некоторые познания в программировании и вы понимаете коды, даже если не умеете их писать. Вы можете догадаться, что происходит в написанном там коде. Отличные новости! вы, по крайней мере, на несколько шагов впереди, если не намного, из группы людей, упомянутых в первом пункте. Здесь могут быть условия, например, люди все еще изучают программирование или у них есть некоторые знания, полученные во время учебы в колледже. Кроме того, могут быть люди, которые получили знания о кодах после того, как просто визуализировали их, поскольку они просматривают почти те же коды в течение нескольких лет. Что ж, у вас больше шансов найти несколько (если не много) очень хороших ошибок. Например, если вы понимаете, как работает DOM (объектная модель документа), вы можете посмотреть глубже и использовать DOM XSS там. Точно так же, если вы знаете, как работает php, вы можете проверить некоторые ошибки более высокого уровня, например инъекции и выполнение кода. Плюсы и Минусы этой категории:

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

Минусы: даже если вы понимаете коды, обратите внимание, что вы не можете их написать. Так что вы все еще отстаете от людей, которые могут написать это для своих целей. Поскольку вы не можете писать свои собственные инструменты, вам все равно придется много раз использовать автоматизированные инструменты (меньше, по сравнению с людьми из первой категории), написанные другими парнями, и, как я сказал ранее, автоматизированные инструменты вам не сильно помогут. Вы явно впереди многих ребят, но еще есть над чем поработать :)

Наконец, у нас есть наша 3-я категория, вы одинаково хорошо читаете почти все типы кодов и пишете их. GZ! Вы уже выиграли половину битвы! У вас есть огромное преимущество перед людьми, которые не умеют писать коды. Поскольку вы знаете, как кодировать (здесь я предполагаю, что вы знаете хотя бы один язык сценариев, например, Bash, Python или Go), вы можете писать свои собственные инструменты, автоматизировать их и использовать их таким образом, чтобы вы получили результаты намного раньше, чем другие. даже добраться туда. Вместе с тем, если вы знаете любой из этих языков: Java, C или C ++, то вы попадете в категорию 1337, если начнете находить ошибки. Итак, плюсы и минусы этой категории. Минусы! Минусы! Действительно? Ни за что!! Есть только плюсы:

Плюсы: все в ваших руках. Предположим, вы застряли где-то между использованием XSS, для реализации которого требуется небольшой кусок JS. Вы можете написать код за считанные минуты и попробовать его там. Даже если с первой попытки это не сработает, вы можете попробовать несколько раз, так как знаете, что там может сработать. Точно так же вы хотите что-то автоматизировать, но не хотите использовать заранее написанные инструменты. Просто возьмите свою систему и напишите сценарий на любом языке сценариев. Кодирование во всех смыслах упрощает задачу :) Итак, вы далеко впереди многих людей из других категорий.

Что ж, теперь, я думаю, все довольно ясно. Как уже упоминалось, я немного расскажу об этом. Я надеюсь, вы все понимаете, что только 5% (максимум) багантеров на самом деле успешны, и что, по вашему мнению, у этих больших парней есть лишнее? Что ж, очевидно, что их успех предполагает нестандартное мышление, но я почти уверен, что 95% из этой группы 5% являются блестящими программистами. Они просто напишут инструмент автоматизации и возьмутся за множество мелких вещей. Точно так же они заходят очень глубоко и в любой точке подозрения они используют свои навыки программирования. Кроме того, если вы посмотрите на эксплойты, написанные для поиска нулевых дней, вы обнаружите, что многие из них написаны на C, потому что на нем встроены системы и ядра. Вы всегда можете найти их в базе данных взлома Google :)

Дело в том, что вам действительно нужно изучить. Что ж, вы можете начать с C / Python. Java - тоже очень хороший выбор, но не будет иметь большого значения при работе с веб-приложениями (исключение - десериализация). Однако это тоже отличный выбор. Наряду с этим необходимо изучить JavaScript. Это поможет вам найти множество сложных ошибок. C очень удобен также при эксплуатации переполнения буфера и бинарных операций. На мой взгляд, bash отлично подходит для автоматизации вашего процесса, и если вы хотите написать инструмент, используйте GO. Python также отлично работает, и его довольно легко изучить и внедрить. Просто запомните одно, изучая их: выучите один язык и переходите на другой. Обучение - это процесс на всю жизнь. Это марафон, а не спринт :) Не торопитесь и добавляйте их один за другим. Вам понравится путешествие :)

Этим последним штрихом я закончу чтение здесь. Я не упомянул ни одного ресурса для изучения языков, и оставляю на вас, как вы его исследуете. Есть много мест, где можно научиться практически всему. Просто не торопитесь и наберитесь терпения. Но вы, безусловно, можете попробовать и проверить, работает ли он для вас :) Если вам понравился этот блог, поделитесь им с друзьями. Поделиться - это забота :) Кроме того, я буду очень признателен, если вы предложите мне или порекомендуете что-то, связанное с этой темой. Вы можете связаться со мной в twitter 24 * 7.

Будьте осторожны, удачного взлома!

Adios ❤

Twitter: @ manasH4rsh

📝 Сохраните эту историю в Журнале.