24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

1. Генерирую список ключей с помощью random seed (из

 Аноним 11/08/19 Вск 00:59:16 #1 №43739 
1565349038.jpg
1. Генерирую список ключей с помощью random seed (из питона, например)
2. Храню в двух копиях на сервере и клиенте
3. http://example.com/exec/?path=[путь до скрипта или команды]&key=[первый ключ из списка]
4. Получаю ответ от сервера
5. Убираю использованный ключ в списках на клиенте и сервере
Где я проебался?
Аноним 11/08/19 Вск 21:03:17 #2 №43740 
Ю Почему просто не использовать асимметричную криптографию, подписывая каждый запрос с проверкой на сервере?
Аноним 11/08/19 Вск 21:03:39 #3 №43741 
>>43740

Без ю, лол.
sage[mailto:sage] Аноним 11/08/19 Вск 22:14:29 #4 №43742 
>>43739 (OP)
> http
Человек посередине перехватывает твой пакет, меняет path на rm -rf /* и отправляет дальше
Аноним 11/08/19 Вск 22:56:00 #5 №43743 
>>43742
Точно. Вот как раз нормальная подпись от такого бы и помогла.
Аноним OP 11/08/19 Вск 23:03:26 #6 №43744 
>>43740
Можно, наверное. Но это ж нужно тянуть GPG... Или нет? А так простота реализации: random.seed() в Python, math.randomseed() в Lua. Нагенерировать списочек из base58 длинной где-то 32 символа не проблема. А Lua-то запустить даже на тостере можно.
>>43742
О, это ты прав, напрямую писать исполняемый код опасно. Тогда имя скрипта буду передавать, проверять, существует ли такой файл и запускать. Спасибо
Аноним 12/08/19 Пнд 12:02:21 #7 №43745 
1251980611735.jpg
>>43744
>Тогда имя скрипта буду передавать, проверять, существует ли такой файл и запускать
param=existing.script;rm -rf /
Аноним 12/08/19 Пнд 16:57:51 #8 №43746 
>>43744
Ну добавь хотя бы хеш команды с солью (секретом), чтобы нельзя было подделывать запросы, как показывает >>43745
Аноним 13/08/19 Втр 22:20:39 #9 №43749 
>>43746
Лучше вообще никогда не передавать команды системы или параметры к командам напрямую в систему, я как старый багхантер атвичаю.
Аноним OP 15/08/19 Чтв 12:50:14 #10 №43750 
1563886617.jpg
>>43745
>>43746
>>43749
Спасибо, анончики. Может тогда написать скрипты и отправлять индекс скрипта из списка?
Аноним 19/08/19 Пнд 13:00:26 #11 №43767 
>>43744
> random.seed()
Эта фигня генерирует псевдослучайные числа. Это не есть хорошо для криптографии. Там, где можно найти закономерность, можно сделать уязвимость.
Аноним 19/08/19 Пнд 13:03:07 #12 №43768 
>>43739 (OP)
Почему бы не обернуть твои запросы в SSL, TLS или SSH?
Аноним OP 23/08/19 Птн 13:47:14 #13 №43792 
>>43767
Да, вот думал над этим
>>43768
Опять-таки, чтобы реализацию можно было написать на чём угодно и без массивных библиотек
Аноним 24/08/19 Суб 18:24:22 #14 №43794 
>>43792
Добавь простую подпись запроса каким-нибудь md5 (или любым другим) хешем.
То есть допустим у тебя есть запрос: /exec/?path=script.py&arg1=foo&arg2=bar
Сортируешь входящие параметры по алфавиту, чтобы получилось:
params = "arg1=foo&arg2=bar&path=script.py"
Плюс ты имеешь какую-нибудь случайную соль, например:
salt = "98Y3cs6UwRS1TbT"
Эта соль известна клиенту (чтобы подписывать запросы) и серверу (чтобы проверять), но не известна третьим лицам.
Берешь хеш-функцию (md5 или какую хочешь) и получаешь хеш от соли и параметров:
hash = md5(salt + "." + params)
И получается у тебя допустим fddb0e9af298189f925f62bc634fbcce. Передаешь его в запросе: /exec/?path=script.py&arg1=foo&arg2=bar&md5=fddb0e9af298189f925f62bc634fbcce
На сервере сверяешь так же хеш с солью для всех параметров, кроме md5. Если не совпало, значит запрос подделан, значит отбрасывается.

Плюсы:
- простота реализации, пишется за 5 минут, можно запускать хоть на чайнике
Минусы:
- У тебя по прежнему http, все тело запроса видно перехватчику.
- md5 небезопасен, но мне кажется для твоей задачи пойдет. Ну или возьми sha2.
Аноним 25/08/19 Вск 03:19:30 #15 №43796 
>>43750
> Спасибо, анончики. Может тогда написать скрипты и отправлять индекс скрипта из списка?
Подождем еще 2 года пока ты не изобретешь API.
comments powered by Disqus

Отзывы и предложения