ChatGPT-fuzz.txt, обход регулярок, поиск уязвимостей - может ли нейросеть помочь хакеру?

ChatGPT-fuzz.txt, обход регулярок, поиск уязвимостей - может ли нейросеть помочь хакеру?

https://t.me/zaheck
Картинка от Midjourney

В ходе изучения нашумевшей нейросети ChatGPT частично удалось раскрыть ее потенциал, который могут использовать хакеры в работе. То, о чем я сегодня расскажу - это минимум, который можно отсюда извлечь, но даже он удивляет. Найти обход регулярки, узнать назначение каждого параметра / куки или заголовка, собрать fuzz лист - запросто. Подробнее о том, чем может вам помочь эта нейросеть читайте в статье.

Изображение сгенерировано с использованием нейросети Midjourney (https://midjourney.gitbook.io/docs/terms-of-service), представлено в оригинальном варианте (без модификаций), и на него распространяется лицензия Attribution-NonCommercial 4.0 International

Взлом регулярок

В самом первом моем интервью с багхантером, Impact предложил для читателей задачу, которая заключалась в том, что нужно было найти проблему здесь:

Pattern.compile("^(?:https?\\:\\/\\/(?:[A-Za-z0-9_\\-]+\\.(dhcp(\\-[A-Za-z]+)?\\.([A-Za-z0-9_\\-]+\\.corp\\.)?|(nw\\.)?dev(\\-[A-Za-z]+)?\\.|cmc\\.|d\\.)?)?tripadvisor\\.(?:com|(?:[a-z]{2})|(?:(?:co|com)\\.[a-z]{2})))?\\/.*$");

Одним из подписчиков через некоторое время было предложено верное решение этой задачи. Все это заняло примерно 2 часа у хакеров на взлом.

Решение задачи

Теперь давайте посмотрим как с этой задачей справится ChatGPT. Попросим сгенерировать примеры под регулярное выражение и разберем ответы.

Пример вопроса

Первые 4 уже содержат в себе пример с уязвимостью. Хакер, увидевший это 100% заметил бы проблему и принес уязвимость в программу.

Примеры уязвимости

Такую штуку можно проворачивать со всеми регулярными выражениями, которые вы видите. Вставили регулярное выражение, получили примеры, увидели аномалию - репортим. Очень круто!

Поясни за параметры / куки / заголовки

Часто, ломая сайт, можно увидеть следующую мешанину из GET-параметров - без бутылки тут не разберешься, как говорится.

Пример запроса

Если расспросить об этом ChatGPT - она даст свои пояснения и расскажет зачем тут нужен каждый из параметров.

Пояснение от ChatGPT

Конечно, пока это работает медленно и неидеально, но в реальной практике это можно применить 100%, достаточно лишь спрашивать ChatGPT по конкретному незнакомому заголовку/параметру и т.д.

Пример ответа, когда я спросил про заголовок Transfer-Encoding (перевод может быть кривой из-за гугла)

«Transfer-Encoding: chunked» — это поле заголовка HTTP, указывающее, что тело сообщения отправляется частями, а не как одно сообщение. Это позволяет отправителю отправлять большое сообщение небольшими порциями, что может быть полезно для таких вещей, как потоковая передача больших файлов или отправка больших объемов данных по медленному соединению. Фрагменты отправляются с кодировкой, состоящей из фрагментов, и каждому фрагменту предшествует его размер, выраженный в виде шестнадцатеричного числа.


ChatGPT-fuzz.txt

Все знают, что каждый уважающий себя хакер должен предложить свой fuzz.txt, вот например один из самых популярных таких листов, который предложил один из хакеров с ником Bo0oM.

fuzz.txt

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

С использованием ChatGPT можно собрать собственный лист. В ходе эксперимента мне удалось получить, например, вот такие расширения файлов:

ChatGPT-fuzz.txt

Надеюсь что найдется такой человек, у которого много времени, который сможет распарсить ChatGPT и выкатить, наконец, нам лист на 20-30 тысяч уникальных файлов. У меня пока, к сожалению, нет времени этим заниматься.

Ну и вот еще пример:

Пример потенциально уязвимых файлов

Поиск уязвимостей

Самые простые уязвимости в JS нейросеть точно умеет детектировать, вот например я взял самый простой кусок кода и попросил ChatGPT найти здесь дыру.

Поиск уязвимостей 1

OpenRedirect был найден с ходу, а для XSS я задал уточняющий вопрос.

Поиск уязвимостей 2

Можно ли это использовать для поиска уязвимостей в коде? Думаю, что пока это достаточно спорный вопрос. Но если вы видите в коде страницы где-то тег <script> или сомневаетесь в своем коде, то скопировать его и отправить в чатик имеет смысл, вдруг нейронка вас направит в нужном направлении.


Выводы

Безусловно даже сейчас этот инструмент очень полезен. Весь потенциал остается загадкой, которую нам предстоит разгадывать долгое время. Вспомните и подумайте, чем вам может помочь нейросеть - возможно она сможет это сделать.


Подписка и репост приветствуются. :)

Report Page