-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

Ta książka sama czyta…Twój filesystem

30 marca 2017, 17:14 | W biegu | komentarzy 6

W skrócie otworzenie książki w formacie epub umożliwiło m.in. zdalne odczytywanie plików z filesystemu ofiary. Komunikacja z serwerem została w tym przypadku zorganizowana za pomocą websocketów (!).

Websockety w epub? Spokojna głowa – są i gorsze rzeczy – javascript czy Flash (!):

EPUB 3 supports the object element for use with arbitrary embedded executables that are not natively supported in EPUB 3 reading systems. A common use case would be to include proprietary applets or Adobe Flash applications.

Jak odczytywać plik z filesystemu? Z pomocą przychodzi tutaj np. podatność XXE. Format epub to spakowane m.in. XML-e które są parsowane w momencie otwierania książki:

Archive:  book.epub
  Length      Date    Time    Name
---------  ---------- -----   ----
       20  04-09-2014 15:41   mimetype
     2189  04-09-2014 15:41   toc.ncx
    39962  04-09-2014 15:41   OEBPS/chapter-001-chapter-i.html
    41745  04-09-2014 15:41   OEBPS/chapter-002-chapter-ii.html
      684  04-09-2014 15:41   OEBPS/title-page.html
      557  04-09-2014 15:41   OEBPS/front-cover.html
    42220  04-09-2014 15:41   OEBPS/chapter-003-chapter-iii.html
     1185  04-09-2014 15:41   OEBPS/copyright.html
      884  04-09-2014 15:41   OEBPS/table-of-contents.html
   234790  04-09-2014 15:41   OEBPS/assets/pressbooks-promo.png
    33684  04-09-2014 15:41   OEBPS/assets/MedulaOne-Regular.ttf
   244146  04-09-2014 15:41   OEBPS/assets/themetamorphosis_1200x1600.jpg
      661  04-09-2014 15:41   OEBPS/pressbooks-promo.html
    27328  04-09-2014 15:41   OEBPS/jackson.css
     3494  04-09-2014 15:41   book.opf
      240  04-09-2014 15:41   META-INF/container.xml
      157  04-09-2014 15:41   META-INF/com.apple.ibooks.display-options.xml
---------                     -------
   673946                     17 files

Wystarczy wiec użyć encji zewnętrznej i wio, możemy odczytywać lokalne pliki – wystarczy tylko mieć tego typu problem na czytniku epubów – a tych nie brakuje

Jeśli to nie działa, można i za pomocą JavaScriptu – jak pokazano na przykładzie applowego iBooks:

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Artur

    Próbowałem zrobić testowy epub na PocketBook który by zawierał typowy html-owym formularzem z polem tekstowym oraz przyciskiem, po kliknięciu którego miało wypełniać się pole tekstowe. O ile na komputerze to mi działało, to na czytniku niestety nie. Marzyła mi się interaktywna książka, ale bardziej niż paragrafowa. Może ktoś ma jakieś doświadczenie w tym temacie?

    Pozdrawiam

    Odpowiedz
    • SuperTux

      Jak chcesz interaktywności, to niestety tylko albo Twine albo Inform7. Zwłaszcza że wkrótche js będzie zablokowany ze względu na takie podatności jak ta z opisu.

      Zresztą takie podatności to nic nowego – we wczesnych latach 2000 były podatności w bibliotekach dekodujących obrazki (albo JPEG, albo wczesny PNG, pewny nie jestem) umożliwiające zrobienie wirusa w obrazku.

      Odpowiedz
  2. ula

    Czy jest jakiś powód dla którego teraz wszystko dostaje obsługę JS, Flesha, itd? FB2, epub, svg. Pliki, który to na dobrą sprawę nie jest potrzebne.

    Odpowiedz
    • wygoda usera :P

      Odpowiedz
    • fgfgf

      chec dokopania Amazonowi, nie ma innego powodu

      Odpowiedz
  3. jozek

    Porażka. W sensie, przeczytałem title w sposób „Ta książka sama się czyta” i myślałem, że chcecie polecić jakąś uber-pro książkę do poczytania, a tu jakieś emacsem przez filesystem ;p

    Odpowiedz

Odpowiedz na sekurak