{"id":975,"date":"2009-11-24T00:08:00","date_gmt":"2009-11-23T22:08:00","guid":{"rendered":"http:\/\/zasoby1.open.agh.edu.pl\/cel\/?p=975"},"modified":"2023-09-05T21:01:55","modified_gmt":"2023-09-05T19:01:55","slug":"exploit-moodle","status":"publish","type":"post","link":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/","title":{"rendered":"Exploit Moodle"},"content":{"rendered":"<p><strong>Eksportowanie kurs\u00f3w z moodle\u2019a jest bardzo niebezpieczne. Okaza\u0142o si\u0119, \u017ce zosta\u0142 opublikowany exploit (\u0142ami\u0105c oczywi\u015bcie zasady polityki bezpiecze\u0144stwa moodle <a href=\"http:\/\/moodle.org\/security\">http:\/\/moodle.org\/security<\/a>), kt\u00f3ry z u\u017cytkownika posiadaj\u0105cego prawa nauczyciela, mo\u017ce zrobi\u0107 administratora. <!--more--><\/strong><\/p>\n<p>Przechodz\u0105c do szczeg\u00f3\u0142\u00f3w, nie musimy si\u0119 ba\u0107 je\u015bli nasi nauczyciele nie maj\u0105 mo\u017cliwo\u015bci eksportu kurs\u00f3w. Niemniej jednak w moodle od wersji 1.9.6 przy tworzeniu kopii zapasowych zapisywane s\u0105 dane u\u017cytkownik\u00f3w zapisanych na kurs. Opcja ta pozwala zachowa\u0107 sp\u00f3jno\u015b\u0107 danych, co jest wa\u017cne zw\u0142aszcza przy odtwarzaniu kurs\u00f3w w innym \u015brodowisku ni\u017c \u017ar\u00f3d\u0142owe.<\/p>\n<p>Oczywi\u015bcie dane o u\u017cytkownikach, a zw\u0142aszcza ich has\u0142a s\u0105 zakodowane (hash md5) i przyk\u0142adowe has\u0142o wygl\u0105da np. tak: e4d909c290d0fb1ca068ffaddf22cbd0. Nie pozwala to oczywi\u015bcie na bezpo\u015brednie odkodowanie has\u0142a, wi\u0119c do pewnego momentu wydawa\u0142o si\u0119 to wystarczaj\u0105c\u0105 metod\u0105 zabezpieczaj\u0105c\u0105. Niestety okaza\u0142o si\u0119, \u017ce istnieje spos\u00f3b (reverse mapping) na odnalezienie realnego has\u0142a odpowiadaj\u0105cego zakodowanej wersji. Zw\u0142aszcza dotyczy to bardzo prostych hase\u0142.<\/p>\n<p>Odnaleziony exploit wykorzystuj\u0105c konto nauczyciela z prawami do tworzenia kopii zapasowej, tworzy j\u0105 i odczytuje dane nt. u\u017cytkownik\u00f3w, a nast\u0119pnie por\u00f3wnuje je z bazami danych, zawieraj\u0105cymi zestawienia has\u0142o realne &#8211; has\u0142o zakodowane md5. Niebezpiecze\u0144stwo pojawia si\u0119, gdy w\u015br\u00f3d nauczycieli maj\u0105cych prawo do tworzenia kopii zapasowych jest osoba, kt\u00f3ra u\u017cyje exploita, a<br \/>\nadministrator wykorzystuje s\u0142abe has\u0142o i by\u0142 zapisany na dany kurs.<\/p>\n<p>B\u0142\u0105d ten wykorzystuje moim zdaniem luk\u0119 w polityce bezpiecze\u0144stwa tworzenia moodle, zak\u0142adaj\u0105c\u0105, \u017ce ufamy nauczycielowi. Uwa\u017cam jednak, \u017ce nie mo\u017cemy ufa\u0107 u\u017cytkownikom, oczywi\u015bcie troch\u0119 mo\u017cemy zaufa\u0107 sobie, ale te\u017c nie zaszkodzi stosowa\u0107 si\u0119 do zasad bezpiecze\u0144stwa.<\/p>\n<p>Jesli wykorzystujemy moodle\u2019a na szerok\u0105 skal\u0119 i nasi nauczyciele maj\u0105 prawo do tworzenia kopii zapasowych to sprawa jest bardzo powa\u017cna. Co mo\u017cna zrobi\u0107 ju\u017c&#8230;<br \/>\n<a name=\"more\"><\/a><br \/>\n1) Czeka\u0107 na nowe wersje :), bo spo\u0142eczno\u015b\u0107 developer\u00f3w moodle pracuje ju\u017c bardzo intensywnie nad stworzeniem \u0142atek, kt\u00f3re uka\u017c\u0105 si\u0119 w rozwijanych wersjach 1.9.7 i 1.8.11.<\/p>\n<p>2) Wy\u0142\u0105czy\u0107 funkcj\u0119 tworzenia kopii zapasowych, przynajmniej do momentu, kiedy p. 1. nie stanie si\u0119 rzeczywisto\u015bci\u0105. Zrobi\u0107 to mo\u017cna bardzo prosto. Przechodzimy do edycji uprawnie\u0144 i blokujemy mo\u017cliwo\u015b\u0107 tworzenia kopii zapasowej.<\/p>\n<p>3) W\u0142\u0105czy\u0107 opcj\u0119 tzw. salting\u2019u, czyli dodatkowego zabezpieczenia kodowania md5 (opcja dost\u0119pna od wersji 1.6), kt\u00f3ry na j\u0119zyk polski jest t\u0142umaczony, jak zwykle zgrabnie, jako: losowy modyfikator klucza. To rozwi\u0105zanie, moim zdaniem najlepsze i jedyne w tej chwili skuteczne zabezpiecza nas niemal\u017ce w 100% przed opisywanym tu exploitem. Niestety strony ksi\u0119\u017cyca s\u0105 dwie i t\u0105 ciemniejsz\u0105 jest to, \u017ce uaktywnienie tej opcji spowoduje problem z mo\u017cliwo\u015bci\u0105 przenoszenia kopii kurs\u00f3w. Ot\u00f3\u017c opcja ta b\u0119dzie musia\u0142a by\u0107 w\u0142\u0105czona w moodle\u2019u \u017ar\u00f3d\u0142owym i docelowym, w innym przypadku przenoszenie kurs\u00f3w<strong> wraz z zapisanymi uczestnikami <\/strong>(sprostowanie dzi\u0119ki komentarzowi Przemys\u0142awa, dzi\u0119kuj\u0119) nie b\u0119dzie mo\u017cliwe. A teraz jak to zrobi\u0107: &#8211; edytujemy plik config.php dodaj\u0105c nast\u0119puj\u0105c\u0105 linijk\u0119<\/p>\n<p><strong>$CFG-&gt;passwordsaltmain = &#8216;jaki\u015b d\u0142ugi string kt\u00f3ry b\u0119dzie dobrym modyfikatorem&#8217;;<\/strong><\/p>\n<p>Pozosta\u0142e dwie aktywno\u015bci dodaj\u0119 tu dla odwa\u017cnych, kt\u00f3rzy nie zrobili tego instaluj\u0105c moodle :<br \/>\nPierwsza to uruchomienie odpowiedniej polityki tworzenia hase\u0142. Takiej, kt\u00f3ra b\u0119dzie wymusza\u0142a d\u0142ugie i skomplikowane has\u0142a.<br \/>\nDruga to mo\u017cliwie cz\u0119sta zmiana hase\u0142 administracyjnych, przy zachowaniu odpowiedniego stopnia ich skomplikowania.<br \/>\n&#8212;<br \/>\nExploit to program maj\u0105cy na celu wykorzystanie b\u0142\u0119d\u00f3w w oprogramowaniu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eksportowanie kurs\u00f3w z moodle\u2019a jest bardzo niebezpieczne. Okaza\u0142o si\u0119, \u017ce zosta\u0142 opublikowany exploit (\u0142ami\u0105c oczywi\u015bcie zasady polityki bezpiecze\u0144stwa moodle http:\/\/moodle.org\/security), kt\u00f3ry z u\u017cytkownika posiadaj\u0105cego prawa nauczyciela, mo\u017ce zrobi\u0107 administratora.[&#8230;]<\/p>\n","protected":false},"author":6,"featured_media":10757,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[8],"tag-global":[],"class_list":["post-975","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wydarzenia"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Exploit Moodle - CeLiID AGH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exploit Moodle - CeLiID AGH\" \/>\n<meta property=\"og:description\" content=\"Eksportowanie kurs\u00f3w z moodle\u2019a jest bardzo niebezpieczne. Okaza\u0142o si\u0119, \u017ce zosta\u0142 opublikowany exploit (\u0142ami\u0105c oczywi\u015bcie zasady polityki bezpiecze\u0144stwa moodle http:\/\/moodle.org\/security), kt\u00f3ry z u\u017cytkownika posiadaj\u0105cego prawa nauczyciela, mo\u017ce zrobi\u0107 administratora.[...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/\" \/>\n<meta property=\"og:site_name\" content=\"CeLiID AGH\" \/>\n<meta property=\"article:published_time\" content=\"2009-11-23T22:08:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-05T19:01:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-content\/uploads\/2015\/07\/Zrzut-ekranu-2018-02-08-o-16.18.27.png\" \/>\n\t<meta property=\"og:image:width\" content=\"463\" \/>\n\t<meta property=\"og:image:height\" content=\"245\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"CeLiID\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"CeLiID\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/\"},\"author\":{\"name\":\"CeLiID\",\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/#\\\/schema\\\/person\\\/c15fcb94b19cf964b5a4f80c855ba7d2\"},\"headline\":\"Exploit Moodle\",\"datePublished\":\"2009-11-23T22:08:00+00:00\",\"dateModified\":\"2023-09-05T19:01:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/\"},\"wordCount\":615,\"image\":{\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/Zrzut-ekranu-2018-02-08-o-16.18.27.png\",\"articleSection\":[\"Wydarzenia\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/\",\"url\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/\",\"name\":\"Exploit Moodle - CeLiID AGH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/Zrzut-ekranu-2018-02-08-o-16.18.27.png\",\"datePublished\":\"2009-11-23T22:08:00+00:00\",\"dateModified\":\"2023-09-05T19:01:55+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/#\\\/schema\\\/person\\\/c15fcb94b19cf964b5a4f80c855ba7d2\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/exploit-moodle\\\/#primaryimage\",\"url\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/Zrzut-ekranu-2018-02-08-o-16.18.27.png\",\"contentUrl\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/Zrzut-ekranu-2018-02-08-o-16.18.27.png\",\"width\":463,\"height\":245},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/#website\",\"url\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/\",\"name\":\"CeLiID AGH\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/#\\\/schema\\\/person\\\/c15fcb94b19cf964b5a4f80c855ba7d2\",\"name\":\"CeLiID\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb3146cce328b8e96ec69c6218f5b73266538fc963eae62f0ba7c656fd115c0b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb3146cce328b8e96ec69c6218f5b73266538fc963eae62f0ba7c656fd115c0b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb3146cce328b8e96ec69c6218f5b73266538fc963eae62f0ba7c656fd115c0b?s=96&d=mm&r=g\",\"caption\":\"CeLiID\"},\"url\":\"https:\\\/\\\/zasoby1.open.agh.edu.pl\\\/cel2026\\\/author\\\/cel\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exploit Moodle - CeLiID AGH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/","og_locale":"pl_PL","og_type":"article","og_title":"Exploit Moodle - CeLiID AGH","og_description":"Eksportowanie kurs\u00f3w z moodle\u2019a jest bardzo niebezpieczne. Okaza\u0142o si\u0119, \u017ce zosta\u0142 opublikowany exploit (\u0142ami\u0105c oczywi\u015bcie zasady polityki bezpiecze\u0144stwa moodle http:\/\/moodle.org\/security), kt\u00f3ry z u\u017cytkownika posiadaj\u0105cego prawa nauczyciela, mo\u017ce zrobi\u0107 administratora.[...]","og_url":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/","og_site_name":"CeLiID AGH","article_published_time":"2009-11-23T22:08:00+00:00","article_modified_time":"2023-09-05T19:01:55+00:00","og_image":[{"width":463,"height":245,"url":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-content\/uploads\/2015\/07\/Zrzut-ekranu-2018-02-08-o-16.18.27.png","type":"image\/png"}],"author":"CeLiID","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"CeLiID","Szacowany czas czytania":"3 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/#article","isPartOf":{"@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/"},"author":{"name":"CeLiID","@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/#\/schema\/person\/c15fcb94b19cf964b5a4f80c855ba7d2"},"headline":"Exploit Moodle","datePublished":"2009-11-23T22:08:00+00:00","dateModified":"2023-09-05T19:01:55+00:00","mainEntityOfPage":{"@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/"},"wordCount":615,"image":{"@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/#primaryimage"},"thumbnailUrl":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-content\/uploads\/2015\/07\/Zrzut-ekranu-2018-02-08-o-16.18.27.png","articleSection":["Wydarzenia"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/","url":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/","name":"Exploit Moodle - CeLiID AGH","isPartOf":{"@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/#primaryimage"},"image":{"@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/#primaryimage"},"thumbnailUrl":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-content\/uploads\/2015\/07\/Zrzut-ekranu-2018-02-08-o-16.18.27.png","datePublished":"2009-11-23T22:08:00+00:00","dateModified":"2023-09-05T19:01:55+00:00","author":{"@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/#\/schema\/person\/c15fcb94b19cf964b5a4f80c855ba7d2"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/exploit-moodle\/#primaryimage","url":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-content\/uploads\/2015\/07\/Zrzut-ekranu-2018-02-08-o-16.18.27.png","contentUrl":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-content\/uploads\/2015\/07\/Zrzut-ekranu-2018-02-08-o-16.18.27.png","width":463,"height":245},{"@type":"WebSite","@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/#website","url":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/","name":"CeLiID AGH","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/#\/schema\/person\/c15fcb94b19cf964b5a4f80c855ba7d2","name":"CeLiID","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/eb3146cce328b8e96ec69c6218f5b73266538fc963eae62f0ba7c656fd115c0b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb3146cce328b8e96ec69c6218f5b73266538fc963eae62f0ba7c656fd115c0b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb3146cce328b8e96ec69c6218f5b73266538fc963eae62f0ba7c656fd115c0b?s=96&d=mm&r=g","caption":"CeLiID"},"url":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/author\/cel\/"}]}},"_links":{"self":[{"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/posts\/975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/comments?post=975"}],"version-history":[{"count":1,"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/posts\/975\/revisions"}],"predecessor-version":[{"id":11158,"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/posts\/975\/revisions\/11158"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/media\/10757"}],"wp:attachment":[{"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/media?parent=975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/categories?post=975"},{"taxonomy":"tag-global","embeddable":true,"href":"https:\/\/zasoby1.open.agh.edu.pl\/cel2026\/wp-json\/wp\/v2\/tag-global?post=975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}