From 292441df610d9d29e4749a615f544e87b9a57265 Mon Sep 17 00:00:00 2001 From: dvwinner Date: Thu, 25 May 2023 08:01:41 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB(?= =?UTF-8?q?=D0=B0)=20=D0=BD=D0=B0=20'tasks/=D0=BA=D0=B0=D0=BB=D1=8C=D0=BA?= =?UTF-8?q?=D1=83=D0=BB=D1=8F=D1=82=D0=BE=D1=80/README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tasks/калькулятор/README.md | 4 ++++ tasks/калькулятор/readme.md | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 tasks/калькулятор/README.md delete mode 100644 tasks/калькулятор/readme.md diff --git a/tasks/калькулятор/README.md b/tasks/калькулятор/README.md new file mode 100644 index 0000000..3cfe709 --- /dev/null +++ b/tasks/калькулятор/README.md @@ -0,0 +1,4 @@ +# Разбор таска Калькулятор. + +Калькулятор представляет собой веб страницу, поэтому попробуем посмотреть что у неё внутри с помощью панели разработчика. Страница общается по `websocket` (обменивается текстом) с сервером, причем страница отсылает данные как есть, в виде выражения, а сервер возвращает результат. При делении на 0 или некорректном выражении ответ не присылается. Если попробовать убрать `readonly` в коде элемента, сможем отправить что-то кроме выражения из цифр и знаков +-*/. Посылая разные значения, можно понять что сервер исполняет выражение на `python3` (а именно с помощью `eval`). Тогда, флаг можно получить, послав `open('/var/flag.txt','r').read()`. +Флаг: `ctf{python_injection_khjb}` \ No newline at end of file diff --git a/tasks/калькулятор/readme.md b/tasks/калькулятор/readme.md deleted file mode 100644 index b14a0ae..0000000 --- a/tasks/калькулятор/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -# Разбор таска калькулятор. - -Калькулятор представляет собой веб страницу, поэтому попробуем посмотреть что у неё внутри с помощью панели разработчика. Страница общается по websocket (обменивается текстом) с сервером, причем страница отсылает данные как есть, в виде выражения, а сервер возвращает результат. При делении на 0 или некорректном выражении ответ не присылается. Если попробовать убрать readonly в коде элемента, сможем отправить что-то кроме выражения из цифр и знаков +-*/. Посылая разные значения, можно понять что сервер исполняет выражение на python3 (а именно с помощью eval). Тогда, флаг можно получить, послав `open('/var/flag.txt','r').read()`. -Флаг: `ctf{python_injection_khjb}` \ No newline at end of file