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

Написание скриптов

users_h8

HDD-drive
Пользователь
Регистрация
19.08.2024
Сообщения
45
Реакции
21
Приветствую, читатели! По мере моего продвижения в пентесте, возник вопрос по выборам основных языков для изучения. В качестве основного направления я выбрал именно веб пентест и на данный момент сталкивался с задачами которые требовали от меня написание скриптов на JS. Так же, полазив по интернету я нашел различные видео о том, как пишут парсеры для сайтов на питоне. Складывается мнение, что полезным для меня будет изучение чуть ли не любого языка, но хотелось бы задать вопрос опытным в этом деле людям -> какой язык имеет смысл первым зазубривать на максимум?

Есть у меня стойкое желание научиться самому писать скрипты, без чужой помощи, ибо постоянно лазить по сети в поисках готовых решений мне не кажется интересным. Кроме самого языка хотелось бы ещё узнать за наиболее важные и нужные библиотеки, на которые в первую очередь стоит обратить внимание.
 
Если ты там плотно изучаешь эксплоит чейны в браузере и на уровне сеньор помидор знаешь js и тебе лень учить еще питон то можешь на js все писать через nodejs. Ну а так питон все любят за минимум шаблонного кода. Тебе во всяком случае придется писать свои инструменты, потому что в сети обычно нет никаких готовых решений, кроме пары популярных программ которые делают не то что тебе нужно. И под питон тут больше всяких библиотек
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если ты там плотно изучаешь эксплоит чейны в браузере и на уровне сеньор помидор знаешь js и тебе лень учить еще питон то можешь на js все писать через nodejs. Ну а так питон все любят за минимум шаблонного кода. Тебе во всяком случае придется писать свои инструменты, потому что в сети обычно нет никаких готовых решений, кроме пары популярных программ которые делают не то что тебе нужно. И под питон тут больше всяких библиотек
Питон нормально подходит только для простенькой задачи аля "2+2" и цикл, которые не требуют скорости.
Если тебе нужна нормальная работа с веб сервером, быстрая скорость и хорошая оптимизация - JS.
А так советую Go + JS, лучшее комбо.
 
Idk about that assessment. Python is good for intuitive application of abstraction piled on top of other abstractions. Node was already mentioned, but I would say even Perl is a good option.
 
В качестве основного направления я выбрал именно веб пентест
Сам и ответил, изучай PHP. Сейчас очень популярный Python но так было не всегда, но скорей всего он еще лет 10 будет удерживать позиции. До него у пентестеров был очень популярный Perl а сейчас он редкость. Зато ПХП как был 20 лет назад популярный так и остался. Если ты собираешься пентестить Вэб, ты будешь очень много встречать ПХП, так что помоему логично изучать его. Писать свои инструменты нужно все реже и реже, потому что готовых решений сейчас очень много и даже если инстурмент что-то не умеет, зачастую можно это решить с помощью банального перехвата трафика на прокси и модификацией на лету в каком нибудь Бурпе.
 
Приветствую, читатели!
Стоит учесть еще что при смене направления, пайтон ты заберешь с собой, а пхп нет. ЖЕЭС, ну он просто замороченнее.
Преимущество питона в новом времени в том, что он настолько простой что его уже можно писать без знаний ЯПа, достаточно знать chatGPT)
Да и те кто пишет на питоне давно, все равно пишут в основном через чат, это банально быстрее. От идеи до создания инструмента уходит считанные минуты.
 
Стоит учесть еще что при смене направления, пайтон ты заберешь с собой, а пхп нет. ЖЕЭС, ну он просто замороченнее.
Ну... не сильный аргумент, Пайтон конечно крут и сейчас есть везде, у меня к нему претензий ноль я бы тоже рекомендовал с ним хотя бы ознакомиться на бозовом уровне но если стоит выбор и время ограничено тогда тут вопрос приоритетов. Если ты нацелен на ВЭБ и тестировать будешь Пыху и у тебя нет 24/7 свободного времени выбор очевиден. Пыха и Пайтон по сложности равны, как по мне так Пыха даже проще, потому что в 99% случаев тебе нужно будет использовать только стандартную библиотеку + парочку библиотек типа curl, gd, pdo. У Пайтона местами даже лишний пробел может создать проблему и наличие библиотек на все случаи жизни, хотя популярных тоже не так много.

пайтон ты заберешь с собой, а пхп нет.
Кстати оба ЯП можно собрать в .exe для пыхи даже есть GUI библиотеки позволяющие создавать окна. На винде Пайтон встречается гараздо реже.

достаточно знать chatGPT)
Этот чит-код применим сейчас ко многим ЯП) ДАЖЕ (!!!) для написания шеллкодов на Ассемблере, но только он будет ломаться, его нужно прям убедить это сделать)

В целом сравнивать ПХП и Пайтон не совсем корректно, на Пайтоне конечно тоже есть Вэб приложения но доля их очень мала в наше время. А вот инстрментов на гитхабе невероятное кол-во, язык просто создан для написания тулз:

Impacket — набор Python-классов для работы с сетевыми протоколами (SMB, IP, TCP и т.д.). Часто используется для выполнения атак на Windows.
Pwntools — мощная библиотека для разработки эксплойтов и автоматизации взаимодействия с удаленными системами.
Paramiko — библиотека для работы с SSH, полезная для автоматизации задач по захвату или тестированию SSH-доступа.

p.s. что такое "ЖЕЭС"?
 
Стоит учесть еще что при смене направления, пайтон ты заберешь с собой, а пхп нет. ЖЕЭС, ну он просто замороченнее.
Преимущество питона в новом времени в том, что он настолько простой что его уже можно писать без знаний ЯПа, достаточно знать chatGPT)
Да и те кто пишет на питоне давно, все равно пишут в основном через чат, это банально быстрее. От идеи до создания инструмента уходит считанные минуты.
Блин, если только ты кодить не умеешь, чатЖПТ пишет с ошибками!
Я вот работал над своим проектом, и мне тут "коллеги" мне постоянно говорили
заученными фразами: "Как выучить питон при помощи ChatGPT", "Нейропрограммист....", "Джуны больше не нужны, их можно заменить нейронкой".... и всё в этом духе!
Ну что, попробовал я, думаю пока я буду писать что то сложное, нейронка мне будет писать более лёгкий код, в итоге я времени больше тратил на то, чтобы найти ошибку....
 
в итоге я времени больше тратил на то, чтобы найти ошибку....
да он часто дичь дикую пишет, я его использую только для написания функций не супер сложных и на незнакомом мне ЯП, только потому что сам не могу. Однажды я хотел написать тулзу на Пайтоне, он справлялся более менее и потом на финальной фазе он вдруг внезапно отредактировал тот участок кода который я не просил, тем самым убив код, я несколько часов пытался его научить не трогать код который я уже утвердил но т.к. размер контекста небольшой рано или поздно он забывает чему я учил и начинает косячить.
Вывод такой - спросить справку по функциям/классам/методам итд - можно.
Написать функцию - можно, если не большую (логически не замудренную)
Писать классы или полноценный код - невозможно.
 
Последнее редактирование:
Блин, если только ты кодить не умеешь, чатЖПТ пишет с ошибками!
Я вот работал над своим проектом, и мне тут "коллеги" мне постоянно говорили
заученными фразами: "Как выучить питон при помощи ChatGPT", "Нейропрограммист....", "Джуны больше не нужны, их можно заменить нейронкой".... и всё в этом духе!
Ну что, попробовал я, думаю пока я буду писать что то сложное, нейронка мне будет писать более лёгкий код, в итоге я времени больше тратил на то, чтобы найти ошибку....
да он часто дичь дикую пишет, я его использую только для написания функций не супер сложных и на незнакомом мне ЯП, только потому что сам не могу. Однажды я хотел написать тулзу на Пайтоне, он справлялся более менее и потом на финальной фазе он вдруг внезапно отредактировал тот участок кода который я не просил, тем самым убив код, я несколько часов пытался его научить не трогать код который я уже утвердил но т.к. размер контекста небольшой рано или поздно он забывает чему я учил и начинает косячить.
Вывод такой - спросить справку по функциям/классам/методам итд - можно.
Написать функцию - можно, если не большую (логически не замудренную)
Писать классы или полноценный код - невозможно.
Пацаны, дело в опыте)
Вот пара советов которые помогут вам -

Если ты пишешь код, объясняй на пальцах, пиши промт хороший, пример - "Скрипт заходит на страницу, просит меня навести курсор на кнопку, записывает координаты, после получения координат он нажимает в указанное место, ждет секунду, перезагружает страницу, жмет кнопку..."
Если ты пишешь в одном диалоге код уже приличное время, копируй полностью свой код и создавай новый чат - у него троит память.
Не надо вносить правки просто текстом. Раз в пару сообщений давай ему полный код и проси то что тебе нужно.

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

Если ты пишешь код, объясняй на пальцах, пиши промт хороший, пример - "Скрипт заходит на страницу, просит меня навести курсор на кнопку, записывает координаты, после получения координат он нажимает в указанное место, ждет секунду, перезагружает страницу, жмет кнопку..."
Если ты пишешь в одном диалоге код уже приличное время, копируй полностью свой код и создавай новый чат - у него троит память.
Не надо вносить правки просто текстом. Раз в пару сообщений давай ему полный код и проси то что тебе нужно.

Он отлично пишет на пайтоне, прям идеально, если ты умеешь просить и фантазировать ( ну или в отдельном окне спрашивать у него детали и особенности)
Нулевое знание конечно это проблема! Хотя бы основы нужно знать, читай "Поучи пайтон неделю и пиши спокойно код"
Дело в том, что времени на написание "подробного промта" уйдёт больше, чем на написание той самой функции. Это я тебе с опытом говорю :)
 
Пацаны, дело в опыте)
Вот пара советов которые помогут вам -

Если ты пишешь код, объясняй на пальцах, пиши промт хороший, пример - "Скрипт заходит на страницу, просит меня навести курсор на кнопку, записывает координаты, после получения координат он нажимает в указанное место, ждет секунду, перезагружает страницу, жмет кнопку..."
Если ты пишешь в одном диалоге код уже приличное время, копируй полностью свой код и создавай новый чат - у него троит память.
Не надо вносить правки просто текстом. Раз в пару сообщений давай ему полный код и проси то что тебе нужно.

Он отлично пишет на пайтоне, прям идеально, если ты умеешь просить и фантазировать ( ну или в отдельном окне спрашивать у него детали и особенности)
Нулевое знание конечно это проблема! Хотя бы основы нужно знать, читай "Поучи пайтон неделю и пиши спокойно код"

Во первых, я не согласен по поводу "он знает идеально" он бывает такую пургу несет на мелочах, и когда ты ему отвечаешь что он ошибся он исправляется и не всегда с первого раза, так что кол-во ошибок у него не такое уже и малое.
Во вторых - машина не человек, с логикой у него не всегда все хорошо, нужно прям хорошо все разжевать.
В третьих "в новом окне" - ето значит задействовать новый контекст. Если же в новом окне передать ему еще и код то контекст может заканчиваться прям на етом же сообщении.
В данный момент общий размер контекста, включая текст как в самом запросе, так и в хранимых записях, составляет примерно 1,5–2 килобайта (около 1500–2000 символов). Сейчас вам отвечает версия ChatGPT v2

Вот прям сейчас спросил, это фри версия уже за пределами лимитов. Я лимиты сжираю очень быстро, потому что очень много пользуюсь чатом, я же "Нейропрограммист" :D щютка.
Так что опыт общения с ИИ у меня не маленький и я косяков повидал от него.

p.s. если что я довольно неплохо знаю PHP, на нем и прошу писать ГПТ.
 
Во первых, я не согласен по поводу "он знает идеально" он бывает такую пургу несет на мелочах, и когда ты ему отвечаешь что он ошибся он исправляется и не всегда с первого раза, так что кол-во ошибок у него не такое уже и малое.
Во вторых - машина не человек, с логикой у него не всегда все хорошо, нужно прям хорошо все разжевать.
В третьих "в новом окне" - ето значит задействовать новый контекст. Если же в новом окне передать ему еще и код то контекст может заканчиваться прям на етом же сообщении.
Вот прям сейчас спросил, это фри версия уже за пределами лимитов. Я лимиты сжираю очень быстро, потому что очень много пользуюсь чатом, я же "Нейропрограммист" :D щютка.
Так что опыт общения с ИИ у меня не маленький и я косяков повидал от него.
Со всем согласен, так же пишу себе инструменты на нем, некоторые доходят и до 500 строк кода, полностью написанные им и все работает)

Контекст не нужен ( дело как раз в нем! он баганул и решил тебе что то изменить, или не так понял и эта мысль будет мешать работе дальше)
Ты просто копируй весь код и пиши что то типа "привет поправь мой код так то то-то"
В общем удачи всем НоКодерам) Если заебаться, то все он напишет)
 
зазубривать на максимум
никакой язык и уж тем более фреймворк не надо "зазубривать на максимум" :) - пустая трата времени (разумеется в контекстве тестирования и хака, а не разработки) при наличии сейчас документации и примеров ко всему практически.

а вот что важно: понимание того что ты делаешь и чего внутри там в системе происходит и технологий, как работает браузер на клиенте оно же фронтенд называется, как работает веб-сервер на бэкэнде, как работает база данных на бэкэнде, как это всё взаимодействует и через какие протоколы (хотя бы какой из 7-и уровней OSI у протокола и какие 2 протокола уровнем выше и ниже соседние с этим протоколом и для чего они)
потому что ошибки (баги) зачастую типичные и хорошо уже классифицированы, и ошибки они в логике работы ведь (в runtime), а не в синтаксисе языка - если синтаксис неправильный, то прога просто не работает - выдаёт ошибку и "помирает", а вот еслилогика нарушается работы - вот тут и происходит самое интересное, оно не в синтаксисе - оно "между строк" происходит.

Попытаюсь объяснить на примере-аналогии из жизни: если ты знаешь как ДВС у авто работает в принципе и прочие конструкции типа трансмисси и подвески и как главное это всё взаимодействует между собой, то уже конкретику в конкретном ДВС (поршни или ротор если Ванкель там стоит, клапана, ремень грм, коленвал, etc) и прочих агрегатах авто ты сможешь понять ну или хотя бы будешь знать чего искать и "куда копать".
А вот если не понимать как ДВС и прочие агрегаты работают и как взаимодействуют в принципе - то каждый новый авто будет вызывать недоумение и удивление, ну то есть сморишь на конкретный агрегат/деталь и не понимаешь к чему он - потому что методики нет, задача "выхвачена из общего контекста" получается - это самый жёсткий show stopper в образовании вообще, в любой предметной области будь то хоть математика хоть химия хоть биология.
И так в жизни во всём - в автомобилестроении, в медицине, в микроэолектронике, ну и разработка и тестирование (и хак конечно же) ПО тут не исключение :)

JavaScript - это язык "вшитый" в браузер (для backend и CLI клиентов есть nodejs) - таковы на текущий момент реалии. Но опять же у бразеров есть разные технологии (взять тот же FetchAPI пришедший на смену XMLHttpRequest - для AJAX это всё) и надо понимать как они работают, так как эти технологии они как бы "метамодели" поверх языка самого, "логика работы" так скажем - это куда важнее языка понимать как работает.
Python - простой язык если юзать для простых скриптов (что-то скачать и распарсить, отправить payload, для этого модуль requests есть)
Учить оба языка и JavaScript и Python - это для скриптинга "на приемлемом уровне" (я вообще регулярно bash юзаю - быстро и сердито, тоже норм автоматизирует) будет вполне логичный выбор.

А вот чтобы знать поведение таргета (нормальное поведение и "как обычно ломают" это нормальное поведение) - там много вариантов бэкэнда может быть от PHP или JS (nodejs) и до JSP и ASP всяких и иногда вообще C# на бэке - всё это "учит не переучить", да и не требуется, поэтому грамотным подходом тут будет понимание как работает технология в веб-приложухах, методологии тестирования именно веб-приложух смотреть (у OWASP одни из лучших "методичек"), как работают frontend и backend в целом, протокол HTTP (и WebSockets) и REST API как работают- вот чего полезно изучить для взлома веб.

Ну и напоследок (ой щас все ругаться будут...) : разок-другой написав свой пусть и очень простенький скриптовый язык (у меня это было 2 курсовика когда учился - токенизация, построение syntax tree, интерпретация - обход этого самого syntax tree "конечным автоматом" - то что называют runtime, управление памятью для переменных и т.д.) - ты поймёшь их все и сразу! они для тебя "на одно лицо" все станут и изучать новый ты будешь в десятки раз быстрее, так как будешь понимать почему оно вот так сделано в синтаксисе языка так как внутри будешь понимать что "под капотом".
а с глубоким пониманием самих технологий + через 3-4 языка "на приемлемом уровне" освоеных - тебе будет уже вообще "дайте уже денег, и мне похер на чём писать!" (уровень senior это у разрабов называется) ;-)
 
Последнее редактирование:
Дело в том, что времени на написание "подробного промта" уйдёт больше, чем на написание той самой функции. Это я тебе с опытом говорю :)
А всё потому что нет ИИ сейчас - есть только имитация, хорошая местами но всё же имитация.
В chatGPT в частности и в современных LLM вообще НЕТ "понималки" даже близко - любая LLM сейчас это "T9 на стероидах" по сути (очень грубая конечно аналогия, но в целом это так) - он подбирает тебе по сути "продолжение" твоего промпта "на основе увиденного где-то ранее". То есть в отличие от живого человека или полноценного ИИ - оно само первым с тобой НЕ заговорит, на контакт не пойдёт - ему нужен инпут хоть какой :)

Юзать LLM можно, но вот доверять - никак нельзя! А раз доверять нельзя - значит надо иметь свой хоть минимальный опыт в задаваемом к ИИ вопросе - ну как минимум чтобы валидировать ответ машины, а не копипастить что попало из ответа. Это так же как со стековерфлоу примерно - не все ответы оттуда подходят, даже отмеченные как подходящие зелёной галочкой иногда ну такая лажа...
 
Последнее редактирование:
Да короче вас послушаешь - нахер этот чат.
ТОлько вот что-то все вы его юзаете и ругаете)
Зачем тогда юзать его? Было бы вам легче дышать если бы чат не создали?)
Ждете что будет "Нуу, кароче я такой жму, а оно подбирает чет там, выдает мне сид фразы сатоши накамото и все" и он вам что то напишет?

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

вообще в этом мире современном "информации" стало дохрена, "знания" из информации экстрактятся формально, но не научились ещё формально "имитировать" понимание (на чём индусы в среднем чаще у меня и валятся на интервью - они могут знания имитировать, но "а как вы понимаете что там происходит в системе? по шагам расскажете? в деталях?" - и всё, они теряются - тут никакой Google и GPT потому что не поможет, если понимания то нет и не было)

это три разных уровня:
1. информация (всякие разные события, events на timeline, "интересные факты" и прочий шум)
2. знания (извлекаются из инфы, можно формально это делать, LLM они вот тут)
3. понимание (а вот кто тут - тех и зовут "мастер, профессионал своего дела", человек в отличие от ИИ он вот тут)
 
Последнее редактирование:
Да короче вас послушаешь - нахер этот чат.
ТОлько вот что-то все вы его юзаете и ругаете)
Зачем тогда юзать его? Было бы вам легче дышать если бы чат не создали?)
Ждете что будет "Нуу, кароче я такой жму, а оно подбирает чет там, выдает мне сид фразы сатоши накамото и все" и он вам что то напишет?

Почему "ИИ" не заменит кодеров? Потому что пользователь не сможет создать запрос.
Если чат тебе пишет херню, значит ты просишь у него херню, вот и весь ответ) Научитесь писать запрос по уму и будет у вас иное мнение о нем.
that's not correct. there is too much abstraction, and on top of that, more abstraction. there is no static i/o to rely on, well, maybe with bayaesian...
 
ТОлько вот что-то все вы его юзаете и ругаете)
Больше это картинки, обработка картинок и т.п.
Потому что я не хочу нырять в с головой в дизаин и создание картинок
А программирование мне самому интересно, поэтому я это оставлю себе...

Смотри не привыкни, а то ты выйдешь из игры, когда её закроют/сделают_менее_доступнее
 
Если честно, даже не стал читать комментарии. Не нужно зацикливаться на языках программирования. Нужно освоить базу программирования. Сейчас в ЯП слишком дохера абстраций и синтаксического сахара. Выучить все тупо не возможно и не имеет никакого смысла. Понимая базовые концепции можно понять любой код на любом языке программирвоания. Хотя, признаюсь, видел такие примеры, что хочется перекреститься и намахнуть горькой. Написать код тоже небольшая проблема. Иногда мне кажется, что весь код уже написан и лежит на SO и Github. Если бы я сейчас советовал себе в прошлом, я бы рекомендовал взять старую книженцию по Турбо Паскалю, ну или на худой конец по C (без плюсов).

Если же задача стоит в быстром написании простых скриптов, типа парсера, автоматизации действий и т.п., бери Python и уже завтра или послезавтра сможешь решать многие задачи. Криво, косо, но они будут работать.

Что касается JS. При всей его простоте, это очень даже замороченный язык. Особенно если пытаться понять его и писать на нем хорошо.
 
Последнее редактирование:


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