Уже год пытаюсь вкатиться в тестирование безопасности/bug bounty, и пока безуспешно. То есть иногда что-то получается найти, но крайне редко. Понял что сейчас, спустя этот год, максимум что я могу это фаззить и вхерачивать как можно большее количество всякой херни(вроде https://github.com/swisskyrepo/PayloadsAllTheThings) в как можно большее количество полей ввода(ну или любых изменяемых значений в запросе). Могу находить CSRF, Clickjacking и простые XSS. В теории еще базовые SQL-инъекции, но на практике в живой природе эксплуатируемых запросом OR 1=1 сайтов я не встречал(речь разумеется про сайты где есть багбаунти, причем зарубежные). Пересмотрены все возможные курсы, как русские так и зарубежные по теме Ethical hacking. Освоен на хорошем уровне бурп, плюс установлены плагины, рекомендованные топовыми багхантерами и разумеется полный набор утилит которые стали почти стандартом индустрии: Sublister, dirsearch, MassDNS итд. Прочитаны и стоят в закладках твиттеры ребят вроде fransrosen и thedawgyg. На начальном уровне знаю всего понемногу, в профессии тестировщика без этого никак. Но при этом будучи скрипткидом, неспособным написать и пару строчек кода(не только код, с командами в терминале примерно так же), в упор не могу эксплуатировать вещи требующие написать хоть что-то свое. Да даже обойти эскейпинг XSS: я обычно просто долбаю все десятком самых мощных XSS-полиглотов, и если они не работают то сдаюсь. Понял что даже джуниор разработчик, который про информационную безопасность не знает почти ничего, будет искать уязвимости куда лучше меня, просто за счет знания синтаксиса языка, понимания системных команд. И решил взять таймаут чтобы подтянуть базу, и потом снова попытаться еще раз. Но тут возникает вопрос: а сколько достаточно для того чтобы быть багхантером? На одно только освоение одного языка можно потратить годы(хотя прикинул что для моих целей плотного изучения Питона в течение месяцев 3 должно хватить). А нужно ведь знать хотя бы основы других языков, вроде Java, чтобы ты мог эксплуатировать уязвимости в сайтах где бэк написан на ней. Неплохо ориентироваться в HTML, CSS и JS чтобы эксплуатировать XSS на уровне фронта(помню было так обидно когда сканером нашел валидную XSS, в одном из селекторов, но не смог тогда сам ее раскрутить, потому что нет знаний чтобы стриггерить ее). Подтянуть SQL чтобы полноценно простукивать не только простыми запросами, но и через UNION или через blind SQL injections(кстати на известных сайтах только такие и остались кажется). Хорошо разбираться в строении серверов, уметь самому написать простой сервер. Отлично знать команды в терминале, желательно вообще UNIX-подобные системы на уровне админа. Ну и многое другое что сразу не пришло на ум. Но ведь это по хорошему несколько лет плотного изучения. А я точно знаю что в багхантинге достаточно много народу, с нуля вкатившегося и за полгода-год начавшего успешно этим заниматься(по статистике Hackerone большая часть людей имеет опыт меньше года). Пока составляю себе программу типа: пройти все курсы по Питону и по терминалу на общедоступных сайтах(codecademy/codeschool) https://www.codecademy.com/learn/learn-the-command-line https://www.codecademy.com/learn/learn-python Но не очень понимаю что делать дальше и как это поможет мне эксплуатировать уязвимости в сайтах например на Java. И в каком объеме достаточно того же питона и знания терминала? Стоит ли параллельно проходить курсы по веб разработке(стек HTML+CSS+JS), или в голове после этого будет каша из языков? Заранее спасибо за советы.
Однако, только создал тему и форум тут же подтянул почти такую же, хотя ничего особенно полезного я там не нашел. https://forum.antichat.ru/threads/s-chego-nachat-nabor-znanij.449095/
Как оно работает-я примерно понимаю, умение читать ошибки в консоли браузера, грепать логи бэкенда или даже понять какой коммит разработчика сломал функционал-это навыки необходимые уже на текущей работе(ручное тестирование). Но этого, как оказалось, мало, и нужно судя по всему самому начать писать код(плюс видимо быть админом тоже). Вопрос только в каком объеме. Пока для себя выделил примерно следующее: 1.Первое-терминал, на уровне написания небольших баш скриптов. Текущих знаний терминала хватает на то чтобы работать в системе почти не используя GUI, но этого для пентестинга мало. Пока ищу подходящие курсы/статьи. 2. Питон-несколько месяцев на освоение синтаксиса и умение написать простые однострочные скрипты в том же терминале. 3.Веб-несколько курсов по веб-стеку технологий, с последующим созданием своего небольшого сайта, на котором можно будет учиться/тренироваться, постепенно усложняя его структуру. 4.Еще есть мысли ознакомиться с binary exploitation(самая пока темная для меня тема) http://liveoverflow.com/binary_hacking/ но не факт что она не окажется слишком сложной для моего уровня. Выделяю на это все около 6 месяцев(вечера будней и выходные). Дальше попробую снова заняться непосредственно поиском уязвимостей.
Сначала определись точно в какой области ты хочешь развиваться. Если это веб, то изучение питона тебе мало чем поможет - большинство сайтов написано на php. Если это уязвимости систем, то написание баш-скриптов не даст ясного понимания того как работает ядро (хотя, безусловно, будет полезно). А вообще, багхантинг - дело неблагодарное и ставить цель стать багхантером я бы не стал. Лучше научись что-то создавать, а багхантинг оставь для приятного хобби после работы.
Оно как я это вижу, комплексное, и исходя из тусовки которую приходилось наблюдать например на Zero nights, обычно это и работа пентестером/в СИБ и участие в CTF(я собственно когда-то относительно удачно поучаствовав в CTF и вдохновился темой) и в bug bounty. И несмотря на то что в командных зачетах по CTF часто есть специализация, при формате например jeopardy большинство участников может в одиночку решить и web задания, и криптографию, и pwn таски. Собственно я и хотел бы приобрести минимально требуемый набор знаний во всех областях, а уже потом думать над специализацией. Да, жить с багбаунти сложно если ты не очень хороший спец, но даже моих скромных знаний хватило чтобы уже сейчас получить приятную прибавку к зп. Моя итоговая цель-перейти из ручного тестирования в pentesting(для СИБ вряд ли хватит знаний даже через пару лет). Багхантинг это в моем случае способ тренировки. Всякие WebGoat и DVWA это неплохо, но на живых системах тренироваться лучше.
А, что слышал? Что вообще умеешь. есть какие-нибудь достижения, профиль где-то, видео, пруфы итд. каков твой скилл?
Да я вроде все примерно описал в изначальном посте в плане моих "навыков". Скрипткиддинг, за счет утилит/сканеров/плагинов, которые я старательно вычитывал из всех возможных статей и твитов западных хантеров удается периодически выловить какую-нибудь xss или csrf. Есть в HoF пары достаточно известных компаний(везение, настойчивость и хорошо настроенный сканер, особой своей заслуги не вижу).Дальнейшие детали без полного диванона перед рядом коллег, наверняка посещающих форум, сообщить не выйдет, могу в личку если интересно. Но тема ведь не про это. Мне скорее интересно было послушать мнение опытных людей относительно моего плана развития: или "Sounds like a plan, двигайся как решил", или "Не, ты какую-то херню придумал, надо не так а вот так"